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

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

课程名称 数值计算方法

实验项目名称 常微分方程初值问题的数值解法

实验成绩 指导老师(签名 ) 日期 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)中得到的结果与此时的精确值进行比较。

【MATLAB 相关函数】

求微分方程的解析解及其数值的代入

dsolve(‘egn1’, ‘egn2’,L ‘x ’) subs (expr, {x,y,…}, {x1,y1,…} )

其中‘egn i ’表示第i 个方程,‘x ’表示微分方程中的自变量,默认时自变量为t 。 subs 命令中的expr 、x 、y 为符合型表达式,x 、y 分别用数值x1、x2代入。 >> syms x y z

>> subs('x+y+z',{x,y,z},{1,2,3})

ans =

6 >> syms x

>> subs('x^2',x,2)

ans =

4

>> s=dsolve(‘12Dy y ∧=+’, ‘(0)1y =’, ‘x ’) ans =

tan(14)x pi -*

>> syms x

>> subs(s,x,2)

ans =

右端函数(,)f x y 的自动生成

f= inline(‘expr ’, ’var1’, ‘var2’,……)

其中’expr ’表示函数的表达式,’var1’, ‘var2’ 表示函数表达式中的变量,运

行该函数,生成一个新的函数表达式为f (var1, var2, ……)。 >> f=inline('x+3*y','x','y') f =

Inline function: f(x,y) = x+3*y >> f(2,3)

ans =

11

4,5阶龙格-库塔方法求解微分方程数值解

[t,x]=ode45(f,ts,x0,options)

其中f 是由待解方程写成的m 文件名;x0为函数的初值;t,x 分别为输出的自变量和函

数值(列向量),t 的步长是程序根据误差限自动选定的。若ts=[t0,t1,t2,…,tf],则输出在自变量指定值,等步长时用ts=t0:k:tf ,输出在等分点;options 用于设定误差

限(可以缺省,缺省时设定为相对误差3

10-,绝对误差6

10-),程序为:

options=odeset(‘reltol ’,rt,’abstol ’,at),这里rt,at 分别为设定的相对误差和绝对误差。常用选项见下表。

选项名 功能 可选值 省缺值 AbsTol 设定绝对误差 正数 16e - RelTol 设定相对误差 正数 13e - InitialStep 设定初始步长 正数 自动 MaxStep 设定步长上界

正数 10tspan MaxOrder 设定ode15s 的最高阶数 1,2,3,4,5 5 Stats 显示计算成本统计

on,off off BDF

设定ode15s 是否用反向差分

on,off

off

例:解微分方程

204(0)1t y y t y y ?'

=-<

??=?

在命令窗口执行

>> odefun = inline (‘2*y t y -’, ‘t ’, ‘y ’);

>> [],45(,[0,4],1)t y ode odefun =; >> [],t y

ans =

……

>> plot(t ,y ,‘o-’,) %解函数图形表示

>> 45(,[0,4],1)ode odefun %不用输出变量,则直接输出图形

>> [],45(,0:4,1)t y ode odefun =;[],t y

ans =

三. 操作方法与实验步骤(包括实验数据记录和处理)

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)

Euler 法

y=euler(a,b,n,y0,f,f1,b1) y=zeros(1,n+1);

y(1)=y0;

h=(b-a)/n;

x=a:h:b;

for i=1:n;

y(i+1)=y(i)+h*f(x(i),y(i));

end

plot(x,y)

hold on

% 求微分方程的精确解

x1=linspace(a,b,100);

'精确解为'

s=dsolve(f1,b1,'x')

syms x

y1=zeros(1,100);

for

i=1:100

y1(i)=subs(s,x,x1(i)); end

plot(x1,y1,'r')

title('红色代表精确解')

改进Euler法

y=eulerpro(a,b,n,y0,f,f1,b1) % 求微分方程的数值解

y=zeros(1,n+1);

y(1)=y0;

h=(b-a)/n;

x=a:h:b;

for

i=1:n;

T1=f(x(i),y(i));

T2=f(x(i+1),y(i)+h*T1);

y(i+1)=y(i)+(h/2)*(T1+T2); end

plot(x,y)

hold on

% 求微分方程的精确解

x1=linspace(a,b,100); '精确解为'

s=dsolve(f1,b1,'x') syms x

y1=zeros(1,100); for i=1:100

y1(i)=subs(s,x,x1(i)); end

plot(x1,y1,'r')

title('红色代表精确解')

2-2分析应用题

假设等分区间数100n =,用欧拉法和改进欧拉法在区间[0,10]t ∈内求解初值问题

()()20

(0)10y t y t y '=-??

=?

并作出解的曲线图形,同时将方程的解析解也画在同一张图上,并作比较,分析这两种方法

的精度。

(1)向前欧拉法

>> euler(0,10,100,10,inline('y-20','x','y'),'Dy=y-20','y(0)=10') ans =

精确解为 s =

20 - 10*exp(x) ans =

+005 *

Columns 1 through 8

Columns 9 through 16 Columns 17 through 24 Columns 25 through 32 Columns 33 through 40 Columns 41 through 48 Columns 49 through 56 Columns 57 through 64 Columns 65 through 72 Columns 73 through 80

Columns 81 through 88

Columns 89 through 96

Columns 97 through 101

(2)改进欧拉法

>> eulerpro(0,10,100,10,inline('y-20','x','y'),'Dy=y-20','y(0)=10') ans =

精确解为

s =

20 - 10*exp(x)

ans =

+005 *

Columns 1 through 8 Columns 9 through 16 Columns 17 through 24 Columns 25 through 32 Columns 33 through 40 Columns 41 through 48 Columns 49 through 56 Columns 57 through 64 Columns 65 through 72 Columns 73 through 80 Columns 81 through 88 Columns 89 through 96 Columns 97 through 101

改进欧拉法的精度比向前欧拉法更高。

2-3分析应用题

用以下三种不同的方法求下述微分方程的数值解,取10h = 201

(0)1

y y x x y '=+≤≤??

=?

画出解的图形,与精确值比较并进行分析。 1)欧拉法; 2)改进欧拉法;

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)中得到的结果与此时的精确值

进行比较。

1)

>>

euler(0,50,50,,inline('','t','p'),'Dp=','p(0)= 1') ans =

精确解为

s =

1 - 99/(100*exp(x/500)) ans =

Columns 1 through 8 Columns 9 through 16 Columns 17 through 24 Columns 25 through 32 Columns 33 through 40 Columns 41 through 48 Columns 49 through 51

(2)

>> dsolve('Dp=','p(0)=','t') ans =1 - 99/(100*exp(t/500))

>> 1 - 99/(100*exp)

ans =

与欧拉法求得的精确值差0,0001四. 实验结果与分析

数值分析实验报告1

实验一误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 其中ε(1.1)和(1.221,,,a a 的输出b ”和“poly ε。 (1(2 (3)写成展 关于α solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。 实验过程: 程序: a=poly(1:20); rr=roots(a); forn=2:21 n form=1:9 ess=10^(-6-m);

ve=zeros(1,21); ve(n)=ess; r=roots(a+ve); -6-m s=max(abs(r-rr)) end end 利用符号函数:(思考题一)a=poly(1:20); y=poly2sym(a); rr=solve(y) n

很容易的得出对一个多次的代数多项式的其中某一项进行很小的扰动,对其多项式的根会有一定的扰动的,所以对于这类病态问题可以借助于MATLAB来进行问题的分析。 学号:06450210 姓名:万轩 实验二插值法

常微分方程练习题及答案复习题)

常微分方程练习试卷 一、 填空题。 1. 方程23 2 10d x x dt +=是 阶 (线性、非线性)微分方程. 2. 方程 ()x dy f xy y dx =经变换_______,可以化为变量分离方程 . 3. 微分方程 3230d y y x dx --=满足条件(0)1,(0)2y y '==的解有 个. 4. 设常系数方程 x y y y e αβγ'''++=的一个特解*2()x x x y x e e xe =++,则此方程的系数α= ,β= ,γ= . 5. 朗斯基行列式 ()0W t ≡是函数组12(),(),,()n x t x t x t 在a x b ≤≤上线性相关的 条件. 6. 方程 22(2320)0xydx x y dy ++-=的只与y 有关的积分因子为 . 7. 已知 ()X A t X '=的基解矩阵为()t Φ的,则()A t = . 8. 方程组 20'05??=???? x x 的基解矩阵为 . 9.可用变换 将伯努利方程 化为线性方程. 10 .是满足方程 251y y y y ''''''+++= 和初始条件 的唯一解. 11.方程 的待定特解可取 的形式: 12. 三阶常系数齐线性方程 20y y y '''''-+=的特征根是 二、 计算题 1.求平面上过原点的曲线方程, 该曲线上任一点处的切线与切点和点(1,0)的连线相互垂直. 2.求解方程13 dy x y dx x y +-=-+. 3. 求解方程 222()0d x dx x dt dt += 。 4.用比较系数法解方程. . 5.求方程 sin y y x '=+的通解. 6.验证微分方程 22(cos sin )(1)0x x xy dx y x dy -+-=是恰当方程,并求出它的通解.

数值分析实验报告

数值分析实验报告 姓名:周茹 学号: 912113850115 专业:数学与应用数学 指导老师:李建良

线性方程组的数值实验 一、课题名字:求解双对角线性方程组 二、问题描述 考虑一种特殊的对角线元素不为零的双对角线性方程组(以n=7为例) ?????????? ?????? ? ???? ?d a d a d a d a d a d a d 766 55 44 3 32 211??????????????????????x x x x x x x 7654321=?????????? ? ???????????b b b b b b b 7654321 写出一般的n (奇数)阶方程组程序(不要用消元法,因为不用它可以十分方便的解出这个方程组) 。 三、摘要 本文提出解三对角矩阵的一种十分简便的方法——追赶法,该算法适用于任意三对角方程组的求解。 四、引言 对于一般给定的d Ax =,我们可以用高斯消去法求解。但是高斯消去法过程复杂繁琐。对于特殊的三对角矩阵,如果A 是不可约的弱对角占优矩阵,可以将A 分解为UL ,再运用追赶法求解。

五、计算公式(数学模型) 对于形如????? ?? ????? ??? ?---b a c b a c b a c b n n n n n 111 2 2 2 11... ... ...的三对角矩阵UL A =,容易验证U 、L 具有如下形式: ??????? ????? ??? ?=u a u a u a u n n U ...... 3 3 22 1 , ?? ????? ? ?? ??????=1 (1) 1132 1l l l L 比较UL A =两边元素,可以得到 ? ?? ??-== = l a b u u c l b u i i i i i i 111 i=2, 3, ... ,n 考虑三对角线系数矩阵的线性方程组 f Ax = 这里()T n x x x x ... 2 1 = ,()T n f f f f ... 2 1 = 令y Lx =,则有 f Uy = 于是有 ()?????-== --u y a f y u f y i i i i i 1 1 11 1 * i=2, 3, ... ,n 再根据y Lx =可得到

常微分方程期末试题B答案

2005——2006学年第二学期 常微分方程课程试卷(B) 一、填空题(每空2 分,共16分)。 1.李普希滋条件是初值问题存在唯一解的充分条件. 2. 一阶微分方程的一个特解的图像是二 维空间上的一条曲线. 3.线性齐次微分方程组Y A Y ) ( d d x x =的一个基本解组的个数不能多于n个,其中R ∈ x,n R Y∈. 4.二阶线性齐次微分方程的两个解) ( 1 x y? =,) ( 2 x y? =成为其基本解组的充要条件是线性无关. 5.方程2 sin() y xy y '' =+的通解是 6.变量可分离方程()()()()0= +dy y q x p dx y N x M的积分因子是()() x P y N 1 7.性齐次微分方程组的解组) ( , ), ( ), ( 2 1 x x x n Y Y Y 为基本解组的充分必要条件是它们的朗斯基行列式0 ) (≠ x W. 8.方程540 y y y ''' ++=的基本解组是x x e e4 ,- - 二、选择题(每小题3 分,共15分)。 9.两个不同的线性齐次微分方程组( D )的基本解组. (A) 一定有相同(B) 可能有相同 (C) 一定有相似(D) 没有相同 10.方程组 ? ? ? ?? ? ? + = + = y x t y y x t x 4 3 d d 2 d d 的奇点)0,0(的类型是(D ). (A)稳定焦点(B)不稳定焦点(C)鞍点(D)不稳定结点11.方程x(y2-1)d x+y(x2-1)d y=0的所有常数解是( C ). (A) 1± = x(B)1± = y

(C )1±=y , 1±=x (D )1=y , 1=x 12.n 阶线性非齐次微分方程的所有解( D ). (A )构成一个线性空间 (B )构成一个1-n 维线性空间 (C )构成一个1+n 维线性空间 (D )不能构成一个线性空间 13.方程4d d +-=x y x y ( A )奇解. (A) 无 (B) 有一个 (C) 有两个 (D) 可能有 三、计算题(每小题8分,共48分) 。 14.求方程 x y x y x y tan d d +=的通解 解:令x y u =,则u x u y '+=', u x u x tan d d = 当0tan ≠u 时,等号两边积分 1d tan d C x x u u +=?? C x u ln ln sin ln += 0≠C Cx x y =sin 15.求方程0d d )1(2=+--y x x y x 的通解 解:积分因子21)(x x =μ, 则 0d 1d 122=+--y x x x y x 为全微分方程.取10=x ,00=y ,于是通积分为 1012 2d d 1C y x x y x y x =+--?? 即 C x x x y =++1 16.求方程2221)(x y x y y + '-'=的通解 解:令 p y =',得到2 2 2x xp p y +-= (*) ,两端同时关于求导,

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

第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 αβ''-=<

数值计算实验报告

(此文档为word格式,下载后您可任意编辑修改!) 2012级6班###(学号)计算机数值方法 实验报告成绩册 姓名:宋元台 学号: 成绩:

数值计算方法与算法实验报告 学期: 2014 至 2015 第 1 学期 2014年 12月1日课程名称: 数值计算方法与算法专业:信息与计算科学班级 12级5班 实验编号: 1实验项目Neton插值多项式指导教师:孙峪怀 姓名:宋元台学号:实验成绩: 一、实验目的及要求 实验目的: 掌握Newton插值多项式的算法,理解Newton插值多项式构造过程中基函数的继承特点,掌握差商表的计算特点。 实验要求: 1. 给出Newton插值算法 2. 用C语言实现算法 二、实验内容 三、实验步骤(该部分不够填写.请填写附页)

1.算法分析: 下面用伪码描述Newton插值多项式的算法: Step1 输入插值节点数n,插值点序列{x(i),f(i)},i=1,2,……,n,要计算的插值点x. Step2 形成差商表 for i=0 to n for j=n to i f(j)=((f(j)-f(j-1)(x(j)-x(j-1-i)); Step3 置初始值temp=1,newton=f(0) Step4 for i=1 to n temp=(x-x(i-1))*temp*由temp(k)=(x-x(k-1))*temp(k-1)形成 (x-x(0).....(x-x(i-1)* Newton=newton+temp*f(i); Step5 输出f(x)的近似数值newton(x)=newton. 2.用C语言实现算法的程序代码 #includeMAX_N) { printf("the input n is larger than MAX_N,please redefine the MAX_N.\n"); return 1; } if(n<=0) { printf("please input a number between 1 and %d.\n",MAX_N); return 1; } printf("now input the (x_i,y_i)i=0,...%d\n",n); for(i=0;i<=n;i++) { printf("please input x(%d) y(%d)\n",i,i);

(整理)常微分方程试题及参考答案

常微分方程试题 一、填空题(每小题3分,共39分) 1.常微分方程中的自变量个数是________. 2.路程函数S(t)的加速度是常数a,则此路程函数S(t)的一般形式是________. 3.微分方程=g( )中g(u)为u的连续函数,作变量变换________,方程可化为变 量分离方程. 4.微分方程F(x,y′)=0中令P=y′,若x、P平面上的曲线F(x,P)=0的参数形式 为x= (t),P=ψ(t),t为参数,则方程参数形式的通解为________. 5.方程=(x+1)3的通解为________. 6.如果函数f(x,y)连续,y= (x)是方程=f(x,y)的定义于区间x0≤x≤x0+h上,满 足初始条件 (x0)=y0的解.则y= (x)是积分方程________定义于x0≤x≤x0+h 上的连续解. 7.方程=x2+xy,满足初始条件y(0)=0的第二次近似解是________. 8.方程+a1(t) +…+a n-1(t) +a n(t)x=0 中a i(t) i=1,2,…,n是〔a,b〕上的连续函数,又x1(t),x2(t),…,x n(t)为方程n 个线性无关的解,则其伏朗斯基行列式W(t) 应具有的性质是:________. 9.常系数线性方程x(4)(t)-2x″(t)+x(t)=0的通解为________. 10.设A(t)是区间a≤t≤b上的连续n×n矩阵,x1(t),x2(t),…,x n(t)是方程组 x′=A(t)x的n个线性无关的解向量.则方程组的任一解向量x(t)均可表示为:x(t)=________的形式. 11.初值问题(t)+2x″(t)-tx′(t)+3x(t)=e-t,x(1)=1,x′(1)=2,x″(1)=3 可化为与之 等价的一阶方程组________. 12.如果A是3×3的常数矩阵,-2为A的三重特征值,则方程组x′=Ax的基 解矩阵exp A t=________. 13.方程组 的奇点类型是________. 二、计算题(共45分) 1.(6分)解方程 = . 2.(6分)解方程 x″(t)+ =0. 3.(6分)解方程 (y-1-xy)dx+xdy=0. 4.(6分)解方程

一阶常微分方程解法总结

第 一 章 一阶微分方程的解法的小结 ⑴、可分离变量的方程: ①、形如 )()(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 =+为变量可分离方程,得到

数值分析实验报告1

实验一 误差分析 实验(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对()中19x 的系数作一个小的扰动。我们希望比较()和()根的差别,从而分析方程()的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a 的全部根;而函数 poly(v)b =

的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve = ))20:1((ve poly roots + 上述简单的Matlab 程序便得到()的全部根,程序中的“ess ”即是()中的ε。 实验要求: (1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。 如果扰动项的系数ε很小,我们自然感觉()和()的解应当相差很小。计算中你有什么出乎意料的发现表明有些解关于如此的扰动敏感性如何 (2)将方程()中的扰动项改成18x ε或其它形式,实验中又有怎样的现象 出现 (3)(选作部分)请从理论上分析产生这一问题的根源。注意我们可以将 方程()写成展开的形式, ) 3.1(0 ),(1920=+-= x x x p αα 同时将方程的解x 看成是系数α的函数,考察方程的某个解关于α的扰动是否敏感,与研究它关于α的导数的大小有何关系为什么你发现了什么现象,哪些根关于α的变化更敏感 思考题一:(上述实验的改进) 在上述实验中我们会发现用roots 函数求解多项式方程的精度不高,为此你可以考虑用符号函数solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。

常微分方程习题及答案.[1]

第十二章 常微分方程 (A) 一、是非题 1.任意微分方程都有通解。( ) 2.微分方程的通解中包含了它所有的解。( ) 3.函数x x y cos 4sin 3-=是微分方程0=+''y y 的解。( ) 4.函数x e x y ?=2是微分方程02=+'-''y y y 的解。( ) 5.微分方程0ln =-'x y x 的通解是()C x y += 2 ln 2 1 (C 为任意常数)。( ) 6.y y sin ='是一阶线性微分方程。( ) 7.xy y x y +='33不是一阶线性微分方程。( ) 8.052=+'-''y y y 的特征方程为0522=+-r r 。( ) 9. 2 2 1xy y x dx dy +++=是可分离变量的微分方程。( ) 二、填空题 1.在横线上填上方程的名称 ①()0ln 3=-?-xdy xdx y 是 。 ②()()022=-++dy y x y dx x xy 是 。 ③x y y dx dy x ln ?=是 。 ④x x y y x sin 2+='是 。 ⑤02=-'+''y y y 是 。 2.x x y x y cos sin =-'+'''的通解中应含 个独立常数。 3.x e y 2-=''的通解是 。 4.x x y cos 2sin -=''的通解是 。 5.124322+=+'+'''x y x y x y x 是 阶微分方程。 6.微分方程()06 ='-''?y y y 是 阶微分方程。

7.x y 1 =所满足的微分方程是 。 8.x y y 2='的通解为 。 9. 0=+ x dy y dx 的通解为 。 10. ()25 11 2+=+- x x y dx dy ,其对应的齐次方程的通解为 。 11.方程()012=+-'y x y x 的通解为 。 12.3阶微分方程3x y ='''的通解为 。 三、选择题 1.微分方程()043='-'+''y y y x y xy 的阶数是( )。 A .3 B .4 C .5 D . 2 2.微分方程152=-''-'''x y x y 的通解中应含的独立常数的个数为( )。 A .3 B .5 C .4 D . 2 3.下列函数中,哪个是微分方程02=-xdx dy 的解( )。 A .x y 2= B .2x y = C .x y 2-= D . x y -= 4.微分方程32 3y y ='的一个特解是( )。 A .13+=x y B .()3 2+=x y C .()2 C x y += D . ()3 1x C y += 5.函数x y cos =是下列哪个微分方程的解( )。 A .0=+'y y B .02=+'y y C .0=+y y n D . x y y cos =+'' 6.x x e C e C y -+=21是方程0=-''y y 的( ),其中1C ,2C 为任意常数。 A .通解 B .特解 C .是方程所有的解 D . 上述都不对 7.y y ='满足2|0==x y 的特解是( )。 A .1+=x e y B .x e y 2= C .22x e y ?= D . x e y ?=3 8.微分方程x y y sin =+''的一个特解具有形式( )。 A .x a y sin *= B .x a y cos *?=

常微分方程解题方法总结.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]

数值分析实验报告模板

数值分析实验报告模板 篇一:数值分析实验报告(一)(完整) 数值分析实验报告 1 2 3 4 5 篇二:数值分析实验报告 实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。利用二分法求解给定非线性方程的根,在给定的范围内,假设f(x,y)在[a,b]上连续,f(a)xf(b) 直接影响迭代的次数甚至迭代的收敛与发散。即若x0 偏离所求根较远,Newton法可能发散的结论。并且本实验中还利用利用改进的Newton法求解同样的方程,且将结果与Newton法的结果比较分析。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。掌握二分法的原理,验证二分法,在选对有根区间的前提下,必是收

敛,但精度不够。熟悉Matlab语言编程,学习编程要点。体会Newton使用时的优点,和局部收敛性,而在初值选取不当时,会发散。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b) Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式xk?1?xk?f(xk) f'(xk) 产生逼近解x*的迭代数列{xk},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 xk?1?xk?rf(xk) 'f(xk) 其中r为要求的方程的根的重数,这就是改进的Newton 法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x);

2018常微分方程考研复试真题及答案

常微分方程计算题 2.指出下列方程中的阶数,是线性方程还是非线性方程,并说明理由; (1) t 2 2 2dt u d +t dt du +( t 2 -1)u=0 (2) dx dy =x 2+y 2 ; (3)dx dy + 2 x y =0 3.求曲线族y=C 1e x +C 2x e x 所满足的微分方程 4.验证函数y= C 1e x 2+ C 2e x 2-是微分方程y `` -4y=0的解,进一步验证它是通解。 5.试用一阶微分方程形式不变性求解方程dx dy =2x 6.什么叫积分一个微分方程 7.什么是求解常微分方程的初等积分法 8.分离变量一阶方程的特征是什么 9.求下列方程的通解 (1) y ` =sinx (2) x 2 y 2 y ` +1=y (3) tgx dx dy =1+y (4) dx dy =exp(2x-y) (5) dx dy =21y 2- (6) x 2 ydx=(1- y 2 +x-2 x 2 y 2 )dx (7)( x 2 +1)( y 2 -1)dx+xydy=0 10.叙述齐次函数的定义 11.试给出一阶方程y ` =f(x,y)或p(x,y)dx+ q(x,y)dy=0为齐次方程的特征。说明二

个方程的关系。 12.求解齐次方程通常用什么初等变换,新旧函数导数关系如何 13.求解下列方程 dx dy =2 22y x xy - 14.求解下列方程 (1)(x+2y )dx —xdy=0 (2) dx dy =x y +y x 2 15. dx dy =22y x xy + 16(x 2 +y 2 )dx —2xydy=0 17. dx dy =5 242+---y x x y 18―――――19 20―――――――27

(完整版)哈工大-数值分析上机实验报告

实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b)<0,且f(x)在[a,b]内仅有一个实根x*,取区间中点c,若,则c恰为其根,否则根据f(a)f(c)<0是否成立判断根在区间[a,c]和[c,b]中的哪一个,从而得出新区间,仍称为[a,b]。重复运行计算,直至满足精度为止。这就是二分法的计算思想。

Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式 产生逼近解x*的迭代数列{x k},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 其中r为要求的方程的根的重数,这就是改进的Newton法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x); y=-x*x-sin(x); 写成如上形式即可,下面给出主程序。 二分法源程序: clear %%%给定求解区间 b=1.5; a=0;

%%%误差 R=1; k=0;%迭代次数初值 while (R>5e-6) ; c=(a+b)/2; if f12(a)*f12(c)>0; a=c; else b=c; end R=b-a;%求出误差 k=k+1; end x=c%给出解 Newton法及改进的Newton法源程序:clear %%%% 输入函数 f=input('请输入需要求解函数>>','s') %%%求解f(x)的导数 df=diff(f);

常微分方程应用题和答案

应 用 题(每题10分) 1、设()f x 在(,)-∞∞上有定义且不恒为零,又()f x '存在并对任意,x y 恒有 ()()()f x y f x f y +=,求()f x 。 2、设()()()F x f x g x =,其中函数(),()f x g x 在(,)-∞∞内满足以下条件 ()(),()(),(0)0,()()2x f x g x g x f x f f x g x e ''===+= (1)求()F x 所满足的一阶微分方程; (2)求出()F x 的表达式。 3、已知连续函数()f x 满足条件320 ()3x x t f x f dt e ??=+ ??? ?,求()f x 。 4、已知函数()f x 在(0,)+∞内可导,()0,lim ()1x f x f x →+∞ >=,且满足 1 1 0()lim ()h x h f x hx e f x →? ?+ ?= ? ?? ? ,求()f x 。 5、设函数()f x 在(0,)+∞内连续,5 (1)2 f =,且对所有,(0,)x t ∈+∞,满足条件 1 1 1 ()()()xt x t f u du t f u du x f u du =+? ??,求()f x 。 6、求连续函数()f x ,使它满足10 ()()sin f tx dt f x x x =+?? 。 7、已知可微函数()f t 满足 31() ()1()x f t dt f x t f t t =-+?,试求()f x 。 8、设有微分方程 '2()y y x ?-=, 其中21 ()01x x x ?? 。试求在(,)-∞∞内的连续函 数()y y x =使之在(,1)-∞和()1,+∞内部满足所给方程,且满足条件(0)0y =。 9、设位于第一象限的曲线()y f x = 过点122?? ? ? ?? ,其上任一点(,)P x y 处的法线与y 轴的交点为Q ,且线段PQ 被x 轴平分。 (1)求曲线()y f x =的方程; (2)已知曲线sin y x =在[0,]π上的弧长为l ,试用l 表示曲线()y f x =的弧长s 。 10、求微分方程(2)0xdy x y dx +-=的一个解()y y x =,使得由曲线()y y x =与直线 1,2x x ==以及x 轴所围成的平面图形绕x 轴旋转一周的旋转体体积最小。 11、设曲线L 位于xOy 平面的第一象限内,L 上任一点M 处的切线与y 轴总相交,交点记为

数值分析2016上机实验报告

序言 数值分析是计算数学的范畴,有时也称它为计算数学、计算方法、数值方法等,其研究对象是各种数学问题的数值方法的设计、分析及其有关的数学理论和具体实现的一门学科,它是一个数学分支。是科学与工程计算(科学计算)的理论支持。许多科学与工程实际问题(核武器的研制、导弹的发射、气象预报)的解决都离不开科学计算。目前,试验、理论、计算已成为人类进行科学活动的三大方法。 数值分析是计算数学的一个主要部分,计算数学是数学科学的一个分支,它研究用计算机求解各种数学问题的数值计算方法及其理论与软件实现。现在面向数值分析问题的计算机软件有:C,C++,MATLAB,Python,Fortran等。 MATLAB是matrix laboratory的英文缩写,它是由美国Mathwork公司于1967年推出的适合用于不同规格计算机和各种操纵系统的数学软件包,现已发展成为一种功能强大的计算机语言,特别适合用于科学和工程计算。目前,MATLAB应用非常广泛,主要用于算法开发、数据可视化、数值计算和数据分析等,除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。 本实验报告使用了MATLAB软件。对不动点迭代,函数逼近(lagrange插值,三次样条插值,最小二乘拟合),追赶法求解矩阵的解,4RungeKutta方法求解,欧拉法及改进欧拉法等算法做了简单的计算模拟实践。并比较了各种算法的优劣性,得到了对数值分析这们学科良好的理解,对以后的科研数值分析能力有了极大的提高。

目录 序言 (1) 问题一非线性方程数值解法 (3) 1.1 计算题目 (3) 1.2 迭代法分析 (3) 1.3计算结果分析及结论 (4) 问题二追赶法解三对角矩阵 (5) 2.1 问题 (5) 2.2 问题分析(追赶法) (6) 2.3 计算结果 (7) 问题三函数拟合 (7) 3.1 计算题目 (7) 3.2 题目分析 (7) 3.3 结果比较 (12) 问题四欧拉法解微分方程 (14) 4.1 计算题目 (14) 4.2.1 方程的准确解 (14) 4.2.2 Euler方法求解 (14) 4.2.3改进欧拉方法 (16) 问题五四阶龙格-库塔计算常微分方程初值问题 (17) 5.1 计算题目 (17) 5.2 四阶龙格-库塔方法分析 (18) 5.3 程序流程图 (18) 5.4 标准四阶Runge-Kutta法Matlab实现 (19) 5.5 计算结果及比较 (20) 问题六舍入误差观察 (22) 6.1 计算题目 (22) 6.2 计算结果 (22) 6.3 结论 (23) 7 总结 (24) 附录

《常微分方程》期末模拟试题

《常微分方程》模拟练习题及参考答案 一、填空题(每个空格4分,共80分) 1、n 阶线性齐次微分方程基本解组中解的个数恰好是 n 个。 2、一阶微分方程 2=dy x dx 的通解为 2=+y x C (C 为任意常数) ,方程与通过点(2,3)的特解为 2 1=-y x ,与直线y=2x+3相切的解是 2 4=+y x ,满足条件3 3ydx =?的解为 22=-y x 。 3、李普希兹条件是保证一阶微分方程初值问题解惟一的 必要 条件。 4、对方程 2()dy x y dx =+作变换 =+u x y ,可将其化为变量可分离方程,其通解为 tan()=+-y x C x 。 5、方程 21d d y x y -=过点)1,2 (π 共有 无数 个解。 6、方程 ''2 1=-y x 的通解为 42 12122=-++x x y C x C ,满足初始条件13|2,|5====x x y y 的特解为 4219 12264 =-++x x y x 。 7、方程 x x y x y +-=d d 无 奇解。 8、微分方程2260--=d y dy y dx dx 可化为一阶线性微分方程组 6?=??? ?=+??dy z dx dz z y dx 。 9、方程 y x y =d d 的奇解是 y=0 。 10、35323+=d y dy x dx dx 是 3 阶常微分方程。 11、方程 22dy x y dx =+满足解得存在唯一性定理条件的区域是 xoy 平面 。 12、微分方程22450d y dy y dx dx --=通解为 512-=+x x y C e C e ,该方程可化为一阶线性微分方程组 45?=??? ?=+??dy z dx dz z y dx 。 13、二阶线性齐次微分方程的两个解12(),()y x y x ??==成为其基本解组的充要条件是 线性无关 。

常微分方程数值解法

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 。

相关文档
最新文档