当前位置:文档之家› Mat-lab常微分方程的求解实验报告

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

Mat-lab常微分方程的求解实验报告
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

clf;

t0=0;

tf=pi;

x0t=[0.1;0.2];%初始条件

[t,x]=ode23('mainfun',[t0,tf],x0t) y=x(:,1);

Dy=x(:,2);

plot(t,y,'g--',t,Dy,'k-.')

xlabel('t轴'),ylabel('Y轴')

legend('原始函数y','一阶导数Dy')

四、【实验结果】

题一:

y =

asin(C3 + sin(x) - x*cos(x))

题二:

>> fun

t =

0.0145

0.0873

0.2014

0.3259

0.4621

0.6121

0.7778

0.9621

1.1482

1.2767

1.4053

1.5188

1.6706

1.8601

2.0891

2.3569

2.6546

2.9687

3.1416

x =

0.1000 0.2000

0.1030 0.2158

0.1214 0.2883

0.1598 0.3798

0.2116 0.4479

0.2756 0.4847

0.3485 0.4813

0.4245 0.4282

0.4939 0.3168

0.5388 0.1599

0.5513 0.0320

0.5466 -0.1069

0.5272 -0.2358

0.4780 -0.4127

0.3788 -0.6347

0.2037 -0.8952

-0.0742 -1.1797

-0.4677 -1.4646

-0.9691 -1.7290

-1.2793 -1.8586

五、【实验总结】

通过本次实验,熟悉了Mat lab的一些基本操作,通过练习,会求解常微分方程,并熟练掌握符号解法和数值解法,以及其中常用的方法,包括欧拉方法、梯形公式、龙格库塔方法等。

通过练习,熟悉Mat lab的语句的用法,要会把高阶微分方程,通过迭代和等效替代,化为一阶微分方程。

微分方程公式运用表

微分方程公式运用表 一、 一阶微分方程 判断特征: (,)dy f x y dx = 类型一:()()dy g x h y dx =(可分离变量的方程) 解法(分离变量法): ()()dy g x dx h y =,然后两边同时积分。 类型二:()()dy P x y Q x dx +=(一阶线性方程) 解法(常数变易法):()()(())P x dx P x dx y e C Q x e dx -??=+? 类型三: (,)(,)dy f x y f tx ty dx ==(一阶齐次性方程) 解法(换元法):y u x =?令类型一 类型四:P()y=Q(x)y n dy x dx +(伯努利方程) 解法(同除法):1()()n n dy y P x y Q x dx --+=?类型二 二、 可降阶的高阶微分方程 类型一:()()n y f x = 解法(多次积分法):(1)()()n du u y f x f x dx -=? =?令多次积分求 类型二:''(,')y f x y = 解法:'(,)dp p y f x p dx =?=?令一阶微分方程 类型三:''(,')y f y y = 解法:'(,)dp dp dy dp p y p f y p dx dy dx dy =?==??令类型二 三、线性微分方程 类型一:''()'()0y P x y Q x y ++=(二阶线性齐次微分方程) 解法:找出方程的两个任意线性不相关特解:12(),()y x y x

则:1122()()()y x c y x c y x =+ 类型二:''()'()()y P x y Q x y f x ++=(二阶线性非齐次微分方程) 解法:先找出对应的齐次微分方程的通解:31122()()()y x c y x c y x =+ 再找出非齐次方程的任意特解()p y x ,则:1122()()()()p y x y x c y x c y x =++ 类型三:'''0y py q ++=(二阶线性常系数齐次微分方程) 解法(特征方程法):2 1,20p q λλλ++=?= (一)122121240x x p q y c e c e λλλλ?=->?≠?=+ (二)12120()x y c c x e λλλλ?=?==?=+ (三)12120,(cos sin )x i i y e c x c x αλαβλαβββ?

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

常微分方程数值解实验报告 学院:数学与信息科学 专业:信息与计算科学 姓名:郑思义 学号: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

MATLAB求解常微分方程数值解

利用MATLAB求解常微分方程数值解

目录 1. 内容简介 (1) 2. Euler Method(欧拉法)求解 (1) 2.1. 显式Euler法和隐式Euler法 (2) 2.2. 梯形公式和改进Euler法 (3) 2.3. Euler法实用性 (4) 3. Runge-Kutta Method(龙格库塔法)求解 (5) 3.1. Runge-Kutta基本原理 (5) 3.2. MATLAB中使用Runge-Kutta法的函数 (7) 4. 使用MATLAB求解常微分方程 (7) 4.1. 使用ode45函数求解非刚性常微分方程 (8) 4.2. 刚性常微分方程 (9) 5. 总结 (9) 参考文献 (11) 附录 (12) 1. 显式Euler法数值求解 (12) 2. 改进Euler法数值求解 (12) 3. 四阶四级Runge-Kutta法数值求解 (13) 4.使用ode45求解 (14)

1.内容简介 把《高等工程数学》看了一遍,增加对数学内容的了解,对其中数值解法比较感兴趣,这大概是因为在其它各方面的学习和研究中经常会遇到数值解法的问题。理解模型然后列出微分方程,却对着方程无从下手,无法得出精确结果实在是让人难受的一件事情。 实际问题中更多遇到的是利用数值法求解偏微分方程问题,但考虑到先从常微分方程下手更为简单有效率,所以本文只研究常微分方程的数值解法。把一个工程实际问题弄出精确结果远比弄清楚各种细枝末节更有意思,因此文章中不追求非常严格地证明,而是偏向如何利用工具实际求解出常微分方程的数值解,力求将课程上所学的知识真正地运用到实际方程的求解中去,在以后遇到微分方程的时候能够熟练运用MATLAB得到能够在工程上运用的结果。 文中求解过程中用到MATLAB进行数值求解,主要目的是弄清楚各个函数本质上是如何对常微分方程进行求解的,对各种方法进行MATLAB编程求解,并将求得的数值解与精确解对比,其中源程序在附录中。最后考察MATLAB中各个函数的适用范围,当遇到实际工程问题时能够正确地得到问题的数值解。 2.Euler Method(欧拉法)求解 Euler法求解常微分方程主要包括3种形式,即显式Euler法、隐式Euler法、梯形公式法,本节内容分别介绍这3种方法的具体内容,并在最后对3种方法精度进行对比,讨论Euler法的实用性。 本节考虑实际初值问题 使用解析法,对方程两边同乘以得到下式

高阶线性微分方程常用解法介绍

高阶线性微分方程常用解法简介 关键词:高阶线性微分方程 求解方法 在微分方程的理论中,线性微分方程是非常值得重视的一部分内容,这不仅 因为线性微分方程的一般理论已被研究的十分清楚,而且线性微分方程是研究非线性微分方程的基础,它在物理、力学和工程技术、自然科学中也有着广泛应用。下面对高阶线性微分方程解法做一些简单介绍. 讨论如下n 阶线性微分方程:1111()()()()n n n n n n d x d x dx a t a t a t x f t dt dt dt ---++++= (1),其中()i a t (i=1,2,3,,n )及f(t)都是区间a t b ≤≤上的连续函数,如果 ()0f t ≡,则方程(1)变为 1111()()()0n n n n n n d x d x dx a t a t a t x dt dt dt ---++++= (2),称为n 阶齐次线性微分方程,而称一般方程(1)为n 阶非齐次线性微分方程,简称非齐次线性微分方程,并且把方程(2)叫做对应于方程(1)的齐次线性微分方程. 1.欧拉待定指数函数法 此方法又叫特征根法,用于求常系数齐次线性微分方程的基本解组。形如 111121[]0,(3),n n n n n n n d x d x dx L x a a a x dt dt dt ---≡++++=其中a a a 为常数,称为n 阶常系数齐次线性微分方程。 111111111111[]()()()n t n t t t t n n n n n n n t t n n n n n n n d e d e de L e a a a e dt dt dt a a a e F e F a a a n λλλλλλλλλλλλλλλλ---------≡++++=++++≡≡++++其中=0(4)是的次多项式. ()F λ为特征方程,它的根为特征根. 1.1特征根是单根的情形 设12,,,n λλλ是特征方程111()0n n n n F a a a λλλλ--≡++++=的n 个彼此不相等的根,则应相应地方程(3)有如下n 个解:12,,,.n t t t e e e λλλ(5)我们指出这n 个解在区间a t b ≤≤上线性无关,从而组成方程的基本解组. 如果(1,2,,)i i n λ=均为实数,则(5)是方程(3)的n 个线性无关的实值 解,而方程(3)的通解可表示为1212,n t t t n x c e c e c e λλλ=+++其中12,,,n c c c 为任意常数. 如果特征方程有复根,则因方程的系数是实常数,复根将称对共轭的出现.设1i λαβ=+是一特征根,则2i λαβ=-也是特征根,因而于这对共轭复根

一阶常微分方程解法总结

第 一 章 一阶微分方程的解法的小结 ⑴、可分离变量的方程: ①、形如 )()(y g x f dx dy = 当0)(≠y g 时,得到 dx x f y g dy )() (=,两边积分即可得到结果; 当0)(0=ηg 时,则0)(η=x y 也是方程的解。 例1.1、 xy dx dy = 解:当0≠y 时,有 xdx y dy =,两边积分得到)(2ln 2为常数C C x y += 所以)(112 12 C x e C C e C y ±==为非零常数且 0=y 显然是原方程的解; 综上所述,原方程的解为)(12 12 为常数C e C y x = ②、形如0)()()()(=+dy y Q x P dx y N x M 当0)()(≠y N x P 时,可有 dy y N y Q dx x P x M ) () ()()(=,两边积分可得结果; 当0)(0=y N 时,0y y =为原方程的解,当0(0=) x P 时,0x x =为原方程的解。 例1.2、0)1()1(2 2 =-+-dy x y dx y x 解:当0)1)(1(2 2 ≠--y x 时,有 dx x x dy y y 1 122-=-两边积分得到 )0(ln 1ln 1ln 22≠=-+-C C y x ,所以有)0()1)(1(22≠=--C C y x ; 当0)1)(1(2 2 =--y x 时,也是原方程的解; 综上所述,原方程的解为)()1)(1(2 2 为常数C C y x =--。 ⑵可化为变量可分离方程的方程: ①、形如 )(x y g dx dy = 解法:令x y u =,则udx xdu dy +=,代入得到)(u g u dx du x =+为变量可分离方程,得到

[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 +<

常微分方程解题方法总结.doc

常微分方程解题方法总结 来源:文都教育 复习过半, 课本上的知识点相信大部分考生已经学习过一遍 . 接下来, 如何将零散的知 识点有机地结合起来, 而不容易遗忘是大多数考生面临的问题 . 为了加强记忆, 使知识自成 体系,建议将知识点进行分类系统总结 . 著名数学家华罗庚的读书方法值得借鉴, 他强调读 书要“由薄到厚、由厚到薄”,对同学们的复习尤为重要 . 以常微分方程为例, 本部分内容涉及可分离变量、 一阶齐次、 一阶非齐次、 全微分方程、 高阶线性微分方程等内容, 在看完这部分内容会发现要掌握的解题方法太多, 遇到具体的题 目不知该如何下手, 这种情况往往是因为没有很好地总结和归纳解题方法 . 下面以表格的形 式将常微分方程中的解题方法加以总结,一目了然,便于记忆和查询 . 常微分方程 通解公式或解法 ( 名称、形式 ) 当 g( y) 0 时,得到 dy f (x)dx , g( y) 可分离变量的方程 dy f ( x) g( y) 两边积分即可得到结果; dx 当 g( 0 ) 0 时,则 y( x) 0 也是方程的 解 . 解法:令 u y xdu udx ,代入 ,则 dy 齐次微分方程 dy g( y ) x dx x u g (u) 化为可分离变量方程 得到 x du dx 一 阶 线 性 微 分 方 程 P ( x)dx P ( x) dx dy Q(x) y ( e Q( x)dx C )e P( x) y dx

伯努利方程 解法:令 u y1 n,有 du (1 n) y n dy , dy P( x) y Q( x) y n(n≠0,1)代入得到du (1 n) P(x)u (1 n)Q(x) dx dx 求解特征方程:2 pq 三种情况: 二阶常系数齐次线性微分方程 y p x y q x y0 二阶常系数非齐次线性微分方程 y p x y q x y f ( x) (1)两个不等实根:1, 2 通解: y c1 e 1x c2 e 2x (2) 两个相等实根:1 2 通解: y c1 c2 x e x (3) 一对共轭复根:i , 通解: y e x c1 cos x c2 sin x 通解为 y p x y q x y 0 的通解与 y p x y q x y f ( x) 的特解之和. 常见的 f (x) 有两种情况: x ( 1)f ( x)e P m ( x) 若不是特征方程的根,令特解 y Q m ( x)e x;若是特征方程的单根,令特 解 y xQ m ( x)e x;若是特征方程的重根, 令特解 y*x2Q m (x)e x; (2)f (x) e x[ P m ( x) cos x p n ( x)sin x]

常微分方程数值解

第四章常微分方程数值解 [课时安排]6学时 [教学课型]理论课 [教学目的和要求] 了解常微分方程初值问题数值解法的一些基本概念,如单步法和多步法,显式和隐式,方法的阶数,整体截断误差和局部截断误差的区别和关系等;掌握一阶常微分方程初值问题的一些常用的数值计算方法,例如欧拉(Euler)方法、改进的欧拉方法、龙贝-库塔(Runge-Kutta)方法、阿达姆斯(Adams)方法等,要注意各方法的特点及有关的理论分析;掌握构造常微分方程数值解的数值积分的构造方法和泰勒展开的构造方法的基本思想,并能具体应用它们导出一些常用的数值计算公式及评估截断误差;熟练掌握龙格-库塔(R-K)方法的基本思想,公式的推导,R-K公式中系数的确定,特别是能应用“标准四阶R-K公式”解题;掌握数值方法的收敛性和稳定性的概念,并能确定给定方法的绝对稳定性区域。[教学重点与难点] 重点:欧拉方法,改进的欧拉方法,龙贝-库塔方法。 难点:R—K方法,预估-校正公式。 [教学内容与过程] 4.1 引言 本章讨论常微分方程初值问题 (4.1.1) 的数值解法,这也是科学与工程计算经常遇到的问题,由于只有很特殊的方程能用解析方法求解,而用计算机求解常微分方程的初值问题都要采用数值方法.通常我们假定(4.1.1)中 f(x,y)对y满足Lipschitz条件,即存在常数L>0,使对,有 (4.1.2) 则初值问题(4.1.1)的解存在唯一. 假定(4.1.1)的精确解为,求它的数值解就是要在区间上的一组离散点 上求的近似.通常取 ,h称为步长,求(4.1.1)的数值解是按节点的顺序逐步 推进求得.首先,要对方程做离散逼近,求出数值解的公式,再研究公式的局部截

常微分方程考研讲义 一阶微分方程解的存在定理

第三章一阶微分方程解的存在定理 [教学目标] 1.理解解的存在唯一性定理的条件、结论及证明思路,掌握逐次逼近法,熟练 近似解的误差估计式。 2.了解解的延拓定理及延拓条件。 3.理解解对初值的连续性、可微性定理的条件和结论。 [教学重难点] 解的存在唯一性定理的证明,解对初值的连续性、可微性定理的 证明。 [教学方法] 讲授,实践。 [教学时间] 12学时 [教学内容] 解的存在唯一性定理的条件、结论及证明思路,解的延拓概念及延 拓条件,解对初值的连续性、可微性定理及其证明。 [考核目标] 1.理解解的存在唯一性定理的条件、结论,能用逐次逼近法解简单的问题。 2.熟练近似解的误差估计式,解对初值的连续性及可微性公式。 3.利用解的存在唯一性定理、解的延拓定理及延拓条件能证明有关方程的某些性质。 §1 解的存在性唯一性定理和逐步逼近法 微分方程来源于生产实践际,研究微分方程的目的就在于掌握它所反映的客 观规律,能动解释所出现的各种现象并预测未来的可能情况。在第二章介绍了一 阶微分方程初等解法的几种类型,但是,大量的一阶方程一般是不能用初等解法 求出其通解。而实际问题中所需要的往往是要求满足某种初始条件的解。因此初 值问题的研究就显得十分重要,从前面我们也了解到初值问题的解不一定是唯一的。他必须满足一定的条件才能保证初值问题解的存在性与唯一性,而讨论初值 问题解的存在性与唯一性在常微分方程占有很重要的地位,是近代常微分方程定 性理论,稳定性理论以及其他理论的基础。 例如方程 过点(0,0)的解就是不唯一,易知0 y=是方程过(0,0)的解,此外,容易验证,2 =或更一般地,函数 y x 都是方程过点(0,0)而且定义在区间01 <<的任一数。 c ≤≤上的解,其中c是满足01 x

(完整版)常微分方程习题及解答

常微分方程习题及解答 一、问答题: 1.常微分方程和偏微分方程有什么区别?微分方程的通解是什么含义? 答:微分方程就是联系着自变量,未知函数及其导数的关系式。常微分方程,自变量的个数只有一个。偏微分方程,自变量的个数为两个或两个以上。常微分方程解的表达式中,可能包含一个或几个任意常数,若其所包含的独立的任意常数的个数恰好与该方程的阶数相同,这样的解为该微分方程的通解。 2.举例阐述常数变易法的基本思想。 答:常数变易法用来求线性非齐次方程的通解,是将线性齐次方程通解中的任意常数变易为待定函数来求线性非齐次方程的通解。 例:求 ()()dy P x y Q x dx =+的通解。 首先利用变量分离法可求得其对应的线性齐次方程的通解为()P x dx y c ?=l ,然后将 常数c 变易为x 的待定函数()c x ,令()()P x dx y c x ? =l ,微分之,得到 ()()()()()P x dx P x dx dy dc x c x P x dx dx ?? =+l l ,将上述两式代入方程中,得到 ()()()()()()()()() P x dx P x dx P x dx dc x c x P x dx c x P x Q x ??+?=+l l l 即 ()() ()P x dx dc x Q x dx -? =l 积分后得到()()()P x dx c x Q x dx c -?=+? %l 进而得到方程的通解 ()()(()) P x dx P x dx y Q x dx c -? ?=+?%l l 3.高阶线性微分方程和线性方程组之间的联系如何? 答:n 阶线性微分方程的初值问题 ()(1) 11(1) 01020()...()()()(),(),....()n n n n n n x a t x a t x a t x f t x t x t x t ηηη---'?++++=??'===?? 其中12()(),...(),()n a t a t a t f t ,是区间a t b ≤≤上的已知连续函数,[]0,t a b ∈, 12,,...,n ηηη是已知常数。它可以化为线性微分方程组的初值问题

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

常微分方程的边值问题和本征值问题 一、问题描述 利用搜索法和弦割法,得到该常微分方程的本征值,再利用打靶法计算多个本征值。 二、解决方法 (一)搜索法 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

常微分方程教材

第九章 微分方程 一、教学目标及基本要求 (1) 了解微分方程及其解、通解、初始条件和特解的概念。 (2) 掌握变量可分离的方程和一阶线性方程的解法,会解齐次方程。 (3) 会用降阶法解下列方程:),(),,(),()(y y f y y x f y x f y n '='''=''=。 (4) 理解二阶线性微分方程解的性质以及解的结构定理。 (5) 掌握二阶常系数齐次线性微分方程的解法,并会解某些高于二阶的常系数齐次线性微分方程。 (6) 会求自由项多项式、指数函数、正弦函数、余弦函数,以及它们的和与二阶常系数非齐次线性微分方程的 特解和通解。 (7) 会用微分方程解决一些简单的应用问题。 二、本章教学内容的重点和难点 1、理解和熟悉微分方程的一些基本概念; 2、掌握一阶和高阶微分方程的各种初等积分法; 3、熟悉线性方程的基础理论,掌握常系数二阶线性齐次与非齐次方程的解法; 4、会列微分方程及其始值问题去解决实际问题。 三、本章教学内容的深化和拓宽: 1、分离变量法的理论根据; 2、常用的变量代换; 3、怎样列微分方程解应用题; 4、黎卡提方程; 5、全微分方程的推广; 6、二阶齐次方程; 7、高阶微分方程的补充; 8、求线性齐次方程的另一个线性无关的解; 9、求线性非齐次方程的一个特解; 10、常数变易法。 本章的思考题和习题 解下列方程(第1-6题) 1、2)0(,)1(==+'+y x y y x 2、()[]f dx x f e e x f x x x ,)(02?+=可微 3、212 22sin 22sin 1X e y x y y x ++='?+ 4、0)3(24=+-xydx dy x y 5、21)0(,1)0(,022- ='=='+''y y y x y 6、2y y y x y '-'+'= 7、已知可微函数)(x f 满足 ?-=+x x f f x f x x f dx x f 12)()1(,1)()()(和求; 8、已知)(,,1)(2 1)(10x f f x f da ax f 求可微+= ?; 9、求与曲线族C y x =+2232相交成ο45角的曲线; 10、一容器的容积为100L ,盛满盐水,含10kg 的盐,现以每分钟3L 的速度向容器内注入淡水冲淡盐水,又以同样的速度将盐水抽入原先盛满淡水的同样大小的另一容器内,多余的水便从容器内流出,问经过多少时间,两容器内的含盐量相等?

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

实验报告七常微分方程 初值问题的数值解法 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 ,又如果普通的人和与众不同的人的婚配是任意的,则此问题可以用微分方程表示为:

一阶常微分方程的解法

一阶常微分方程的解法 摘要:常微分方程是微积分学的重要组成部分,广泛用于具体问题的研究中,在整个数学中占有重要的地位。本文对一阶常微分方程的解法作了简要的总结,并举例加以分析了变量可分离方程,线性微分方程,积分因子,恰当微分方程,主要归纳了一阶微分方程的初等解法,并以典型例题加以说明。 关键词:变量分离;积分因子;非齐次微分方程;常数变易法 Solution of first-order differential equation Abstract: Differential equations, important parts of calculus, are widely used in the research of practical problems, which also play important role in mathematics. The solution of a differential equation is summarized briefly, and illustrates the analysis of variable separable equation, linear differential equation, integral factor, exact differential equation, mainly summarizes the elementary solution of first order differential equations, and the typical examples to illustrate. Keywords: variable separation; integral factor; non-homogeneous differential equation; constant variation method 1. 引言 一阶常微分方程初等解法,就是把常微分方程的求解问题转化为积分问题, 能用这种方法求解的微分方程称为可积方程. 本文通过对一阶微分方程的初等解法的归纳与总结,以及对变量分离,积分因子,微分方程等各类初等解法的简要分析,同时结合例题把常微分方程的求解问题化为积分问题,进行求解. 2. 一般变量分离 2.1 变量可分离方程 形如 ()()dy f x g y dx = (1.1) 或 1122()()()()M x N y dx M x N y dy = (1.2) 的方程,称为变量可分离方程。分别称(1.1)、(1.2)为显式变量可分离方程和 微分形式变量可分离方程[1] . (1) 显式变量可分离方程的解法 在方程(1.1)中, 若()0g y ≠,(1.1)变形为 ()() dy f x dx g y =

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

常微分方程的求解与定性分析实验报告 标准化管理处编码[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 微分方程组:

常微分方程实验报告

《常微分方程》综合性实验 实验报告 实验班级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 '=<

常微分方程数值解法

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 。

常微分方程计算

实验八 常微分初值问题的数值解法 8.1实验目的 ① 掌握常微分方程数值解的常用算法; ② 培养编程与上机调试能力. 8.2算法描述 8.2.1改进欧拉法 求解 '0 ()(,)()()y x f x y a x b y a y ?=≤≤?=? 对给定的(,)f x y ,用改进的欧拉公式 1111()[()()]2 n n n n n n n n n n y y hf x y h y y f x y f x y ++++=++???=++++??求解常微分方程初值问题的解. 8.2.2四阶龙格-库塔法 对上述给定的(,)f x y ,用四阶龙格-库塔法求解常微分方程初值问题 112341213243(22)6(,) 11(,)2211(,)22(,)n n n n n n n n n n h y y k k k k k f x y k f x h y hk k f x h y hk k f x h y hk +?=++++??=???=++???=++??=++?? 8.3实验题目 (1) 用改进的欧拉公式,求解常微分方程初值问题的解 20.10.4(0)1 dy y x dx y ?=?≤≤??=? (2) 用四阶龙格-库塔公式解初值问题: / 2.0 2.6,0.2(2.0)1dy x y x h dx y ?=?≤≤=??=?

8.4实验要求 (1)选择一种计算机语言设计出改进欧拉法和四阶龙格-库塔法方法求解常微分方程初值问题的程序,观察运行结果. (2)利用Matlab求解常微分方程初值问题 函数dsolve()用于求解微分方程.Dy表示:dy/dt(t 为缺省的自变量),Dny表示y对t 的n阶导数. Matlab6.1环境下操作如下: >> y=dsolve('Dy=y*y','y(0)=1') %求解题目1 >> y=dsolve('Dy=y/t','y(2.0)=1') %求解题目2 (3)利用最小二乘法拟合通过改进欧拉法求出微分方程的一系列数值解的近似函数方程.并利用Matlab的绘图功能画出函数的曲线 8.5思考 一阶微分方程初值问题有哪些数值解法?比较各种方法的优缺点并举具体例子说明之?

相关主题
文本预览
相关文档 最新文档