My program run forever !
이전 댓글 표시
My problem is it runs forever !
This is Runge Kutta 4 method.
Thanks for helping me !!!
syms t1
syms y1
f = 20*t1 - y1*t1/10 - 0.1*y1^2;
t = [ 0 ]; % declare array t with t(1) = 0
y = zeros(1,11,'sym'); % declare array y with y(1) = 0
h = 0.1;
t1 = 1;
n = (t1-t(1))/h; % number of times need to caculate
% create multy t from t1 to t(n+1)
for i = 1:n
t(i+1) = t(i) + h;
end
% Runge Kutta formular
for i=1:n
k1 = subs(subs(f,t1,t(i)),y1,y(i));
k2 = subs(subs(f,t1,t(i)+0.5*h),y1,y(i)+0.5*k1);
k3 = subs(subs(f,t1,t(i)+0.5*h),y1,y(i)+0.5*k2);
k4 = subs(subs(f,t1,t(i)+h),y1,y(i)+k3);
y(i+1) = y(i) + (h/6)*(k1+2*k2+2*k3+k4);
end
disp(y(11));
댓글 수: 1
KSSV
2018년 12월 24일
YOu need to rethink on your code......why you want to use syms?
답변 (1개)
madhan ravi
2018년 12월 24일
편집: madhan ravi
2018년 12월 24일
1 개 추천
Just download the file exchange below and adapt it to your need :https://www.mathworks.com/matlabcentral/fileexchange/29851-runge-kutta-4th-order-ode
댓글 수: 1
madhan ravi
2018년 12월 24일
If my answer helped you solve the question make sure to accept the answer so that people know the question is solved.
카테고리
도움말 센터 및 File Exchange에서 Debugging and Improving Code에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!