- 3
- 0
- 约1.42千字
- 约 6页
- 2019-12-28 发布于上海
- 举报
8.7 常微分方程数值解的若干Matlab函数文件; function [x,y]=euler(f,tspan,y0,n)
% 解初值问题: =f(x,y),y(a)=y0。
% 使用 n 步的 Euler 法,步长 h=(b-a)/h。
a=tspan(1);b=tspan(2);h=(b-a)/h;
x=(a+h:h:b);
y(1)=y0+h*feval(f,a,y0);
for i=2:n
y(i)=y(i-1)+h*fevol(f,x(i-1),y(i-1));
end
x=[a x];
y=[y0 y];;8.7.2 经典Runge-Kutta 法的 Matlab 函数文件;for i=1:n-1
k1=h*feval(f,x(i),y(i));
k2=h*feval(f,x(i)+h/2,y(i)+k1/2);
k3=h*feval(f,x(i)+h/2,y(i)+k2/2);
k4=h*feval(f,x(i)+h/2,y(i)+k3/2);
y(i+1)=y(i)+k1/6+k2/3+k3/
原创力文档

文档评论(0)