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!