实验十.欧拉法MATLAB实现

实验内容

1.分别编写M函数实现求解欧拉法的向前、向后、改进欧拉法,以及二阶、四阶龙格-库塔方法。并利用这五个函数求解方程:

,做表(或图)比较。

实 验 步 骤、过 程

1.

求出其特解为

(1)欧拉法的向前、向后、改进欧拉法

编制函数文件:

function [y1,y2,y3,y4]=su(a,b,k)
% a起始点,b迭代终止点,h=(b-a)/k
h=(b-a)/k;x=a:h:b;[m,n]=size(x);
y1=zeros(m,n);y2=zeros(m,n);y3=zeros(m,n);
y1(1)=1;y2(1)=1;y3(1)=1;
for i=1:n-1 %向前欧拉法
    x1=x(i);x2=x(i+1);
    y1(i+1)=y1(i)+h*((3*(x1).^2-2)*y1(i)/(x1).^3+1);
end
for i=1:n-1 %向后欧拉法
    x1=x(i);x2=x(i+1);
    yy=y2(i)+h*((3*(x1).^2-2)*y2(i)/(x1).^3+1);
    y2(i+1)=y2(i)+h*((3*(x1)^2-2)*yy/(x1).^3+1);
end
for i=1:n-1 %改进欧拉法
    x1=x(i);x2=x(i+1);
    z1=(3*(x1).^2-2)*y1(i)/(x1).^3+1;
    yy=y3(i)+h*z1;
    z2=(3*(x1).^2-2)*yy/(x1).^3+1;
    y3(i+1)=y3(i)+h*0.5*(z1+z2);
end
for i=1:n %精确值
    y4(i)=((x(i))^3*(1-exp((x(i))^(-2)-1)))/2;
end

命令窗口下执行:

>> [y1,y2,y3,y4]=su(pi,2*pi,5)

(2)二阶、四阶龙格-库塔方法

题目可转化为:

 编制函数文件:

function f=su(x,y)
f=(3*x^2-2)*y/(x^3)+1

命令窗口下执行:

>> [x,y]=ode23('su',[pi,2*pi],1);[x',y']
>> [x,y]=ode45('su',[pi,2*pi],1);[x',y']

答案供参考,如有错误请自行改正,本人只是随意分享之前的作业,代码均来源于网络+个人稍微修改,认为有用可参考哈~

  • 11
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值