华中科技大学数值分析微分方程求解
数值分析常微分方程求解实验

实验报告
一、实验目的
解初值问题各种方法比较。
二、实验题目
给定初值问题
⎪⎩⎪⎨⎧=≤<+=,
0)1(,21y x xe x y dx dy x , 其精确解为)(e e x y x -=,按
(1)改进欧拉法,步长01.0,1.0==h h ;
(2)四阶标准龙格-库塔法,步长1.0=h ;
求在节点)10,...,2,1(1.01=+=k k x k 处的数值解及其误差,比较各个方法的优缺点。
三、实验原理
改进欧拉法程序,四阶标准龙格-库塔法程序。
四、实验内容及结果
五、实验结果分析
实验2中改进欧拉法和四阶标准龙格-库塔法的比较:
结果的第一个ans是x的值与对应的y的值,第二个ans是精确解x的对应值y,第三个ans 是与精确值的误差百分数。
通过误差百分数的比较,可以明显的发现改进欧拉法比四阶标准龙格-库塔法更精确。
华中科技大学精品课程—微积分(下)

一. 平面及其方程 二. 直线及其方程
一. 平面方程
1.平面的点法式方程
已知M 0 ( x0 , y0 , z0 ) , 矢量n , n A, B, C O
n称为平面的法矢量
z
n
M0
π
M
y
求平面的方程
o
x
解: 设平面上的任一点为 M ( x , y , z )
例 2 求过点(1,1,1) , 且垂直于平面 x y z 7 和
3 x 2 y 12 z 5 0 的平面方程.
解
n1 {1,1, 1}, n2 {3, 2,12} 取法矢量 n n1 n2 {10, 15, 5},
所求平面方程为
(1) D 0, 平面 Ax+By+Cz=0 通过坐标原点;
( 2) A 0, n 0, B, C x轴, D 0, 平面通过
轴; x D 0, 平面平行于 x 轴;
类似地可讨论 B 0, C 0 情形. 平面平行于 ( 3) B C 0, n A,0,0 yoz平面, yoz平面. 类似地可讨论 A = B = 0, A = C = 0 情况.
C 2 2 2 A B C
Pr jn P1 P0 P1 P0 n0
A( x0 x1 ) B( y0 y1 ) C ( z0 z1 ) 2 2 2 2 2 2 A B C A B C A2 B 2 C 2
Ax0 By0 Cz0 ( Ax1 By1 Cz1 ) , 2 2 2 A B C
知平面方程为 x , y , z 的三元一次方程. 命题2. 任何x , y , z 的三元一次方程:
华中科技大学出版社—数值分析第四版—课后习题及答案

14. 由于 x1 , x 2 , , x n 是 f ( x ) 的 n 个互异的零点,所以 f ( x) a 0 ( x x1 )( x x 2 ) ( x x n )
a 0 ( x xi ) a 0 ( x x j ) ( x xi ),
i 1 i 1 i j n n
4 7 h 3 时,取得最大值 max | l 2 ( x ) |
10 7 7 x 0 x x3 27 . k x , x , , x n 处进行 n 次拉格朗日插值,则有 6. i) 对 f ( x) x , (k 0,1, , n) 在 0 1 x k Pn ( x ) Rn ( x ) l j ( x) x k j
。
14.
1000000000 999999998 x1 1.000000, x2 1.000000 999999999 999999999 方程组的真解为 ,
x 1.00, x2 1.00 , 而无论用方程一还是方程二代入消元均解得 1 结果十分可 靠。 s b sin ca a sin cb ab cos cc a b c tan c c s ab sin c a b c 15.
可 得
计
算
( f1 ) ln(1
( f 2 ) ln(1
x x 1
2
) )
1 ( x x 2 1) 60 104 3 103 2 x x 1 ,
2
x x 1
2
x x 1
2
1 1 104 8.33 107 60 2
。
(Y100 ) 100
最新华中科技大学数值分析

Function t_charpt1_1%数值试验1.1 病态问题%输入:[0 20]之间的扰动项及小的扰动常数%输出:加扰动后得到的全部根Result=inputdlg({ 请输‘入扰动项:在[0 20]之间的整数:'}, ' charpt1_1 ',1 '{ ‘19'});Numb=str2num(char(result));if ((Numb>20)|(Numb<0))errordlg( 请输‘入正确的扰动项:[0 20]之间的整数!' );return;endresult= inputdlg({ 请输‘入(0 1)之间的扰动常数: '}, ' charpt1_1 ',1,{ ‘ 0.00001 '});ess=str2num(char(result));ve=zeros(1,21); ve(21-Numb)=ess;root=roots(poly(1:20)+ve);disp([对扰动项’,num2str(Numb)加扰动’,num2str(ess得到的全部根为:’]); disp(num2str(root));function charpt3%数值实验三:含“实验3.1 ”和“实验3.2 ” %子函数调用:dlsa%输入:实验选择%输出:原函数及求得的相应插值多项式的函数的图像以及参数alph 和误差rresult=inputdlg({ 请选择‘实验,若选 3.1,请输入1,否则输入2:' },' charpt_3 ' ,1,{ ‘ 1' });Nb=str2num(char(result));if(Nb~=1&(Nb~=2)errordlg( 实验选‘择错误! ';))return;endx0=-1:0.5:2 y0=[-4.447 -0.452 0.551 0.048 -0.447 0.549 4.552];n=3;%n 为拟合阶次if(Nb==1) alph=polyfit(x0,y0,n);y=polyval(alph,x0); r=(y0-y)*(y0- y) '平;%方误差x=-1:0.01:2;y=polyval(alph,x);plot(x,y, -'');kxlabel( ‘ x' );ylabel( ‘ y0*a-'nd)p; loyfit.yhold on;plot(x,y, -'');ktitle( 离散‘数据的多项式拟合 ' );grid on;else result=inpurdlg({ 请输入‘权向量w:'}, ' charpt_3,1,{ ‘[1 1 1 1 1 1 1] '});w=str2num(char(result));[a,b,c,alph,r]=dlsa(x0,y0,w,n);enddisp([ 平‘方误差:' ,sprint( ‘ %g,r ' )]);disp([ 参‘数alph: ' ,sprint(t ' ‘,al%ph)])% ---------------------------------------------------------------------------------------------------------------------------- function[a,b,c,alph,r]=dlsa(x,y,w,n)%功能:用正交化方法对离散数据作多项式最小二乘拟合。
微分方程求解方法

微分方程求解方法微分方程是数学中的一个重要概念,广泛应用于物理学、工程学、经济学等领域。
微分方程求解是通过已知条件找到满足方程的未知函数的过程。
根据方程的类型和性质,有多种解法可供选择。
一、可分离变量的微分方程可分离变量的微分方程形式为dy/dx = f(x)g(y),可以通过变量的分离和积分的方法进行求解。
具体步骤如下:1. 将方程变形为dy/g(y) = f(x)dx。
2. 对两边同时积分,得到∫(1/g(y))dy = ∫f(x)dx。
3.求出积分的表达式,然后求解原方程。
二、一阶线性微分方程一阶线性微分方程的一般形式为dy/dx + P(x)y = Q(x),可通过线性变换和积分的方法进行求解。
具体步骤如下:1. 通过线性变换将方程变为dy/dx + yP(x) = Q(x)P(x)。
2. 确定积分因子μ(x) = e∫P(x)dx。
3. 将原方程两边同时乘以μ(x),并进行化简得到d(yμ(x))/dx = Q(x)μ(x)。
4. 对等式两边同时积分得到∫d(yμ(x))/dx dx = ∫Q(x)μ(x)dx。
5.求出积分的表达式,然后求解原方程。
三、二阶线性齐次微分方程二阶线性齐次微分方程的一般形式为d²y/dx² + p(x)dy/dx + q(x)y = 0,可以通过特征根法求解。
具体步骤如下:1. 假设解的形式为y = e^(mx)。
2. 将形式代入原方程,得到特征方程m² + pm + q = 0。
3.求解特征方程得到特征根m₁和m₂。
4.根据特征根的情况,得到相应的通解。
四、二阶线性非齐次微分方程二阶线性非齐次微分方程的一般形式为d²y/dx² + p(x)dy/dx +q(x)y = f(x),可以通过常数变易法求解。
具体步骤如下:1.假设原方程的特解为y=u(x),将其代入原方程,得到关于u和它的导数的代数方程。
2.根据原方程的非齐次项f(x)的形式,设定特解的形式。
华中科技大学数理方程课件第四章格林函数法

1
n
d
由 与
后 的 球 的 为
,
N
n
中
小
k
任 常
u ( N
到 整
)
u ( M
)
)
u ( M
u ( M
1
) ,
N
u 不
意 数
性 矛
, 就 盾
上
有
) , 这
Kn N Mn M 2 K1 M 1 K2 M 3 S1 S2
l
Sn
图 4 .1
4.2 格林函数
1 1 1 u ( M ) (4.2.1) u ( M ) u ( M ) ( ) dS 0 4 n r r n MM MM 0 0
分方程,又可以研究偏微分方程;既可以研究齐次方 程又可以研究非齐次方程;既可以研究有界问题,又 可以研究无界问题。它的内容十分丰富,应用极其广 泛。这一章,我们主要介绍用格林函数求解拉普拉斯
方程的边值问题。
4.1 格林公式及其应用
4.1.1 基本解 对拉普拉斯方程 , 其球坐标形式为: u u u u 0 xx yy zz
由于调和函数有积分表示:
u 0, x , 又因为Dirichlet边值问题 的解唯一,故希望 u f
将此问题的解用积分表示出来。但由于在积分表达示中,u
u 在边界上的值虽然已知,而 在边界上的值却不知道.那么, n u 能否作为边界条件加上 | 的值呢?显然这是行不通的, n u | 因为,此时的解已经是唯一的了.那么只有想办法去掉 n 为此,引入格林函数的概念。
思考:Laplace方程Neumann问题有解的必要条件是什么?
华科数理方程总结

华科数理方程总结数理方程(Mathematical Equations)是数学中一个重要的研究领域,它涉及到数学方程的建立、求解和分析。
华中科技大学(HUST)是中国一所著名的综合性大学,在数理方程的研究方面也具有较高的声誉。
本文将对华科数理方程的研究进行总结。
首先,华科数理方程的研究内容非常丰富,包括常微分方程、偏微分方程、差分方程等不同类型的方程。
其中,常微分方程是研究关于未知函数的导数的方程,它在自然科学、工程技术等领域中具有广泛的应用。
华科数学院的研究人员在常微分方程的理论和应用方面具有深厚的研究基础,他们通过对方程的性质、解的存在性和稳定性等进行研究,为相关领域的发展提供了理论支持。
其次,华科数理方程的研究方法多样化,不仅包括数值方法、解析方法,还包括动力学系统理论、变分法、集合拓扑等方法。
数值方法是一种通过数值计算来求解方程的方法,它可以有效地解决一些复杂的方程。
华科数学院的研究人员在数值方法方面取得了显著的成果,他们开发了一系列高效、精确的数值算法,解决了多个实际问题。
除此之外,华科数学院还注重理论的推导和分析,通过对方程的特征和性质进行研究,进一步提高了方程的解析求解能力。
另外,华科数理方程的研究还涉及到一些具体的应用领域,如物理学、生物学、计算机科学等。
数学在这些领域中起着重要的作用,数理方程的研究为相关领域的发展提供了理论支持和实际解决方案。
华科数学院的研究人员不仅注重理论的研究,还积极参与到实际问题的解决中,以理论指导实践,为社会经济发展做出贡献。
华科数理方程的研究在国内外学术界享有很高的声誉。
华科数学院的研究成果在国内外学术期刊上发表,得到了同行的广泛认可。
华科数学院与国内外多个知名学府和科研机构合作,开展联合研究和学术交流,促进了数理方程研究的进一步发展。
总之,华科数理方程的研究涵盖了常微分方程、偏微分方程、差分方程等不同类型的方程,采用了多种研究方法,包括数值方法、解析方法、动力学系统理论、变分法、集合拓扑等。
数值分析常微分方程的数值解法

《计算机数学基础》数值部分第五单元辅导14 常微分方程的数值解法一、重点内容 1. 欧拉公式:),...,,,(),()(1-210=⎩⎨⎧+=+=≈01+1+n k kh x x y x hf y y x y kk k k k k局部截断误差是O (h 2)。
2. 改进欧拉公式:预报-校正公式:⎪⎩⎪⎨⎧++=+=++++)],(),([2),(1111k k k k k k k k k k y x f y x f hy y y x hf y y 校正值预报值即 ))],(,(),([211k k k k k k k k y x hf y x f y x f hy y +++=++ 或表成平均的形式:⎪⎪⎪⎩⎪⎪⎪⎨⎧+21=+=+=1+1+)(),(),(c p k p k k c k k k p y y y y x hf y y y x hf y y改进欧拉法的局部截断误差是O (h 3)3. 龙格-库塔法二阶龙格-库塔法的局部截断误差是O (h 3) 三阶龙格-库塔法的局部截断误差是O (h 4) 四阶龙格−库塔法公式: )22(643211κκκκ++++=+hy y k k其中 κ1=f (x k ,y k );κ2=f (x n +12h ,y k +21h κ1);κ3=f (x k +12h ,y n +21h κ2);κ4=f (x k +h ,y k +h κ3)四阶龙格-库塔法的局部截断误差是O (h 5)。
二、实例例1 用欧拉法解初值问题⎩⎨⎧1=060≤≤0--='2)().(y x xy y y ,取步长h =0.2。
计算过程保留4位小数。
解h =0.2, f (x )=-y -xy 2。
首先建立欧拉迭代格式),,)((.),(210=-420=--=+=21+k y x y y hx hy y y x hf y y k k k kk k k k k k k当k =0,x 1=0.2时,已知x 0=0,y 0=1,有y (0.2)≈y 1=0.2×1(4-0×1)=0.8000当k =1,x 2=0.4时,已知x 1=0.2, y 1=0.8,有 y (0.4)≈y 2=0.2×0.8×(4-0.2×0.8)=0.614 4 当k =2,x 3=0.6时,已知x 2=0.4,y 2=0.6144,有 y (0.6)≈y 3=0.2×0.6144×(4-0.4×0.4613)=0.8000例2 用欧拉预报-校正公式求解初值问题⎩⎨⎧1=10=++'2)(sin y x y y y ,取步长h =0.2,计算y (0.2),y (0.4)的近似值,计算过程保留5位小数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab作图显示
从表和图可以看出,改进的Euler法的精度提高了 不少。
11
Euler公式的m函数程序:
function y=Euler(f,a,b,n,ya) h=(b-a)/n;y(1)=ya; for i=1:n x=a+(i-1)*h; y(i+1)=y(i)+h*feval(f,x,y(i)); End
算例3:分别用Euler公式和改进的Euler公式求解:
⎧ y′ = x 2 + x − y, 0 ≤ x ≤ 1 (1) ⎨ 精确解:y = x 2 − x + 1 - e -x y (0) = 0 ⎩
取步长 h = 0.1 ,计算y(0.5)的近似值
解:欧拉公式:
⎧ yi +1 = yi + 0.1( xi2 + xi − yi ) , i = 0, 1,", 9 ⎨ ⎩ y0 = 0
¾ 求解区间离散化 点{x k } ,使 a = x0 < x1 < ... < xn < xn+1 < ... < xN = b
] 将求解区间 [a , b]离散化,是在 [a , b 上插入一系列的分
记 hn = xn+1 − xn ( n = 0,1,..., N − 1)称为步长,一般取hn = h b−a ( n = 0 , 1 , 2 ,..., N ) x = x + nh h = (常数),节点为 n 0 N , a b 称为等步长节点 。
y′( x1 ) ≈
向后差商近似导数
y( x1 ) ≈ y0 + h f ( x1 , y ( x1 ))
y( x1 ) − y( x0 ) h
x0 x1
y n+1 = y n + h f ( xn+1 , yn+1 ) (n = 0 , ... , N −1 )
由于未知数 yn+1 同时出现在等式的两边, 不能直接得到,故称为隐式 /* implicit */ 欧拉公式,而前者称 为显式 /* explicit */ 欧拉公式。 一般先用显式计算一个初值,再迭代求解。即
注:此法亦称为预测-校正法 /* predictor-corrector method */。 可以证明该算法具有 2 阶精度,同时可以看到它是个单 步递推格式,比隐式公式的迭代求解过程简单。后面将 看到,它的稳定性高于显式欧拉法。
9
§1 Euler’s Method
例
作为比较,我们仍用Euler法中的那个例子。 2x ⎧ ′ = − y ⎪y ( 0 < x < 1) y ⎨ ⎪ xn yn ⎩ y(0) = 1 0.1 1.0959 解:改进的Euler公式为 0.2 1.1841 2 xn ⎧ ⎪ y p = yn + h( yn − y ) 0.3 1.2662 n ⎪ 0.4 1.3434 2 xn+1 ⎪ ) ⎨ yc = yn + h( y p − 0.5 1.4164 y p ⎪ 0.6 1.4860 1 ⎪ y n + 1 = ( y p + yc ) 0.7 1.5525 ⎪ 2 ⎩
如果说表格仍不够直观的话,我们用Matlab做出积分曲 线与近似值的图,如下: 5
§1 Euler’s Method
在图上似乎数值解与 曲线的偏差不是很大, 但不要忘记这只是在0到 1范围内的。通过后面用 其他方法解本题,大家 便会发现Euler方法误差 其实是很大的。
Matlab作图显示
y′ = 2( x + 1) ⎧ 例: ⎨ 其精确解为 y=(x+1)2+1 ⎩y(0) = 2 由 y(0)=2 ,过该曲线上一点 (0,2) 作曲线
第五章 常微分方程数值解
/* Numerical Methods for Ordinary Differential Equations */
考虑一阶常微分方程的初值问题 /* Initial-Value Problem */:
⎧ dy ⎪ = f ( x, y) ⎨ dx ⎪ ⎩ y(a ) = y0 x ∈ [a , b ]
h = yn + [ f ( x n, yn) + f ( x n+1 , yn+1 )] 2
( n = 0, ... , N − 1)
h [ f ( xn , yn ) + f ( xn+1 , yn + h f ( xn , yn ))] 2
y p = yn + hf ( x n , yn ) , yc = yn + hf ( x n +1 , y p ) yn+1 1 = ( y p + yc ) 2
改进的Euler公式: ⎧ yi +1 = yi + 0.1( x i2 + x i − yi ) ⎪ 0.1 2 ⎪ 2 = + + − + y y ( x x y x i = 0,1,2, " ,9 ⎨ i +1 i i i i i +1 + xi +1 − yi +1 ) 2 ⎪ y =0 ⎪ ⎩ 0
x0 x1 x2 ... xn-1 xn
2
¾ 将微分方程离散化 将微分方程离散化,通常有下述方法: (1)差商逼近法 即是用适当的差商逼近导数值。 (2)数值积分法 基本思想是先将问题转化为积分方程
y( xm ) − y( xn ) =
∫
xm xn
f ( x , y ( x )) dx
( y ( x0 ) = y0 )
(0) yn + 1 = y n + hf ( x n , y n )
( k +1) (k ) yn = y + hf ( x , y n n+1 n + 1 ) k = 0 ,1 , 2 , " +1
(k ) 如果迭代过程收敛,则某步后 yn+1就可以作为 yn+1,从而进行 下一步的计算。
7
# 梯形公式 /* trapezoid formula */
∫
本章的任务:计算出解函数 y(x) 在一系列节点 a = x0< x1<…< xn= b
yn ≈ y( xn ) ( n = 1, ... , N ) 处的近似值 。
建立常微分方程数值方法的基本思想
) 微分方程数值解法,其实是求出方程的解 y( x在一系 列离散点上的近似值。则微分方程数值解的基本思想 是:求解区间和方程离散化。
14
¾Taylor级数
函数y (x)在展开点x0作Taylor级数展开, x是被展开点。
1 1 (n) 2 y( x) = y( x0 ) + y′( x0 )( x- x0 ) + y′( x0 )( x- x0 ) +"+ y ( x0 )( x- x0 )n +" n! 2!
§1 Euler’s Method
x1
y n + 1 = y n + h f ( x n , y n ) ( n = 0, ... , N − 1)
例. 求初值问题 2x ⎧ ⎪ y′ = y − ( 0 < x < 1) y ⎨ ⎪ ⎩ y(0) = 1 解:本题的Euler公式的具体形式为
yn+1
例如对欧拉法有ϕ ( x n , yn , h) = f ( x n , yn ), 隐式欧拉法有
ϕ 含有 y n + 1时,方法是隐式的, ϕ 不含有 y n + 1时,方法是显式的。
从 x0开始计算,如果考虑每一步产生的误差,直到 x n 则有误差 en = y( x n ) − y n ,称为该方法在 x n 的整体截断误 差,分析和求得整体截断误差是复杂的。为此,我们仅考 虑从 x n 到 x n + 1的局部情况,并假设 x n 之前的计算没有误 差,即 yn = y( x n ) ,下面在给出单步法的局部截断误差概念 前,先给出Taylor展式的概念。
Pn
xn
B
x n +1
# 两步欧拉公式 /* midpoint formula */
中心差商近似导数
y′( x1 ) ≈
y ( x ) ≈ y ( x 0 ) + 2 h f ( x1 , y ( x1 ))
y ( x 2 ) − y ( x0 ) 2h
x0 x1 x2
yn+1 = yn−1 + 2h f ( xn , yn ) n = 1, ... , N − 1
2 xn = yn + h( yn − ) yn
4
§1 Euler’s Method
取步长h=0.1。我们将计算结果与其解析解的精确值一同 y( x n ) 列在下表中,其中 x n 是节点,y n 是节点上的近似值, 是精确值,结果见下表:
xn
yn
y( xn )
xn
yn
y( xn )
0.1 0.2 0.3 0.4 0.5
的切线,其斜率: dy 切线为:
y − 2 = f ( 0, 2 ) ( x − 0 )
6
dx
= f ( 0, 2 )
x=0
由此, 可计算出 y1 , y1 = 2 + f (0, 2)*1 = 4 类似地, 可计算出 y2 , … 故欧拉法又称欧拉折线法。
§1 Euler’s Method
#
隐式欧拉法 /* implicit Euler method */
8
# 改进欧拉法 /* modified Euler’s method */