필터 지우기
필터 지우기

RK fourth order method for a 2nd order differential equation

조회 수: 2 (최근 30일)
Abraham
Abraham 2018년 11월 16일
편집: Abraham 2018년 11월 16일
d^2y/dx^2 + 0.6*dy/dx 0.8y = 0
parameters: y(0)=4 and y'(0)=0. from x=0 to x=5 with step size; h =0.5.
I have this 2nd order ODE which I need to solve use RK 4th order method:
But I also need to calculate value of each state variable at a different point of x = 2, using h values
of h=(0.5)^p, where p = [1, 2, 3, 4, 5, 6, 7]. and then plot(on a log-log scale) the relative error for each state variable at x = 2 as a function of h and then use that solution for each state variable at x = 2 using h = (0.5)^20 as the true solution.
I have posted my code for the RK fourth order but confused on how to go about this part. Kindly put me through. Thanks
% Using the RK 4th order to solve equation d^2y/dx^2 + 0.6*dy/dx 0.8y = 0
% parameters: y(0)=4 and y'(0)=0. from x=0 to x=5 with step size; h =0.5.
h=0.5;
%Initial conditions
x(1)=0;
y(1)=4;
z(1)=0;
N = 10;
for i=1:N
x(i+1)=x(i)+h;
k1=h*(z(i));
k11=h*(-0.6*z(i)-8*y(i));
k2=h*(z(i)+k11/2);
k12=h*(-0.6*(z(i)+k11/2)-8*(y(i)+k1/2));
k3=h*(z(i)+k12/2);
k13=h*(-0.6*(z(i)+k12/2)-8*(y(i)+k2/2));
k4=h*(z(i)+k13);
k14=h*(-0.6*(z(i)+k13)-8*(y(i)+k3));
y(i+1)=y(i)+(1/6)*(k1+2*k2+2*k3+k4);
z(i+1)=z(i)+(1/6)*(k11+2*k12+2*k13+k14);
end
x;
y;
plot(x,y)

답변 (0개)

카테고리

Help CenterFile Exchange에서 Ordinary Differential Equations에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by