四阶adams预报校正matlab,王能超 计算方法——算法设计及MATLAB实现课后代码

算例6:对于微分方程解:

function z=f2(x,y) z=x^2-y;

为衡量数值解的精度,我们求出该方程的解析解为y??e?x?x2?2x?2.在此也以文件的形式表示如下: function y=solvef2(x) y=-exp(-x)+x^2-2*x+2;

令f=@f2; a=0; b=1; N=10; ya=1; 运行:E=MendEuler(f,a,b,N,ya); y=solvef2(a:(b-a)/N:b); m=[E,y’]

其中m内的y’表示准确解.

3.2 四阶Runge-Kutta方法

用四阶Runge-Kutta方法求解常微分方程. MATLAB文件:(文件名:RungKutta4.m) function R=RungKutta4(f,a,b,N,ya) %f是微分方程右端函数句柄

%a,b是自变量的取值区间[a,b]的端点 %N是区间等分的个数 %ya表初值y(a)

%R=[x’,y’]是自变量X和解Y所组成的矩阵 h=(b-a)/N;

x=zeros(1,N+1); y=zeros(1,N+1); x=a:h:b; y(1)=ya; for i=1:N

k1=feval(f,x(i),y(i));

k2=feval(f,x(i)+h/2,y(i)+(h/2)*k1); k3=feval(f,x(i)+h/2,y(i)+(h/2)*k2); k4=feval(f,x(i)+h,y(i)+h*k3);

y(i+1)=y(i)+(h/6)*(k1

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值