文档库 最新最全的文档下载
当前位置:文档库 › 微分方程数值解法实验报告

微分方程数值解法实验报告

微分方程数值解法实验报告
微分方程数值解法实验报告

微分方程数值解法实验报告

班级:姓名:学号:日期:

一、实验目的

1、熟悉微分方程(组)数值解的Euler算法,改进的Euler算法和Runge-Kutta算法,利用matlab软件实现微分方程数值解法来求解具体试题;

2、虽然求解常微分方程有各种各样的解析解,但解析方法只能用来求解一些特殊类型的方程,通常它们无法求出解析解,而需要数值方法来近似求解。因此产生了常微分方程初值问题的数值计算方法,常微分方程数值解法是通过计算机便捷的求解近似值。

二、基本理论及背景

1、在数值求解常微分方程中,主要有有限差分计算和有限元计算两大类方法,其中在有限差分计算方法中有一类方法称为龙格-库塔(Runge_Kutta)方法。四阶的龙格-库塔方法为最佳的计算格式。

2、参考三中的代码,分别用Euler算法,改进的Euler算法和Runge-Kutta 算法实现微分方程(组)的数值求解,完成下列题目:

三、算法设计及实现

1、算法设计,通过Euler算法,改进的Euler算法和Runge-Kutta三种算

法来实现微分方程(组)的数值求解;

2、程序文件及功能清单:

(1) Euler Method:

function [x,y]=EulerDSolve(f,ab,y0,h)

x=(ab(1):h:ab(2))';

n=length(y0);

y=zeros(length(x),n);

y(1,:)=y0';

for k=2:length(x)

y(k,:)=y(k-1,:)+h*feval(f,x(k-1),y(k-1,:)')';

end;

(2) Improved Euler Method:

function [x,y]=MEulerDSolve(f,ab,y0,h)

x=(ab(1):h:ab(2))';

n=length(x);

y=zeros(n,length(y0));

y(1,:)=y0';

for k=2:n

yp=y(k-1,:)+h*feval(f,x(k-1),y(k-1,:));

yc=y(k-1,:)+h*feval(f,x(k),yp);

y(k,:)=(yp+yc)/2;

end

(3) Runge-Kutta Method:

function [TOut,YOut]=Runge_Kutta(f,ab,y0,h)

TOut=(ab(1):h:ab(2))';

n=length(TOut);

YOut=zeros(n,length(y0));

YOut(1,:)=y0';

for k=2:n

x=TOut(k-1); y=YOut(k-1,:)';

K1=feval(f,x,y);

K2=feval(f,x+h/2,y+K1*h/2);

K3=feval(f,x+h/2,y+K2*h/2);

K4=feval(f,x+h,y+K3*h);

YOut(k,:)=(y+(K1+2*K2+2*K3+K4)*h/6)';

end

四、实验步骤

1、打开MATLAB软件,新建 *.m文件,在m文件的窗口中编辑Euler算法的函数程序,另建一m文件,编辑自己改进的Euler算法的函数程序,再新建一m文件,在窗口中编辑Runge-Kutta算法的函数程序,并全部保存在指定的文件夹下;

2、将MATLAB软件的工作页面的工具栏下的目标文件指向指定的文件夹;

3、分别调用上述三种算法的函数,实现微分方程(组)的数值求解完成给定的实验题目;

4、输出结果和初步分析说明(见附页)。

五、使用说明实验结果分析

1、在Command Window窗口中编辑要调用的函数名与指定的函数名字不同导致出现错误,通过改正与函数名相同即可;

2、大部分的常微分方程求不出十分精确的解,而只能得到近似解。当然,这个近似解的精确程度是比较高的。另外还应该指出,用来描述物理过程的微分方程,以及由试验测定的初始条件也是近似的,这种近似之间的影响和变化还必须在理论上加以解决。

六、算法的改进和实验总结

1、Euler算法的改进:

先用欧拉法求得一个初步的近似值,称为预报值,然后用它替代梯形法右端的yi+1再直接计算fi+1,得到校正值yi+1,这样建立的预报-校正系统称为改进的欧拉格式:

预报值y~i+1=yi+1 + h*f(xi,yi)

校正值yi+1 =yi+(h/2)*[f(xi,yi)+f(xi+1,y~i+1)]

它有下列平均化形式:

yp=yi+h*f(xi,yi)

且yc=yi+h*f(xi+1,yp)

且yi+1=(xp+yc)/2

它的局部截断误差为O(h^3),可见,改进欧拉格式较欧拉格式提高了精度,其截断误差比欧拉格式提高了一阶。

2、总结:Runge-Kutta法求解微分方程比Euler公式,改进的Euler公式的求解结果有更高的精度,通过本次实验,不仅对其三种方法有了更一步的了解,而且掌握并了解了几种计算机辅助工具的运用,对我们以后更好的学习它们奠定了一定的实践基础,提高了我们一定的分析问题和解决问题的能力,也让我们对所学知识有了更深刻的了解,同时也提高了我们的动手能力。

常微分方程边值问题的数值解法

第8章 常微分方程边值问题的数值解法 引 言 第7章介绍了求解常微分方程初值问题的常用的数值方法;本章将介绍常微分方程的边值问题的数值方法。 只含边界条件(boundary-value condition)作为定解条件的常微分方程求解问题称为常微分方程的边值问题(boundary-value problem). 为简明起见,我们以二阶边值问题为 则边值问题(8.1.1)有唯一解。 推论 若线性边值问题 ()()()()()(),, (),()y x p x y x q x y x f x a x b y a y b αβ'''=++≤≤?? ==? (8.1.2) 满足 (1) (),()p x q x 和()f x 在[,]a b 上连续; (2) 在[,]a b 上, ()0q x >, 则边值问题(8.1.1)有唯一解。 求边值问题的近似解,有三类基本方法: (1) 差分法(difference method),也就是用差商代替微分方程及边界条件中的导数,最终化为代数方程求解; (2) 有限元法(finite element method);

(3) 把边值问题转化为初值问题,然后用求初值问题的方法求解。 差分法 8.2.1 一类特殊类型二阶线性常微分方程的边值问题的差分法 设二阶线性常微分方程的边值问题为 (8.2.1)(8.2.2) ()()()(),,(),(), y x q x y x f x a x b y a y b αβ''-=<

常微分方程数值解实验报告

常微分方程数值解实验报告 学院:数学与信息科学 专业:信息与计算科学 姓名:郑思义 学号:201216524 课程:常微分方程数值解 实验一:常微分方程得数值解法 1、分别用Euler法、改进得Euler法(预报校正格式)与S—K法求解初值问题。(h=0、1)并与真解作比较。 1、1实验代码: %欧拉法 function [x,y]=naeuler(dyfun,xspan,y0,h) %dyfun就是常微分方程,xspan就是x得取值范围,y0就是初值,h就是步长 x=xspan(1):h:xspan(2); y(1)=y0; forn=1:length(x)-1 y(n+1)=y(n)+h*feval(dyfun,x(n),y(n)); end %改进得欧拉法 function [x,m,y]=naeuler2(dyfun,xspan,y0,h) %dyfun就是常微分方程,xspan就是x得取值范围,y0就是初值,h就是步长。 %返回值x为x取值,m为预报解,y为校正解 x=xspan(1):h:xspan(2); y(1)=y0; m=zeros(length(x)-1,1); forn=1:length(x)-1 k1=feval(dyfun,x(n),y(n)); y(n+1)=y(n)+h*k1; m(n)=y(n+1); k2=feval(dyfun,x(n+1),y(n+1)); y(n+1)=y(n)+h*(k1+k2)/2;

end %四阶S—K法 function [x,y]=rk(dyfun,xspan,y0,h) %dyfun就是常微分方程,xspan就是x得取值范围,y0就是初值,h就是步长。 x=xspan(1):h:xspan(2); y(1)=y0; for n=1:length(x)-1 k1=feval(dyfun,x(n),y(n)); k2=feval(dyfun,x(n)+h/2,y(n)+(h*k1)/2); k3=feval(dyfun,x(n)+h/2,y(n)+(h*k2)/2); k4=feval(dyfun,x(n)+h,y(n)+h*k3); y(n+1)=y(n)+(h/6)*(k1+2*k2+2*k3+k4); end %主程序 x=[0:0、1:1];y=exp(-x)+x; dyfun=inline('-y+x+1'); [x1,y1]=naeuler(dyfun,[0,1],1,0、1); [x2,m,y2]=naeuler2(dyfun,[0,1],1,0、1); [x3,y3]=rk(dyfun,[0,1],1,0、1); plot(x,y,'r',x1,y1,'+',x2,y2,'*',x3,y3,'o'); xlabel('x');ylabel('y'); legend('y为真解','y1为欧拉解','y2为改进欧拉解','y3为S—K解','Location','NorthWest'); 1、2实验结果: x 真解y 欧拉解y1 预报值m校正值y2 S—K解y3 0、01、0000 1、0000 1、0000 1、0000 0、1 1、0048 1、00001、0000 1、00501、0048 0、2 1、0187 1、0100 1、0145 1、0190 1、0187 0、3 1、0408 1、0290 1、03711、0412 1、0408 0、4 1、0703 1、0561 1、0671 1、0708 1、0703 0、5 1、1065 1、09051、10371、10711、1065 0、6 1、1488 1、13141、1464 1、14941、1488 0、7 1、1966 1、1783 1、19451、1972 1、1966 0、81、2493 1、2305 1、2475 1、2500 1、2493 0、9 1、30661、28741、3050 1、3072 1、3066 1、0 1、3679 1、34871、3665 1、3685 1、3679

偏微分方程数值解法试题与答案

一.填空(1553=?分) 1.若步长趋于零时,差分方程的截断误差0→lm R ,则差分方程的解lm U 趋近于微分方 程的解lm u . 此结论_______(错或对); 2.一阶Sobolev 空间{} )(,,),()(21 Ω∈''=ΩL f f f y x f H y x 关于内积=1),( g f _____________________是Hilbert 空间; 3.对非线性(变系数)差分格式,常用 _______系数法讨论差分格式的_______稳定性; 4.写出3 x y =在区间]2,1[上的两个一阶广义导数:_________________________________, ________________________________________; 5.隐式差分格式关于初值是无条件稳定的. 此结论_______(错或对)。 二.(13分)设有椭圆型方程边值问题 用1.0=h 作正方形网格剖分 。 (1)用五点菱形差分格式将微分方程在内点离散化; (2)用截断误差为)(2 h O 的差分法将第三边界条件离散化; (3)整理后的差分方程组为 三.(12)给定初值问题 x u t u ??=?? , ()10,+=x x u 取时间步长1.0=τ,空间步长2.0=h 。试合理选用一阶偏心差分格式(最简显格式), 并以此格式求出解函数),(t x u 在2.0,2.0=-=t x 处的近似值。 1.所选用的差分格式是: 2.计算所求近似值: 四.(12分)试讨论差分方程 ()h a h a r u u r u u k l k l k l k l ττ + - = -+=++++11,111 1 逼近微分方程 0=??+??x u a t u 的截断误差阶R 。 思路一:将r 带入到原式,展开后可得格式是在点(l+1/2,k+1/2)展开的。 思路二:差分格式的用到的四个点刚好是矩形区域的四个顶点,可由此构造中心点的差分格 式。

微分方程数值解法

《微分方程数值解法》 【摘要】自然界与工程技术中的很多现象,可以归结为微分方程定解问题。其中,常微分方程求解是微分方程的重要基础内容。但是,对于许多的微分方程,往往很难得到甚至不存在精确的解析表达式,这时候,数值解提供了一个很好的解决思路。,针对于此,本文对常微分方程数值解法进行了简单研究,主要讨论了一些常用的数值解法,如欧拉法、改进的欧拉法、Runge —Kutta 方法、Adams 预估校正法以及勒让德谱方法等,通过具体的算例,结合MA TLAB 求解画图,初步给出了一般常微分方程数值解法的求解过程。同时,通过对各种方法的误差分析,让大家对各种方法的特点和适用范围有一个直观的感受。 【关键词】 常微分方程 数值解法 MA TLAB 误差分析 引言 在我国高校,《微分方程数值解法》作为对数学基础知识要求较高且应用非常广泛的一门课程,不仅 在数学专业,其他的理工科专业的本科及研究生教育中开设这门课程.近四十年来,《微分方程数值解法》不论在理论上还是在方法上都获得了很大的发展.同时,由于微分方程是描述物理、化学和生物现象的数学模型基础,且它的一些最新应用已经扩展到经济、金融预测、图像处理及其他领域 在实际应用中,通过相应的微分方程模型解决具体问题,采用数值方法求得方程的近似解,使具体问题迎刃而解。 2 欧拉法和改进的欧拉法 2.1 欧拉法 2.1.1 欧拉法介绍 首先,我们考虑如下的一阶常微分方程初值问题 ???==0 0)() ,('y x y y x f y (2--1) 事实上,对于更复杂的常微分方程组或者高阶常微分方程,只需要将x 看做向量,(2--1)就成了一个一阶常微分方程组,而高阶常微分方程也可以通过降阶化成一个一阶常微分方程组。 欧拉方法是解常微分方程初值问题最简单最古老的一种数值方法,其基本思路就是把(2--1)中的导数项'y 用差商逼近,从而将一个微分方程转化为一个代数方程,以便求解。 设在[]b a ,中取等距节点h ,因为在节点n x 点上,由(2--1)可得:

偏微分方程数值解期末试题及答案(内容参考)

偏微分方程数值解试题(06B) 参考答案与评分标准 信息与计算科学专业 一(10分)、设矩阵A 对称,定义)(),(),(2 1 )(n R x x b x Ax x J ∈-= ,)()(0x x J λλ?+=.若0)0('=?,则称称0x 是)(x J 的驻点(或稳定点).矩阵A 对称(不必正定),求证0x 是)(x J 的驻点的充要条件是:0x 是方程组 b Ax =的解 解: 设n R x ∈0是)(x J 的驻点,对于任意的n R x ∈,令 ),(2 ),()()()(2 000x Ax x b Ax x J x x J λλλλ?+ -+=+=, (3分) 0)0('=?,即对于任意的n R x ∈,0),(0=-x b Ax ,特别取b Ax x -=0,则有 0||||),(2000=-=--b Ax b Ax b Ax ,得到b Ax =0. (3分) 反之,若 n R x ∈0满足 b Ax =0,则对于任意的 x ,)(),(2 1 )0()1()(00x J x Ax x x J >+ ==+??,因此0x 是)(x J 的最小值点. (4分) 评分标准:)(λ?的展开式3分, 每问3分,推理逻辑性1分 二(10分)、 对于两点边值问题:????? ==∈=+-=0 )(,0)() ,()(' b u a u b a x f qu dx du p dx d Lu 其中]),([,0]),,([,0)(min )(]),,([0min ] ,[1b a H f q b a C q p x p x p b a C p b a x ∈≥∈>=≥∈∈ 建立与上述两点边值问题等价的变分问题的两种形式:求泛函极小的Ritz 形式和 Galerkin 形式的变分方程。 解: 设}0)(),,(|{11 =∈=a u b a H u u H E 为求解函数空间,检验函数空间.取),(1 b a H v E ∈,乘方程两端,积分应用分部积分得到 (3分) )().(),(v f fvdx dx quv dx dv dx du p v u a b a b a ==+=??,),(1 b a H v E ∈? 即变分问题的Galerkin 形式. (3分)

[vip专享]2013春数学实验基础 实验报告(1)常微分方程

1. 分别用Euler 法和ode45解下列常微分方程并与解析解比较: (1) 30,1)0(,<<=+='x y y x y 编写Euler 法的matlab 函数,命名为euler.m function [t,y]=euler(odefun,tspan,y0,h)t=tspan(1):h:tspan(2);y(1)=y0; for i=1:length(t)-1 y(i+1)=y(i)+h*feval(odefun,t(i),y(i));end t=t';y=y'; 下面比较三者的差别:% ode45 odefun=inline('x+y','x','y');[x1,y1]=ode45(odefun,[0,3],1);plot(x1,y1,'ko');pause hold on ;% Euler·¨ [x2,y2]=euler(odefun,[0,3],1,0.05);plot(x2,y2,'r+');pause hold on ; % 解析解 y0=dsolve('Dy=t+y','y(0)=1');ezplot(y0,[0,3]);pause hold off ; legend('ode45','euler 法','解析解');

Euler 法只有一阶精度,所以实际应用效率比较差,而ode45的效果比较好,很接近真实值。 (2) 2 0.01()2sin(),(0)0,(0)1,05 y y y t y y t ''''-+===<<先写M 文件ex1_2fun.m function f=ex1_2fun(t,y)f(1)=y(2); f(2)=0.01*y(2).^2-2*y(1)+sin(t);f=f(:);% ode45 [t1,y1]=ode45(@ex1_2fun,[0,5],[0;1]);plot(t1,y1(:,1),'ko'); % 解析解 s=dsolve('D2y-0.01*(Dy)^2+2*y=sin(t)','y(0)=0','Dy(0)=1','t') s = [ empty sym ] %由此可知该微分方程无解析解2. 求一通过原点的曲线,它在处的切线斜率等于若上限增为1.58,1.60会(,)x y 2 2,0 1.57.x y x +<

偏微分方程数值解法

一、 问题 用有限元方法求下面方程的数值解 2 u u u f t ?-?+=? in (]0,T Ω? 0u = on []0,T ?Ω? ()00,u x u = in Ω 二、 问题分析 第一步 利用Green 公式,求出方程的变分形式 变分形式为:求()()21 00,;u L T H ∈Ω,使得 ()())(2 ,,,,u v u v u v f v t ???+??+= ???? ()10v H ?∈Ω (*) 以及 ()00,u x u =. 第二步 对空间进行离散,得出半离散格式 对区域Ω进行剖分,构造节点基函数,得出有限元子空间:()12,,,h NG V span ???=???,则(*)的Galerkin 逼近为: []0,t T ?∈,求()()1 0,h h u t x V H ∈?Ω,使得 ()()()()() () )(2 ,,,,h h h h h h h d u t v u t v u t v f v dt +??+= h h v V ?∈ (**) 以及()0,0h h u u =,0,h u 为初始条件0u 在h V 中的逼近,设0,h u 为0u 在h V 中的插值. 则0t ?≥,有()()1 N G h i i i u t t ξ? == ∑,0,h u =01 N G i i i ξ?=∑,代人(**)即可得到一常微分方程组. 第三步 进一步对时间进行离散,得到全离散的逼近格式 对 du dt 用差分格式.为此把[]0,T 等分为n 个小区间[]1,i i t t -,其长度1i i T t t t n -?=-= ,n t T =. 这样把求i t 时刻的近似记为i h u ,0 h u 是0u 的近似.这里对(**)采用向后的欧拉格式,即 ()()() () )(2 11 11 1 ,,,,i i i i h h h h h h h i h u u v u v u v f v t ++++-+??+ = ? h h v V ?∈ (***) i=0,1,2…,n-1. 0 h u =0,h u 由于向后欧拉格式为隐式格式且含有非线性项,故相邻两时间步之间采用牛顿迭代,即:

偏微分方程数值解法答案

1. 课本2p 有证明 2. 课本812,p p 有说明 3. 课本1520,p p 有说明 4. Rit2法,设n u 是u 的n 维子空间,12,...n ???是n u 的一组基底,n u 中的任一元素n u 可 表为1n n i i i u c ?==∑ ,则,11 11()(,)(,)(,)(,)22j n n n n n n i j i j j i j j J u a u u f u a c c c f ???=== -=-∑∑是12,...n c c c 的二次函数,(,)(,)i j j i a a ????=,令 () 0n j J u c ?=?,从而得到12,...n c c c 满足1 (,)(,),1,2...n i j i j i a c f j n ???===∑,通过解线性方程组,求的i c ,代入1 n n i i i u c ?==∑, 从而得到近似解n u 的过程称为Rit2法 简而言之,Rit2法:为得到偏微分方程的有穷维解,构造了一个近似解,1 n n i i i u c ?== ∑, 利用,11 11()(,)(,)(,)(,)22j n n n n n n i j i j j i j j J u a u u f u a c c c f ???===-=-∑∑确定i c ,求得近似解n u 的过程 Galerkin 法:为求得1 n n i i i u c ? == ∑形式的近似解,在系数i c 使n u 关于n V u ∈,满足(,)(,) n a u V f V =,对任 意 n V u ∈或(取 ,1j V j n ?=≤≤) 1 (,)(,),1,2...n i j i j i a c f j n ???===∑的情况下确定i c ,从而得到近似解1 n n i i i u c ?==∑的过程称 Galerkin 法为 Rit2-Galerkin 法方程: 1 (,)(,)n i j i j i a c f ???==∑ 5. 有限元法:将偏微分方程转化为变分形式,选定单元的形状,对求解域作剖分,进而构 造基函数或单元形状函数,形成有限元空间,将偏微分方程转化成了有限元方程,利用 有效的有限元方程的解法,给出偏微分方程近似解的过程称为有限元法。 6. 解:对求解区间进行网格剖分,节点01......i n a x x x x b =<<<<=得到相邻节点1,i i x x -

(完整版)计算物理实验报告常微分方程

常微分方程的边值问题和本征值问题 一、问题描述 利用搜索法和弦割法,得到该常微分方程的本征值,再利用打靶法计算多个本征值。 二、解决方法 (一)搜索法 1.先随便猜测k的一个试验值,程序中令k=1 2.由Numerov算法 根据本题的条件,kn+1=kn=kn-1=k,s=0,得到yn+2,yn+1,yn间的迭代公式 令con=(k*h)^2/12 yn+2=2*(1-5*con)*yn+1/(1+con)-yn 3自己给定φ的初始条件,然后利用公式得到边界值φ(1) 4.然后以小的步长dk增加k值,这里令dk=1,每当φ(1)改变符号时,就将步长减半后倒退回来重复 5.当步长小于所要求的容许误差时终止程序,此时的k值即为所求。 (二)弦割法 1.随便猜测两个k值,这里令k0=1,k1=2 2.自己给定φ的初始条件,对两个k值分别利用上述公式进行迭代,得到边界值y1(1)和y2(1)。 3.比较y1(1)和y2(1)的绝对值大小。若绝对值大,说明对应的k值距离本征值距离较远。 4.将(k0+k1)/2赋给k2,边界值绝对值小的对应的k值保持不变,边界值绝对值大的对应k值重新定位k2的值。 5.重复进行实验,当y1(1)和y(2)的差的绝对值小于容许误差时终止程序。此时k1的值即为所求。 当搜索法和弦割法大致求出了一个本征值后,利用打靶法,调整k值再度进行搜索,得到多个本征值,绘出其中一个本征值对应的函数图像,观察其性质。 三、程序实现 1.搜索法 subroutine add(t,y0,y1) !利用子程序表示函数值的迭代 implicit none real(8)::t,h,con,y0,y1,y2

实验报告七常微分方程初值问题的数值解法

实验报告七常微分方程 初值问题的数值解法 Document number【SA80SAB-SAA9SYT-SAATC-SA6UT-SA18】

浙江大学城市学院实验报告 课程名称 数值计算方法 实验项目名称 常微分方程初值问题的数值解法 实验成绩 指导老师(签名 ) 日期 2015/12/16 一. 实验目的和要求 1. 用Matlab 软件掌握求微分方程数值解的欧拉方法和龙格-库塔方法; 2. 通过实例学习用微分方程模型解决简化的实际问题。 二. 实验内容和原理 编程题2-1要求写出Matlab 源程序(m 文件),并有适当的注释语句;分析应用题2-2,2-3,2-4,2-5要求将问题的分析过程、Matlab 源程序和运行结果和结果的解释、算法的分析写在实验报告上。 2-1 编程 编写用向前欧拉公式和改进欧拉公式求微分方程数值解的Matlab 程序,问题如下: 在区间[],a b 内(1)N +个等距点处,逼近下列初值问题的解,并对程序的每一句添上注释语句。 Euler 法 y=euler(a,b,n,y0,f,f1,b1) 改进Euler 法 y=eulerpro(a,b,n,y0,f,f1,b1) 2-2 分析应用题 假设等分区间数100n =,用欧拉法和改进欧拉法在区间[0,10]t ∈内求解初值问题 ()()20(0)10y t y t y '=-??=? 并作出解的曲线图形,同时将方程的解析解也画在同一张图上,并作比较,分析这两种方法的精度。 2-3 分析应用题 用以下三种不同的方法求下述微分方程的数值解,取10h = 画出解的图形,与精确值比较并进行分析。 1)欧拉法; 2)改进欧拉法; 3)龙格-库塔方法; 2-4 分析应用题 考虑一个涉及到社会上与众不同的人的繁衍问题模型。假设在时刻t (单位为年), 社会上有人口()x t 人,又假设所有与众不同的人与别的与众不同的人结婚后所生后代也是与众不同的人。而固定比例为r 的所有其他的后代也是与众不同的人。如果对所有人来说出生率假定为常数b ,又如果普通的人和与众不同的人的婚配是任意的,则此问题可以用微分方程表示为:

微分方程的分类及其数值解法

微分方程的分类及其数值解法 微分方程的分类: 含有未知函数的导数,如dy/dx=2x 、ds/dt=0.4都是微分方程。 一般的凡是表示未知函数、未知函数的导数与自变量之间的关系的方程,叫做微分方程。未知函数是一元函数的,叫常微分方程;未知函数是多元函数的叫做偏微分方程。微分方程有时也简称方程。 一、常微分方程的数值解法: 1、Euler 法: 00d (,), (1.1)d (), (1.2) y f x y x y x y ?=???=? 001 (),(,),0,1,,1n n n n y y x y y hf x y n N +=??=+=-? (1.4) 其中0,n b a x x nh h N -=+=. 用(1.4)求解(1.1)的方法称为Euler 方法。 后退Euler 公式???+==+++),,(),(111 00n n n n y x hf y y x y y 梯形方法公式 )].,(),([2 111+++++=n n n n n n y x f y x f h y y 改进的Euler 方法11(,),(,),1().2p n n n c n n p n p c y y hf x y y y hf x y y y y ++?=+??=+???=+??? 2、Runge-Kutta 方法: p 阶方法 : 1()O h -=?总体截断误差局部截断误差 二阶Runge-Kutta 方法 ??? ????++==++=+),,(),,(,2212 1211hk y h x f k y x f k k h k h y y n n n n n n

常微分方程数值解法

i.常微分方程初值问题数值解法 常微分方程初值问题的真解可以看成是从给定初始点出发的一条连续曲线。差分法是常微分方程初值问题的主要数值解法,其目的是得到若干个离散点来逼近这条解曲线。有两个基本途径。一个是用离散点上的差商近似替代微商。另一个是先对微分方程积分得到积分方程,再利用离散点作数值积分。 i.1 常微分方程差分法 考虑常微分方程初值问题:求函数()u t 满足 (,), 0du f t u t T dt =<≤ (i.1a ) 0(0)u u = (i.1b) 其中(,)f t u 是定义在区域G : 0t T ≤≤, u <∞上的连续函数,0u 和T 是给定的常数。我们假设(,)f t u 对u 满足Lipschitz 条件,即存在常数L 使得 121212(,)(,), [0,]; ,(,)f t u f t u L u u t T u u -≤-?∈∈-∞∞ (i.2) 这一条件保证了(i.1)的解是适定的,即存在,唯一,而且连续依赖于初值0u 。 通常情况下,(i.1)的精确解不可能用简单的解析表达式给出,只能求近似解。本章讨论常微分方程最常用的近似数值解法-差分方法。先来讨论最简单的Euler 法。为此,首先将求解区域[0,]T 离散化为若干个离散点: 0110N N t t t t T -=<< <<= (i.3) 其中n t hn =,0h >称为步长。 在微积分课程中我们熟知,微商(即导数)是差商的极限。反过来,差商就是微商的近似。在0t t =处,在(i.1a )中用向前差商 10()()u t u t h -代替微商du dt ,便得 10000()()(,())u t u t hf t u t ε=++ 如果忽略误差项0ε,再换个记号,用i u 代替()i u t 便得到 1000(,)u u hf t u -= 一般地,我们有 1Euler (,), 0,1, ,1n n n n u u hf t u n N +=+=-方法: (i.4) 从(i.1b) 给出的初始值0u 出发,由上式可以依次算出1,,N t t 上的差分解1,,N u u 。

常微分方程实验报告

《常微分方程》综合性实验 实验报告 实验班级05应数(3) 学生姓名江晓荣 学生学号200530770314 指导老师方平 华南农业大学理学院应用数学系

实验 微分方程在数学建模中的应用及数值解的求法 一、实验目的 1.了解常微分方程的基本概念。 2.常微分方程的解了解析解和数值解。 3.学习、掌握MA TLAB 软件有关求解常微分方程的解析解和数值解的有关命令。 4. 掌握微分方程在数学建模中的应用。 二、实验内容 1.用MA TLAB 函数dsolve 符号求解常微分方程的通解和特解。 2.用MA TLAB 软件数值求解常微分方程。 三、实验准备 1.用MA TLAB 求常微分方程的解析解的命令 用MA TLAB 函数dsolve 求常微分方程 ()(,,,,,,)0n F x y y y y y ''''''= (7.1) 的通解的主要调用格式如下: S=dsolve('eqn', 'var') 其中输入的量eqn 是改用符号方程表示的常微分方程(,,,2,)0F x y Dy D y Dny = ,导数用D 表示,2阶导数用D2表示,以此类推。var 表示自变量,默认的自变量为t 。输出量S 是常微分方程的解析通解。 如果给定常微分方程(7.1)的初始条件()00010(),(),,()n n y x a y x a y x a '=== ,则求方 程(7.1)的特解的主要调用格式如下: S=dsolve('eqn', 'condition1 ',…'conditonn ','var') 其中输入量eqn ,var 的含义如上, condition1,…conditonn 是初始条件。输出量S 是常微分方程的特解。 2.常微分方程的数值解法 除常系数线性微分方程可用特征根法求解、少数特殊方程可用初等积分法求解外,大部分微分方程无解析解,应用中主要依靠数值解法。考虑一阶常微分方程初值问题 00 0()(,()),()f y t f t y t t t t y t y '=<

偏微分方程数值解法

“十二五”国家重点图书出版规划项目 信息与计算科学丛书 67 偏微分方程数值解法 陈艳萍鲁祖亮刘利斌编著

内 容 简 介 本书试图用较少的篇幅描述偏微分方程的几种数值方法. 主要内容包括:Sobolev空间初步, 椭圆边值问题的变分问题, 椭圆问题的有限差分方法, 抛物型方程的有限差分方法, 双曲型方程的有限差分方法, 椭圆型方程的有限元方法, 抛物及双曲方程的有限元方法, 椭圆型方程的混合有限元方法, 谱方法等. 本书内容丰富, 深入浅出, 尽可能地用简单的方法来描述一些理论结果, 并根据作者对有限差分、有限元、混合有限元、谱方法的理解和研究生教学要求, 全面、客观地评价各种数值计算方法,并列举一些数值计算的例子, 阐述许多新的学术观点. 本书可作为高等学校数学系高年级本科生和研究生的教材或参考书, 也可作为计算数学工作者和从事科学与工程计算的科研人员的参考书. 图书在版编目(CIP)数据 偏微分方程数值解法/陈艳萍, 鲁祖亮, 刘利斌编著. —北京:科学出版社, 2015.1 (信息与计算科学丛书67) ISBN 978-7-03-000000-0 Ⅰ. ①偏… Ⅱ. ①陈… ②鲁… ③刘… Ⅲ. ① Ⅳ.① 中国版本图书馆CIP数据核字(2014) 第000000号 责任编辑: 王丽平/责任校对: 彭涛 责任印制: 肖钦/封面设计: 陈敬 出版 北京东黄城根北街16号 邮政编码: 100717 https://www.wendangku.net/doc/3617998750.html, 印刷 科学出版社发行 各地新华书店经销 * 2015年1月第一版开本: 720×1000 1/16 2015年1月第一次印刷印张: 14 字数: 280 000 定价: 88.00元 (如有印装质量问题, 我社负责调换)

Mat-lab常微分方程的求解实验报告

《数学实验》报告 实验名称Mat lab常微分方程的求解学院计算机与通信工程学院 专业班级计1103 姓名 学号 2013年6 月

一、【实验目的】 通过练习,熟悉Mat lab的求解常微分方程,函数文件的创建等。了解Mat lab的命令窗口及其基本操作和常用命令。 通过练习,熟悉Mat lab的一些基本操作,掌握符号解法和数值解法,以及其中常用的方法。 二、【实验任务】 1、求解微分方程y'=xsin(x)/cos(y)。 2、用数值方法求解下列微分方程,用不同颜色和线形将y和y'画在同一个图形窗口里: y''+ty'-y=1-2t,初始时间:t0=0;终止时间:t f=π;初始条件:y|t=0=0.1,y'|t=0=0.2。 三、【实验程序】 题一: y= dsolve('Dy=x*sin(x)/cos(y)','x') 题二: 令:a=y,b=y'=a',b'=y''则: a'=0*a+1*b+0;b'=1*a-t*b+(1-2*t); [a';b']=[0 1;1 -t][a;b]+[0;1](1-2*t); 故化为一阶微分方程有: x'=[0 1;1 -t]x+[0;1]u;其中:x'=[a';b'],u=(1-2*t)。 初始条件:当t=0时,a=0.1;b=0.2。 function xd = mainfun( t,x ) %UNTITLED Summary of this function goes here % Detailed explanation goes here u=1-2.*t; xd=[0 1;1 -t]*x+[0;1]*u; end

实验报告七-常微分方程初值问题的数值解法

实验报告七-常微分方程初值问题的数值解法

浙江大学城市学院实验报告 课程名称数值计算方法 实验项目名称常微分方程初值问题的数值解法 实验成绩指导老师(签名)日期2015/12/16 一. 实验目的和要求 1.用Matlab软件掌握求微分方程数值解的欧拉方法和龙格-库塔方法; 2.通过实例学习用微分方程模型解决简化的实际问题。 二. 实验内容和原理 编程题2-1要求写出Matlab源程序(m文件),并有适当的注释语句;分析应用题2-2,2-3,2-4,2-5要求将问题的分析过程、Matlab源程序和运行结果和结果的解释、算法的分析写在实验报告上。 2-1编程 编写用向前欧拉公式和改进欧拉公式求微分方 程数值解的Matlab程序,问题如下:

在区间[],a b 内(1)N +个等距点处,逼近下列初值问题的解,并对程序的每一句添上注释语句。 0 (,)()y f x y a x b y a y '=≤≤= Euler 法 y=euler(a,b,n,y0,f,f1,b1) 改进Euler 法 y=eulerpro(a,b,n,y0,f,f1,b1) 2-2 分析应用题 假设等分区间数100n =,用欧拉法和改进欧拉法在 区间[0,10]t ∈内求解初 值问题()()20 (0)10 y t y t y '=-?? =? 并作出解的曲线图形,同时将方程的解析解也画在同一张图上,并作比较,分析这两种方法的精度。 2-3 分析应用题 用以下三种不同的方法求下述微分方程的数值解,取10h = 201 (0)1 y y x x y '=+≤≤?? =?

画出解的图形,与精确值比较并进行分析。 1)欧拉法; 2)改进欧拉法; 3)龙格-库塔方法; 2-4 分析应用题 考虑一个涉及到社会上与众不同的人的繁衍问题模型。假设在时刻t (单位为年),社会上有人口()x t 人,又假设所有与众不同的人与别的与众不同的人结婚后所生后代也是与众不同的人。而固定比例为r 的所有其他的后代也是与众不同的人。如果对所有人来说出生率假定为常数b ,又如果普通的人和与众不同的人的婚配是任意的,则此问题可以用微分方程表示为: () (1())dp t rb p t dt =- 其中变量()()()i p t x t x t =表示在时刻t 社会上与众不同的人的比例,()i x t 表示在时刻t 人口中与众不同的人的数量。 1)假定(0)0.01,0.02p b ==和0.1r =,当步长为1h =年时,求从0t =到50t =解()p t 的近似值,并作出近似解的曲线图形。 2)精确求出微分方程的解()p t ,并将你当50t =时在分题(b)中得到的结果与此时的精确值进行比较。

常微分方程初值问题数值解法

常微分方程初值问题数值解法 朱欲辉 (浙江海洋学院数理信息学院, 浙江舟山316004) [摘要]:在常微分方程的课程中讨论的都是对一些典型方程求解析解的方法.然而在生产实 际和科学研究中所遇到的问题往往很复杂, 在很多情况下都不可能给出解的解析表达式. 本篇文章详细介绍了常微分方程初值问题的一些数值方法, 导出了若干种数值方法, 如Euler法、改进的Euler法、Runge-Kutta法以及线性多步法中的Adams显隐式公式和预测校正 公式, 并且对其稳定性及收敛性作了理论分析. 最后给出了数值例子, 分别用不同的方法计算出近似解, 从得出的结果对比各种方法的优缺点. [关键词]:常微分方程;初值问题; 数值方法; 收敛性; 稳定性; 误差估计 Numerical Method for Initial-Value Problems Zhu Yuhui (School of Mathematics, Physics, and Information Science, Zhejiang Ocean University, Zhoushan, Zhejiang 316004) [Abstract]:In the course about ordinary differential equations, the methods for analytic solutions of some typical equations are often discussed. However, in scientific research, the problems are very complex and the analytic solutions about these problems can’t be e xpressed explicitly. In this paper, some numerical methods for the initial-value problems are introduced. these methods include Euler method, improved Euler method, Runge-Kutta method and some linear multistep method (e.g. Adams formula and predicted-corrected formula). The stability and convergence about the methods are presented. Some numerical examples are give to demonstrate the effectiveness and accuracy of theoretical analysis. [Keywords]:Ordinary differential equation; Initial-value problem; Numerical method; Convergence; Stability;Error estimate

常微分方程的求解与定性分析实验报告完整版

常微分方程的求解与定性分析实验报告 标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]

常微分方程的求解与定性分析实验报告 一、实验综述 1、实验目的及要求 归纳和学习求解常微分方程(组)的基本原理和方法; 掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析; 熟悉MATLAB软件关于微分方程求解的各种命令; 通过范例学习建立微分方程方面的数学模型以及求解全过程; 通过该实验的学习,使学生掌握微分方程(组)求解方法(解析法、欧拉法、梯度法、改进欧拉法等),对常微分方程的数值解法有一个初步了解,同时学会使用MATLAB 软件求解微分方程的基本命令,学会建立微分方程方面的数学模型。这对于学生深入理解微分、积分的数学概念,掌握数学的分析思维方法,熟悉处理大量的工程计算问题的方法是十分必要的。 2、实验仪器、设备或软件 电脑、matlab7.0 二、实验过程(实验步骤、记录、数据、分析) 实验内容: 根据实验内容和步骤,完成以下实验,要求写出实验报告(实验目的→问题→数学模型→算法与编程→计算结果→分析、检验和结论)

1.求微分方程的解析解,并画出它们的图形。 y '= y + 2 x, y (0) = 1, 0< x <1; m=dsolve('Dy=y+2*x','y(0)=1','x') ezplot(m,[0 1]) m = 3*exp(x) - 2*x – 2 1.求微分方程?????====-+] 100[0 )0(;0)0(0 1.03 t u u u u u 的数值解,要求编写求解程序。 function dy=vdp1000(t,y) dy=zeros(2,1); dy(1)=y(2); dy(2)=-y(1)+0.1*y(1)^3; [T,Y]=ode15s('vdp1000',[0 10],[0 0]); plot(T,Y(:,1),'-') 3.Rossler 微分方程组:

相关文档