
function result = RungeKutta(f,g,t0,ts,a0,T0,N)
f = @(t,x,y)(4.296*10^9*x^6.069*(1-x)^1.21)*exp(-(8041.24-5593.83*x+60839.6*x^2-85300.59*x^3+35630.05*x^4)/y);
g = @(t,x,y)(1/6);
h = (ts-t0)/N;
t = zeros(1,N+1);
x = zeros(1,N+1);
y = zeros(1,N+1);
t = t0:h:ts;
x(1) = a0;
y(1) = T0;
for i = 1:N
f1 = feval(f,t(i),x(i),y(i));
g1 = feval(g,t(i),x(i),y(i));
f2 = feval(f,t(i)+h/2,x(i)+(h/2)*f1,y(i)+(h/2)*g1);
g2 = feval(g,t(i)+h/2,x(i)+(h/2)*f1,y(i)+(h/2)*g1);
f3 = feval(f,t(i)+h/2,x(i)+(h/2)*f2,y(i)+(h/2)*g2);
g3 = feval(g,t(i)+h/2,x(i)+(h/2)*f2,y(i)+(h/2)*g2);
f4 = feval(f,t(i)+h,x(i)+h*f3,y(i)+h*g3);
g4 = feval(g,t(i)+h,x(i)+h*f3,y(i)+h*g3);
x(i+1) = x(i) + h*(f1+2*f2+2*f3+f4)/6;
y(i+1) = y(i) + h*(g1+2*g2+2*g3+f4)/6;
result = [t' x' y'];
end
end
为什么程序运行结果全部都是0?(方程式根据实际数据拟合得到的,肯定没问题,求问程序错在了哪里?)哪位大神帮帮忙!