Hello,I need to tell what is the difference between ode23 and runge kutta using this equation:sin(x) + cos(y).I have written this code:
h=0.1;
xfinal=55;
x(1)=0;
y(1)=5;
f=@(x,y) sin(x) + cos(y);
for i= 1:ceil(xfinal/h)
x(i+1)=x(i)+h;
k1=f(x(i) , y(i) );
k2=f(x(i) + 0.5*h,y(i)+0.5*k1*h);
k3=f(x(i) + 0.5*h,y(i)+0.5*k2*h);
k4=f(x(i)+ h, y(i) + k3*h );
y(i+1)=y(i) + h/6*(k1+ 2*k2 + 2*k3 +k4);
end
plot(x,y);
hold on
[t,x] = ode23(f,[0 55] , 1)
plot(t,x)
And I got this plot :
I only spot a difference at the start,is this plot correct or did I just messed it up?

 채택된 답변

Jim Riggs
Jim Riggs 2018년 10월 24일
편집: Jim Riggs 2018년 10월 24일

0 개 추천

You are very close. In your Runge-Kuta solution, you specified Y0 = 5,
Y(1)=5;
but in your ode23 solution, you specified Y0 = 1.
[t,x] = ode23(f, [0,55], 1)
If you set these to the same value, you should get the same result for both methods. E.g, try
[t,x] = ode23(f, [0,55], 5);

댓글 수: 1

Jhon
Jhon 2018년 10월 24일
Ahh,yes ty idk how I missed that

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

태그

질문:

2018년 10월 24일

댓글:

2018년 10월 24일

Community Treasure Hunt

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

Start Hunting!

Translated by