向前euler法matlab实验报告,数学实验“欧拉值算法,Runge-Kutta数值算法”实验报告(内含matlab程序).doc...

该实验详细介绍了欧拉数值算法的显式、隐式和预估-校正法,以及Runge-Kutta算法的二阶中点法。学生需使用Matlab/C/C++/Java/Maple/Mathematica等工具编程实现这些算法,通过求解一阶常微分方程的初值问题,理解并比较不同算法的精度和效率。实验内容包括设定初始条件、步长,利用牛顿法求解隐式欧拉法,并通过图形化展示数值解的过程。
摘要由CSDN通过智能技术生成

西京学院数学软件实验任务书

课程名称数学软件实验班级数0901学号0座机电话号码7姓名李亚强实验课题欧拉数值算法(显式,隐式,欧拉预估-校正法),Runge-Kutta数值算法实验目的熟悉欧拉数值算法(显式,隐式,欧拉预估-校正法),Runge-Kutta数值算法实验要求运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成实验内容欧拉数值算法(显式,隐式,欧拉预估-校正法)

Runge-Kutta数值算法成绩教师 实验二十四实验报告

实验名称:欧拉数值算法(显式,隐式,欧拉预估-校正法),Runge-Kutta数值算法。

实验目的:进一步熟悉欧拉数值算法(显式,隐式,欧拉预估-校正法),Runge-Kutta数值算法。

实验要求:运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成程序设计。

实验原理:

欧拉数值算法(显式):

微分方程里最简单的方程形式莫过于一阶常微分方程的初值问题,即:

其中,为常数。

因为其简单但又是求解其他方程的基础,所以发展了许多典型的解法。所有算法中的就是代表上式中,而表示,表示。

简单欧拉法是一种单步递推算法。简单欧拉法的公式如下所示:

简单欧拉法的算法过程介绍如下:

给出自变量的定义域,初始值及步长。

对,计算

欧拉数值算法(隐式):

隐式欧拉法也叫退欧拉法,隐式欧拉法的公式如下所示:

隐式欧拉法是一阶精度的方法,比它精度高的公式是:

隐式欧拉的算法过程介绍如下。

给出自变量的定义域,初始值及步长。

对,用牛顿法或其他方法求解方

得出。

欧拉预估-校正法:

改进欧拉法是一种二阶显式求解法,其计算公式如下所示:

Runge-Kutta数值算法:

二阶龙格-库塔法有多种形式,除了改进的欧拉法外,还有中点法。中点法计算公式为:

实验内容:

%欧拉数值算法(显式)

function [h,k,X,Y,P,REn] Qeuler1 funfcn,x0,y0,b,n,tol

x x0; h b-x /n; X zeros n,1 ; y y0;

Y zeros n,1 ; k 1; X k x; Y k y';

for k 2:n+1

fxy feval funfcn,x,y ;

delta norm h*fxy,'inf' ;

wucha tol*max norm y,'inf' ,1.0 ;

if delta wucha

x x+h; y y+h*fxy; X k x;Y k y';

end

plot X,Y,'rp'

grid

label '自变量 X' , ylabel '因变量 Y'

title '用向前欧拉(Euler)公式计算dy/dx f x,y ,y x0 y0在[x0,b]上的数值解'

end

P [X,Y];

syms dy2,

REn 0.5*dy2*h^2;

%欧拉数值算法(隐式)

function [X,Y,n,P] Heuler1 funfcn,x0,b,y0,h,tol

n fix b-x0 /h ; X zeros n+1,1 ; Y zeros n+1,1 ;

k 1; X k x0; Y k,: y0; Y1 k,: y0;

clc,x0,h,y0

for i 2:n+1

X i x0+h; Y i,: y0+h*feval funfcn,x0,y0 ;

Y1 i,: y0+h*feval funfcn,X i ,Y i,: ;

Wu abs Y1 i,: -Y i,: ;

while Wu tol p Y1 i,: ;

Y1 i,: y0+h*feval funfcn,X i ,p ;

Y i,: p;

end

x0 x0+h; y0 Y1 i,: ;

Y i,: y0; plot X,Y,'ro'

grid on

xlabel '自变量 X' , ylabel '因变量 Y'

title '用向后欧拉公式计算dy/dx f x,y ,y x0 y0在[x0,b]上的数值解'

end

X X 1:n+1 ; Y Y 1:n+1,: ; n 1:n+1; P [n',X,Y]

%欧拉预估-校正法

function [H,X,Y,k,h,P] gaiEuler funfcn,x0,b,y0,tol

pow 1/3;

if nargin 5 | isempty tol ,

tol 1.e-6;

end;

if nargin 6 | isempty trace ,

trace 0;

end;

x x0; h 0.0078125*

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值