4实验-微分方程的数值解
微分方程的数值解法
微分方程的数值解法微分方程是描述自然界中众多现象和规律的重要数学工具。
然而,许多微分方程是很难或者无法直接求解的,因此需要使用数值解法来近似求解。
本文将介绍几种常见的微分方程数值解法。
1. 欧拉方法欧拉方法是最简单的数值解法之一。
它将微分方程转化为差分方程,通过计算离散点上的导数来逼近原方程的解。
欧拉方法的基本思想是利用当前点的导数值来估计下一个点的函数值。
具体步骤如下:首先,将自变量区间等分为一系列的小区间。
然后,根据微分方程的初始条件,在起始点确定初始函数值。
接下来,根据导数的定义,计算每个小区间上函数值的斜率。
最后,根据初始函数值和斜率,递推计算得到每个小区间上的函数值。
2. 龙格-库塔方法龙格-库塔方法是一种常用的高阶精度数值解法。
它通过进行多次逼近和修正来提高近似解的准确性。
相比于欧拉方法,龙格-库塔方法在同样的步长下可以获得更精确的解。
具体步骤如下:首先,确定在每个小区间上的步长。
然后,根据微分方程的初始条件,在起始点确定初始函数值。
接下来,根据当前点的导数值,使用权重系数计算多个中间点的函数值。
最后,根据所有中间点的函数值,计算出当前点的函数值。
3. 改进欧拉方法(改进的欧拉-克罗默法)改进欧拉方法是一种中阶精度数值解法,介于欧拉方法和龙格-库塔方法之间。
它通过使用两公式递推来提高精度,并减少计算量。
改进欧拉方法相对于欧拉方法而言,增加了一个估计项,从而减小了局部截断误差。
具体步骤如下:首先,确定在每个小区间上的步长。
然后,根据微分方程的初始条件,在起始点确定初始函数值。
接下来,利用欧拉方法计算出中间点的函数值。
最后,利用中间点的函数值和斜率,计算出当前点的函数值。
总结:微分方程的数值解法为我们研究和解决实际问题提供了有力的工具。
本文介绍了欧拉方法、龙格-库塔方法和改进欧拉方法这几种常见的数值解法。
选择合适的数值解法取决于微分方程的性质以及对解的精确性要求。
在实际应用中,我们应该根据具体情况选择最合适的数值解法,并注意控制步长以尽可能减小误差。
微分方程数值解法实验报告
微分方程数值解法实验报告2篇微分方程数值解法实验报告(一)在实际科学与工程问题中,我们经常会遇到微分方程的求解。
然而,许多微分方程往往没有解析解,这就需要我们利用数值方法来获得近似解。
本篇实验报告将介绍两种常见的微分方程数值解法:欧拉方法和改进的欧拉方法。
一、欧拉方法欧拉方法是最简单的微分方程数值解法之一。
其基本原理为离散化微分方程,将微分方程中的导数用差商代替。
设要求解的微分方程为dy/dx = f(x, y),步长为h,则可用以下公式进行递推计算:y_{n+1} = y_n +hf(x_n, y_n)二、算法实现为了对欧拉方法进行数值实验,我们以一阶线性常微分方程为例:dy/dx = x - y, y(0) = 1步骤如下:(1)选择合适的步长h和求解区间[a, b],这里我们取h=0.1,[a, b] = [0, 1];(2)初始化y_0 = 1;(3)利用欧拉方法递推计算y_{n+1} = y_n + 0.1(x_n - y_n);(4)重复步骤(3),直到x_n = 1。
三、实验结果与讨论我们通过上述步骤得到了在[0, 1]上的近似解y(x)。
下图展示了欧拉方法求解的结果。
从图中可以看出,欧拉方法得到的近似解与精确解有一定的偏差。
这是因为欧拉方法只是通过递推计算得到的近似解,并没有考虑到更高阶的误差。
所以在需要高精度解时,欧拉方法并不理想。
四、改进的欧拉方法针对欧拉方法的不足,我们可以考虑使用改进的欧拉方法(也称为改进的欧拉-柯西方法)。
它是通过利用前后两个步长欧拉方法得到的结果作为差商的中间项,从而提高了求解精度。
一阶线性常微分方程的改进欧拉方法可以表示为:y_{n+1} = y_n + h(f(x_n, y_n) + f(x_{n+1}, y_n + hf(x_n,y_n)))/2五、算法实现与结果展示将改进的欧拉方法应用于前述的一阶线性常微分方程,我们同样选择h=0.1,[a, b] = [0, 1]。
微分方程数值解
本科生实验报告实验课程微分方程数值解学院名称管理科学学院专业名称信息与计算科学学生学生学号指导教师林红霞实验地点6C402实验成绩二〇一五年十月二〇一五年十一月填写说明1、适用于本科生所有的实验报告〔印制实验报告册除外〕;2、专业填写为专业全称,有专业方向的用小括号标明;3、格式要求:①用A4纸双面打印〔封面双面打印〕或在A4大小纸上用蓝黑色水笔书写。
②打印排版:正文用宋体小四号,1.5倍行距,页边距采取默认形式〔上下2.54cm,左右2.54cm,页眉,页脚〕。
字符间距为默认值〔缩放100%,间距:标准〕;页码用小五号字底端居中。
③具体要求:题目〔二号黑体居中〕;摘要〔“摘要”二字用小二号黑体居中,隔行书写摘要的文字部分,小4号宋体〕;关键词〔隔行顶格书写“关键词”三字,提炼3-5个关键词,用分号隔开,小4号黑体);正文部分采用三级标题;第1章××(小二号黑体居中,段前0.5行)1.1 ×××××小三号黑体×××××〔〕小四号黑体〔〕参考文献〔〕,参考文献用五号宋体,参照《参考文献著录规则〔GB/T 7714-2005〕》。
实验一常微分方程初值解法〔一〕1 实验内容分别用Euler法、改良Euler法、Runge-kutta法求解初值问题{u ·=−2∗t∗u2 u(0)=12 实验数据与实验结果1〕实验结果欧拉法的值与真实的值改良欧拉法的值与真实的值4阶Runge-kutta法的值与真实的值欧拉法的值与真实的值改良欧拉法的值与真实的值4阶Runge-kutta法的值与真实的值从上图可以看出,Euler法计算出的结果与其他方法所得结果相对来说精度太低。
4 程序代码清单实验二求解二阶常微分初值问题〔二〕1 实验内容分别用差分法、Jacobi迭代法求解初值问题{−dudx2=sin x 0<x<1u(0)=u(1)=02 实验数据与实验结果〔可用文字描述或贴图的方式进行说明〕1〕实验结果3 程序代码清单〔可直接将可运行源代码粘贴在下面的方框中〕实验三用向前向后差分格式求解〔三〕1 实验内容分别用向前向后格式求解初值问题{ðuðt=ð2uðu2(0≼x≼1,0<t≼1) u(x,0)=e x (0<x<1)u(0,t)=e t,u(1,t)=e1+t (0≼t≼1)2 实验数据与实验结果〔可用文字描述或贴图的方式进行说明〕1〕实验结果向前差分结果:T =Columns 1 through 10Columns 11 through 20Columns 21 through 30Columns 31 through 40Columns 41 through 50Columns 51 through 60Columns 61 through 70Columns 71 through 80Columns 81 through 90Columns 91 through 100Columns 101 through 110Columns 111 through 120Columns 121 through 130Columns 131 through 140Columns 141 through 150Columns 151 through 160Columns 161 through 170Columns 171 through 180Columns 181 through 190Columns 191 through 200Column 201x =Columns 1 through 10Column 11向后差分结果:图3-1 向后差分结果图3-2 向后差分结果4 程序代码清单〔可直接将可运行源代码粘贴在下面的方框中〕实验四显格式求解初值解法〔四〕1 实验内容用显格式求解{utt=uxx (0<x<1,t>0) u(0,t)=u(1,t)=0 (t>0)u(x,0)=sin4πx,ut(x,0)=sin8πx (0<x<1)2 实验数据与实验结果〔可用文字描述或贴图的方式进行说明〕1)实验结果图4-1 (x,u(:,501),'b')图图4-2 (x,u(:,1001),'b')图图4-3 (x,u(:,1501),'b')图4 程序代码清单〔可直接将可运行源代码粘贴在下面的方框中〕。
微分方程数值解实习题
function y=f2(t,u)
y=t^3*u^3-t*u;
%Adams二步外插+Euler方法,例2
n=input('n=');%n等分
T=input('T=');%时间上界
H=input('H=');%第一个小区间H等分
h=T/n;%步长
hh=h/H;%小步长
u=zeros(n+1,1);
Columns 31 through 36
0.1865 0.1910 0.1955 0.2000 0.2043 0.2086
Columns 37 through 42
0.2128 0.2170 0.2211 0.2252 0.2292 0.2331
Columns 43 through 48
0.2370 0.2409 0.2447 0.2484 0.2521 0.2558
for m=1:n-1
u1(m+2)=u1(m+1)+(1/12)*h*(5*f1((m+2)*h,u1(m+2))+8*f1((m+1)*h,u1(m+1))-f1(m*h,u1(m)));
end
uu=zeros(n+1,1);
uu(1)=1;
for m=2:n+1
uu(m)=1/3*exp(m*h)+2/3*exp(-2*m*h);
Columns 57 through 63
0.2872 0.2906 0.2939 0.2972 0.3005 0.3037 0.3070
Columns 64 through 70
0.3102 0.3134 0.3166 0.3198 0.3230 0.3261 0.3293
实验四:求微分方程的解
Euler 折线法
考虑一维经典初值问题
dy dx f ( x , y ) , y ( x 0 ) y0 , x [ a , b ]
基本思想:用差商代替微商
根据 Talyor 公式,y(x) 在点 xk 处有
y ( x ) y ( x k ) ( x x k ) y '( x k ) O ( x )
是一类求解法
用得较多的是 四阶R-K方法(教材第 79 页)
x k 1 x k h y 0 y ( x 0 ), y k 1 y k h ( L1 2 L 2 2 L 3 L 4 )/6
r = dsolve('Dx+5*x=0','Dy-3*y=0', ... 'x(0)=1', 'y(0)=1','t') 这里返回的 r 是一个 结构类型 的数据 r.x r.y %查看解函数 x(t) %查看解函数 y(t)
dsolve的输出个数只能为一个 或 与方程个数相等。
只有很少一部分微分方程(组)能求出解析解。 大部分微分方程(组)只能利用数值方法求数值解。
Euler折线法举例(续)
解析解: y
2 5 3x e 2x 3 3
1/3
解析解
近似解
Runge-Kutta 方法
为了减小误差,可采用以下方法:
让步长 h 取得更小一些; 改用具有较高精度的数值方法:
Runge-Kutta (龙格-库塔) 方法
龙格-库塔方法
dy 2 2 y 2 x 2 x dx y(0) 1
的数值解,求解范
微分方程数值解法实验报告
微分方程数值解法实验报告姓名: 班级: 学号:一:问题描述求解边值问题:()2(sin cos cos sin (0,1)(0,1)0,(,)x y u e x y x y G u x y G ππππππ+⎧⎫∆=+⎪⎪∈=⨯⎨⎬⎪⎪=∈∂⎩⎭(x,y) 其精确解为)sin()sin(),()(y x e y x u y x πππ+=问题一:取步长h=k=1/64,1/128,作五点差分格式,用Jacobi 迭代法,Gauss_Seidel 迭代法,SOR 迭代法(w=1.45)。
求解差分方程,以前后两次重合到小数点后四位的迭代值作为解的近似值,比较三种解法的迭代次数以及差分解)128/1,64/1)(,(=h y x u h 与精确解的精度。
问题二:取步长h=k=1/64,1/128,作五点差分格式,用单参数和双参数PR 法解差分方程,近似到小数点后四位。
与SOR 法比较精度和迭代步数。
问题三:取步长h=k=1/64,1/128,作五点差分格式,用共轭梯度法和预处理共轭梯度法解差分方程,近似到小数点后四位。
与SOR法与PR 法比较精度和迭代步数。
二.实验目的:分别使用五点差分法(Jacobi 迭代,Gauss_Seidel 迭代,SOR迭代),PR 交替隐式差分法(单参数,双参数),共轭梯度法,预共轭梯度法分别求椭圆方程的数值解。
三.实验原理:(1) Jacobi 迭代法设线性方程组(1)的系数矩阵A 可逆且主对角元素均不为零,令 并将A 分解成(2) 从而(1)可写成令其中. (3) 以为迭代矩阵的迭代法(公式)(4)称为雅可比(Jacobi)迭代法(公式),用向量的分量来表示,(4)为(5) 其中为初始向量. (2) Guass-Seidel 迭代法由雅可比迭代公式可知,在迭代的每一步计算过程中是用的全部分量来计算的所有分量,显然在计算第i 个分量时,已经b Ax =nn a ,...,a ,a 2211()nn a ,...,a ,a diag D 2211=()D D A A +-=()b x A D Dx +-=11f x B x +=b D f ,A D I B 1111--=-=1B ()()111f x B x k k +=+⎩⎨⎧[],...,,k ,n ,...,i x a b a x n ij j )k (j j i i ii )k (i 21021111==∑-=≠=+()()()()()Tn x ,...x ,x x 002010=()k x ()1+k x ()1+k i x计算出的最新分量没有被利用,从直观上看,最新计算出的分量可能比旧的分量要好些.因此,对这些最新计算出来的第次近似的分量加以利用,就得到所谓解方程组的高斯—塞德(Gauss-Seidel )迭代法.把矩阵A 分解成(6)其中,分别为的主对角元除外的下三角和上三角部分,于是,方程组(1)便可以写成 即其中(7)以为迭代矩阵构成的迭代法(公式)(8)称为高斯—塞德尔迭代法(公式),用 量表示的形式为(3) SOR 迭代(4) 交替方向迭代法(PR 法)迭代格式为:()()1111+-+k i k x ,...,x 1+k ()1+k x ()1+k j x U L D A --=()nn a ,...,a ,a diag D 2211=U ,L --A ()b Ux x L D +=-22f x B x +=()()b L D f ,U L D B 1212---=-=2B ()()221f x B x k k +=+⎩⎨⎧[],...,,k ,n ,,i x a x a b a x i j n i j )k (j ij )k (j ij i ii )k (i 21021111111==∑∑--=-=+=++Λ))1(()(1D R L D T ωωω-+-=-b )(1--=L D d ωωhu πμωcos )11/(22opt =-+=2121,,1,1,1,,122L L L L u u u L u u u j i j i j i j i j i j i +==+-=+-+-+-对于单参数PR 法,对于多参数,(5) 共轭梯度法 算法步骤如下: [预置步]任意,计算,并令取:指定算法终止常数,置,进入主步;[主步] (1)如果,终止算法,输出;否则下行;(2)计算:(3)计算:(4)置,转入(1).(6) 预共轭梯度法b uL I uL I b u L I uL I k k k k k k k k k k ττττττ+-=++-=++++211122211)()()()(hh optπτsin 22=2sin a ....2,1)11(421k 221h k a h k πρρτ==+-=--其中[预置步]任意,计算,并令取:指定算法终止常数,置,进入主步;[主步](1)计算:,(2)如果,转入(3).否则,终止算法,输出计算结果(3)计算:(4)置,转入(1)注:在算法[主步]中,引入变量,及,可以简化计算。
实验4 常微分方程的数值解法
[内容] 1. 欧拉格式(或改进的欧拉格式),编写 相应的程序并能正确运行。 2. 经典四:先描述清楚问题。
实验4 常微分方程的数值解法 [要求]
1.程序的调试要耐心、细致;
2.语句应尽可能加注注释; 3.本次实验的各个程序(M文件)打包成压缩文件 (格式:学号姓名.RAR,如:200910119李娟.RAR), 按时提交。
实验4 常微分方程的数值解法
[目的]
1.常微分方程差分算法的计算机实现;
2.进一步理解欧拉格式、改进的欧拉格式(预报—
校正系统)、龙格—库塔格式等算法,会运用这些方
法解决初步的常微分方程的求解问题; 3.进一步熟悉MATLAB数学软件的使用,锻炼程序 调试、排错的能力。
实验4 常微分方程的数值解法
求微分方程数值解
求微分方程数值解
微分方程数值解是一种数学方法,用于解决一些复杂的微分方程,特别是那些无法通过解析方法求解的微分方程。
通过数值解法,我们可以得到微分方程的近似解,并且可以在计算机上进行实现,以便更好地理解和分析问题。
我们需要将微分方程转化为差分方程,这样就可以利用数值方法进行求解。
差分方程是一种以离散形式表示微分方程的方法,通过近似替代微分表达式,将连续问题转化为离散问题,从而实现计算机求解。
常见的数值方法包括欧拉方法、龙格-库塔方法等,它们通过不断迭代求解差分方程,逼近微分方程的解。
在应用数值解法求解微分方程时,需要注意选择合适的步长和迭代次数,以确保数值解的准确性和稳定性。
步长过大会导致数值误差增大,步长过小则会增加计算量,影响计算效率。
因此,需要在准确性和效率之间寻找平衡点,选择合适的参数进行计算。
在使用数值解法时,还需要考虑边界条件和初值条件的设定。
这些条件对于微分方程的求解至关重要,不同的条件设定可能会导致不同的数值解,甚至无法得到有效的解。
因此,在进行数值计算之前,需要对问题进行充分的分析和理解,确定合适的条件,以确保数值解的准确性和可靠性。
总的来说,微分方程数值解是一种强大的工具,可以帮助我们解决
复杂的微分方程,探索未知的领域。
通过合理的数值方法和参数选择,我们可以得到准确的数值解,从而更好地理解和应用微分方程的理论。
希望通过不断的探索和实践,我们可以更深入地理解微分方程数值解的原理和方法,为科学研究和工程实践提供更多有益的帮助。
微分方程的常用数值解法
微分方程的常用数值解法摘要:微分方程是数学中的一种重要的方程类型,它能描述自然现象和工程问题中的许多变化规律。
但是大多数微分方程解法是无法用解析的方式求解的,因此需要借助数值解法来近似求解。
本文将介绍微分方程的常用数值解法。
关键词:欧拉方法;龙格-库塔方法;微分方程;常用数值解法一、微分方程数值解方法微分方程数值解法是数学中的重要部分。
欧拉方法、龙格-库塔方法和二阶龙格-库塔方法是常用的微分方程数值解法,下面就分别介绍这三种方法。
(一)欧拉方法欧拉方法是解初值问题的一种简单方法,它是欧拉用的第一种数值方法,也叫向前欧拉法。
欧拉方法是利用微分方程的定义式y’=f(x, y),将它带入微分方程初值问题y(x_0)=y_0中,以y_0为初始解,在每一步上通过沿着切线的方法进行估计并推进新的解y_{i+1}:y_i+1=y_i+hf(x_i,y_i)其中,x_i和y_i是我们知道的初始条件,h是求解过程中的步长,f是微分方程右端项。
它是一种时间迭代的算法,易于实现,但存在着精度不高的缺点。
(二)龙格-库塔方法龙格-库塔方法是一种经典迭代方法,也是近代微分方程数值解法发展的里程碑之一。
龙格-库塔方法的主要思想是利用规定的阶码及阶向量,通过递推求解微分方程数值解的近似值。
龙格-库塔方法的方式不同,其步骤如下:第一步:根据微分方程,计算出在x_i和y_i的值。
第二步:在x_i处对斜率进行估计,并利用这个斜率来求解下一步所需的y_i+1值。
第三步:使用x_i和y_i+1的值来重新估计斜率。
第四步:使用这个新的斜率来更新y_i+1的值。
(三)二阶龙格-库塔方法二阶龙格-库塔方法是龙格-库塔方法的一种变体,它根据龙格-库塔方法的思想,使用更好的步长来提高数值解的精度。
二阶龙格-库塔方法的基本思路是,在第一次迭代时使用一个阶段小一半的y_i+1,然后使用这个估算值来计算接下来的斜率。
通过这种方法,可以提高解的精度。
二阶龙格-库塔方法的步骤如下:第一步:计算出初始阶段的y_i+1值。
微分方程的解析解和数值解
微分方程的解析解和数值解解析解和数值解在微分方程中的应用微分方程是数学中一个重要的分支,它描述了许多自然现象,如物理、化学和生物学等。
微分方程的解析解和数值解是解决微分方程的两种不同方法。
本文将探讨这两种方法的应用。
解析解是指能够用一组公式或函数表达式精确地表示出微分方程的解。
它通常用于简单的微分方程,如一阶线性微分方程和二阶常系数齐次微分方程等。
解析解的优点是计算精度高,但它只能解决某些简单的微分方程,而对于更复杂的非线性微分方程,几乎不可能得到解析解。
数值解是通过数值计算方法得到微分方程的近似解。
它通常用于复杂的非线性微分方程,如偏微分方程和随机微分方程等。
数值解的优点是可以解决各种类型的微分方程,并且计算精度可以通过增加计算量来不断提高。
但是,数值解的计算过程比解析解复杂,需要使用计算机进行计算。
解析解和数值解在微分方程中的应用是相互补充的。
对于简单的微分方程,解析解是最好的选择。
例如,对于一阶线性微分方程y'+ay=b,可以使用分离变量法得到解析解y=b/a+(C/a)e^(-at),其中C是任意常数。
对于二阶常系数齐次微分方程y''+by'+cy=0,可以使用特征方程法得到解析解y=C1e^(r1x)+C2e^(r2x),其中r1和r2是特征方程的根。
对于复杂的非线性微分方程,数值解是最好的选择。
例如,对于一般的非线性微分方程y'=f(x,y),可以使用欧拉法、改进的欧拉法、龙格-库塔法等数值计算方法来获得近似解。
这些方法的基本思想是将微分方程转化为差分方程,然后使用迭代计算的方法逐步得到近似解。
在实际应用中,解析解和数值解常常需要相互配合使用。
例如,在生物学中,通过建立动力学模型可以得到微分方程,然后使用解析解来分析模型的稳定性和动态行为;同时,使用数值解来模拟生物系统的时间演化过程。
在物理学中,通过微分方程描述物理现象的规律,然后使用解析解来推导出物理规律的数学表达式;同时,使用数值解来计算物理过程中的复杂变化。
【清华】实验4-常微分方程数值解(011813)
实验4 常微分方程数值解化学工程系分9班焦阳2009011813 【实验目的】1. 掌握用MATLAB软件求微分方程初值问题数值解的方法;2. 通过实例学习用微分方程模型解决简化的实际问题;3. 了解欧拉方法和龙格-库塔方法的基本思想和计算公式,及稳定性等概念。
【实验内容】1.题目3:小型火箭初始重量为1400kg,其中包括1080kg燃料。
火箭竖直向上发射时燃料燃烧率为18kg/s,由此产生32000N的推力,火箭引擎在燃烧用尽时关闭。
设火箭上升时空气阻力正比于速度的平方,比例系数为0.4kg/m,求引擎关闭瞬间火箭的高度、速度、加速度,及火箭到达最高点时的高度和加速度,并画出高度、速度、加速度随时间变化的图形。
建立模型并进行分析:假设火箭在上升过程中,重力加速度g不随高度而变化,即固定g = 9.8m/s^2。
、(1)从火箭开始上升到引擎关闭:设火箭质量为m,高度为h,速度为v,加速度为a,阻力为f:,,ﭸ由牛顿第二定律可得:总ﭸ综上可得:;ﭸ;初值条件为:,;定义域为:。
根据常微分方程组的初值问题,在MATLAB中计算数值解,记,,, 。
通过解出微分方程的数值解,并进行绘图得到高度-时间曲线,速度-时间曲线,加速度-时间曲线如下:由MA度、速度t(s MATLAB 计算速度、加速度如下t(s) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 计算得到的火箭度如下表:h(m)06.57326.4459.76106.5166.7240.2326.7425.7536.9659.8793.6937.81091.1254.1425.1604.1790.1983.2181.2384.的火箭从开始上h(m) 0 6.5737 26.444 59.762 106.57 166.79 240.27 326.72 425.79 536.99 659.8 793.63 937.85 1091.8 1254.7 1425.9 1604.8 1790.8 1983.1 2181.2 2384.5 开始上升到关闭引v(m/s)0 13.18926.57740.06253.53566.89 80.02192.829105.22117.11128.43139.14149.18158.55167.23175.22182.55189.22195.27200.75205.7 关闭引擎这段时间/s) 189 577 062 535 021 829 .22 .11 .43 .14 .18 .55 .23 .22 .55 .22 .27 .75 段时间内各时刻a(m/s^2)13.0571413.304513.4532813.4971913.4331313.2613112.9853412.6121912.1519511.6169311.0212710.38 9.7083329.0209048.3309057.6502496.9900526.3593395.7646125.2094884.694626各时刻的高^2)71404532871931313153421919569312733290490524905233961248862621 2592.4 210.18 4.22201222 2804.5 214.19 3.79432623 3020.6 217.79 3.41201724 3240.1 221.01 3.07303925 3462.7 223.92 2.7726326 3687.9 226.56 2.50440927 3915.6 228.97 2.26774828 4145.6 231.14 2.06332529 4377.8 233.11 1.88975930 4611.9 234.91 1.74334931 4847.7 236.57 1.6177932 5085 238.14 1.50617933 5323.8 239.61 1.40954434 5564.1 240.99 1.32933135 5805.8 242.28 1.2650336 6048.7 243.5 1.21393737 6292.9 244.68 1.17083938 6538.1 245.83 1.1302639 6784.5 246.96 1.09469840 7032 248.05 1.06634841 7280.5 249.1 1.04558942 7530.2 250.12 1.03075943 7780.9 251.14 1.01781844 8032.5 252.15 1.00237545 8285.1 253.16 0.98756846 8538.8 254.15 0.97632347 8793.4 255.12 0.96963948 9049 256.07 0.96629149 9305.6 257.03 0.96239250 9563.1 257.99 0.95272351 9821.5 258.95 0.9411852 10081 259.9 0.93372753 10341 260.83 0.93277654 10603 261.75 0.93633455 10865 262.67 0.9369556 11128 263.61 0.92584757 11392 264.54 0.91379358 11657 265.46 0.91062859 11923 266.35 0.9161260 12190 267.26 0.917011根据表格可以很容易得到:关闭引擎的瞬间,h=12190m,v=267.26m/s,a=0.917011m/s^2。
微分方程数值解
微分方程数值解
常微分方程求解 dx/dt=rx(1-x/k) 1. 求表达式(符号运算) >>S=dsolve(‘Dx=r*x*(1-x/k)’,’x(0)=0.01’) %转变为函数值 >>r=0.3;k=8; >> s=subs(S) >>t=0:40; ss=subs(s,’t’,t); >>plot(t,ss),grid
微分方程反问题---确定方程中的参数
1 美国人口数据: 1790 1800 1810 1820 1830 1840 1850 3.9 5.3 7.2 9.6 12.9 17.1 23.2 1860 1870 1880 1890 1900 1910 1920 31.4 38.6 50.2 62.9 76.0 92.0 106.5 1930 1940 1950 1960 1970 1980 1990 2000 123 132 151 179 204 227 251 281 拟合微分方程: Dy/dx=ry 的解y=y(0)*exp(r*x) dy/dx=ry(1-y/k) 的解 y=k/[1+(k/y(1790)-1)*exp(-r*(x-1790))]
先拟合线性模型 (yn+1-yn)/yn=r-m*yn 得到r和k=r/m的近似值,以此近似值为初 值拟合非线性解函数 y=k/[1+(k/பைடு நூலகம்(1790)-1)*exp(-r*(x-1790))]
求表达式(符号运算)
>>S=dsolve(‘Dx=(3-6*x)/(2000+2*t)’,x(0)=0.001’) >>s1=subs(S,’t’,160) >>t=1:200; s=subs(S,’t’,t); plot(t,s),grid
常微分方程的数值解法实验报告
常微分方程的数值解法实验报告实验报告:常微分方程的数值解法摘要:常微分方程(ODE)是描述动力学系统中物理量随时间变化的数学方程,广泛应用于自然科学和工程领域。
然而,对于一些复杂的非线性ODE,很难找到解析解。
因此,我们需要数值解法来求解这些方程。
本实验报告将介绍四种常见的常微分方程数值解法,分别是欧拉法、改进的欧拉法、四阶龙格-库塔法和自适应步长的龙格-库塔法,并通过数值实验比较它们的精度和效率。
1.引言在实际问题中,许多物理量的变化规律可以由常微分方程描述。
然而,对于复杂的非线性ODE,很难找到解析解。
因此,为了解决这类问题,我们需要借助数值方法来求解。
2.方法本实验采用四种常见的常微分方程数值解法:欧拉法、改进的欧拉法、四阶龙格-库塔法和自适应步长的龙格-库塔法。
(1)欧拉法是最简单的数值解法,通过将微分方程转化为差分方程,使用离散的步长来近似微分方程。
(2)改进的欧拉法在欧拉法的基础上进行了改进,使用预估-校正的方法来提高精度。
(3)四阶龙格-库塔法是一种经典的数值解法,通过利用不同步长处的斜率来近似微分方程,具有较高的精度。
(4)自适应步长的龙格-库塔法是在四阶龙格-库塔法的基础上改进而来的,根据步长的大小自适应地选择不同的步长,同时保证精度和效率。
3.实验设计为了比较这四种数值解法的精度和效率,我们设计了两个实验。
实验一是求解一阶常微分方程:dy/dx = -2x,初始条件y(0) = 1,解析解为y = 1 - x^2、实验二是求解二阶常微分方程:d^2y/dx^2 + y = 0,初始条件y(0) = 0,dy/dx(0) = 1,解析解为y = sin(x)。
4.结果与分析实验一中,比较四种数值解法在不同步长下的近似解和解析解,计算其误差。
实验结果表明,四阶龙格-库塔法和自适应步长的龙格-库塔法具有较高的精度,而欧拉法和改进的欧拉法的精度较低。
实验二中,我们比较四种数值解法在不同步长下的近似解和解析解,并计算其误差。
微分方程的数值解法
微分方程的数值解法微分方程是数学中的一种重要的基础理论,广泛用于科学技术的研究中。
微分方程的解析解往往比较难求得,而数值解法则成为了解决微分方程的重要手段之一。
本文将阐述微分方程的数值解法,探讨一些经典的数值方法及其应用。
一、数值解法的基本思想微分方程的数值解法的基本思想是建立微分方程的差分方程,然后通过数值计算的方法求得差分方程的近似解,最终得到微分方程的数值解。
其中,差分方程是微分方程的离散化,将微分方程转化为差分方程的过程称为离散化或网格化。
离散化的目的是将连续问题转化为离散问题,使问题求解更为方便。
差分方程的计算通常需要将区间分成若干份,每一份都对应着一个节点,节点的个数与区间长度有关。
在每个节点处采集函数值,根据这些函数值计算出差分方程的值,再根据差分方程的迭代公式计算出每个节点的函数值。
因此差分方程的求解问题就转化成了求解节点函数值的问题。
二、欧拉法欧拉法是微分方程数值解法中最简单的一种方法,广泛应用于各种领域。
欧拉法的基本思想是运用泰勒公式,将函数在某一点展开成一次多项式,用两个相邻节点之间的差分来逼近导数的值,从而得到连续问题的离散解。
具体实现过程如下:1. 将微分方程的初始值问题区间[a,a]分成若干个小区间,每个小区间长度为a,共有a个节点,其中节点序列为a0,a1,a2,⋯,aa,节点之间的间隔为a。
2. 根据微分方程的迭代公式得到差分方程,即令aa+1=aa+aa(aa,aa)3. 按照差分方程的迭代公式,从初始值a0开始,逐一计算得到函数值,a1,a2,⋯,aa。
欧拉法的精度比较低,误差常常会较大,但是它运算速度快,实现简单,计算量小,因此在计算简单模型时常常使用。
三、龙格-库塔法龙格-库塔法是微分方程数值解法中精度最高的一种方法,具有比欧拉法更精确、更稳定的特点,广泛应用于各种实际问题中。
龙格-库塔法的主要思想是用多阶段逼近法估算每一步的函数值,从而提高时间的精度。
具体实现过程如下:1. 将微分方程的初始值问题区间[a,a]分成若干个小区间,每个小区间长度为a,共有a个节点,其中节点序列为a0,a1,a2,⋯,aa,节点之间的间隔为a。
微分方程数值解法
微分方程数值解法微分方程数值解法是一种将微分方程的解转化为数值计算的方法。
常用的微分方程数值解法包括欧拉法、隐式欧拉法、龙格-库塔法等。
1. 欧拉法:欧拉法是最简单的一种数值解法,它基于微分方程的定义,在给定的初始条件下,通过不断迭代计算微分方程在给定区间上的近似解。
欧拉法的迭代公式为:y_{n+1}=y_n+h\\cdot f(t_n,y_n),其中y_n表示第n步的近似解,t_n表示第n步的时间,h表示步长,f(t_n,y_n)表示微分方程的右侧函数。
2. 隐式欧拉法:隐式欧拉法是欧拉法的改进,它在计算近似解时使用了未知公式的近似值,从而提高了精度。
隐式欧拉法的迭代公式为:y_{n+1}=y_n+h\\cdotf(t_{n+1},y_{n+1}),其中y_{n+1}表示第n+1步的近似解,t_{n+1}表示第n+1步的时间,h表示步长,f(t_{n+1},y_{n+1})表示微分方程的右侧函数。
3. 龙格-库塔法:龙格-库塔法是一种常用的高阶数值解法,它通过计算微分方程的斜率来提高精度。
最常见的是四阶龙格-库塔法,它的迭代公式为:y_{n+1}=y_n+\\frac{1}{6}(k_1+2k_2+2k_3+k_4),其中k_1=h\\cdot f(t_n,y_n),k_2=h\\cdotf(t_n+\\frac{h}{2},y_n+\\frac{1}{2}k_1),k_3=h\\cdotf(t_n+\\frac{h}{2},y_n+\\frac{1}{2}k_2),k_4=h\\cdotf(t_n+h,y_n+k_3)。
这些方法的选择取决于问题的性质和精度要求。
其中,欧拉法是最简单的方法,但精度较低,龙格-库塔法精度较高,但计算量较大。
在实际应用中需要根据问题的具体情况选择合适的数值解法。
微分方程数值解实验报告
微分方程数值解法课程设计报告班级:姓名:学号:成绩:2017年 6月 21 日摘要自然界与工程技术中的很多现象,可以归结为微分方程定解问题。
其中,常微分方程求解是微分方程的重要基础内容。
但是,对于许多的微分方程,往往很难得到甚至不存在精确的解析表达式,这时候,数值解提供了一个很好的解决思路。
,针对于此,本文对常微分方程数值解法进行了简单研究,主要讨论了一些常用的数值解法,如欧拉法、改进的欧拉法、Runge—Kutta方法、Adams法以及椭圆型方程、抛物型方程的有限差分方法等,通过具体的算例,结合MATLAB求解画图,初步给出了一般常微分方程数值解法的求解过程。
同时,通过对各种方法的误差分析,让大家对各种方法的特点和适用范围有一个直观的感受。
关键词:微分方程数值解、MATLAB目录摘要 (2)目录 (3)第一章常微分方程数值解法的基本思想与原理 (4)1.1常微分方程数值解法的基本思路 (4)1.2用matlab编写源程序 (4)1.3常微分方程数值解法应用举例及结果 (5)第二章常系数扩散方程的经典差分格式的基本思想与原理 (6)2.1常系数扩散方程的经典差分格式的基本思路 (6)2.2 用matlab编写源程序 (7)2.3常系数扩散方程的经典差分格式的应用举例及结果 (8)第三章椭圆型方程的五点差分格式的基本思想与原理 (10)3.1椭圆型方程的五点差分格式的基本思路 (10)3.2 用matlab编写源程序 (10)3.3椭圆型方程的五点差分格式的应用举例及结果 (12)第四章总结 (12)参考文献 (12)第一章常微分方程数值解法的基本思想与原理1.1常微分方程数值解法的基本思路常微分方程数值解法(numerical methods forordinary differential equations)计算数学的一个分支.是解常微分方程各类定解问题的数值方法.现有的解析方法只能用于求解一些特殊类型的定解问题,实用上许多很有价值的常微分方程的解不能用初等函数来表示,常常需要求其数值解.所谓数值解,是指在求解区间内一系列离散点处给出真解的近似值.这就促成了数值方法的产生与发展.1.2用matlab编写源程序龙格库塔法:M文件:function dx=Lorenz(t,x)%r=28,sigma=10,b=8/3dx=[-10*(x(1)-x(2));-x(1)*x(3)+28*x(1)-x(2);x(1)*x(2)-8*x(3)/3];运行程序:x0=[1,1,1];[t,y]=ode45('Lorenz',[0,100],x0);subplot(2,1,1) %两行一列的图第一个plot(t,y(:,3))xlabel('time');ylabel('z');%画z-t图像subplot(2,2,3) %两行两列的图第三个plot(y(:,1),y(:,2))xlabel('x');ylabel('y'); %画x-y图像subplot(2,2,4)plot3(y(:,1),y(:,2),y(:,3))xlabel('x');ylabel('y');zlabel('z');%画xyz图像欧拉法:h=0.010;a=16;b=4;c=49.52;x=5;y=10;z=10;Y=[];for i=1:800x1=x+h*a*(y-x);y1=y+h*(c*x-x*z-y);z1=z+h*(x*y-b*z);x=x1;y=y1;z=z1;Y(i,:)=[x y z];endplot3(Y(:,1),Y(:,2),Y(:,3));1.3常微分方程数值解法的应用举例及结果应用举例:⎪⎪⎪⎩⎪⎪⎪⎨⎧-=--=--=)()()()()()()()()())()(()(t bz t y t x dt t dz t z t x t y t rx dt t dy t y t x a dt t dx a=10,b=8/3,0<r<+∞,当1<r<24.74时,Lorenz 方程有两个稳定的不动点c()1(-r b ,)1(-r b ,r-1)和c '(-)1(-r b ,-)1(-r b ,r-1),一个稳定的不动点0=(0,0,0),当r>24.74时,c 和c '都变成不稳定的,此时存在混沌和奇怪吸引子。
数值分析的实验报告
数值分析的实验报告数值分析的实验报告导言数值分析是一门研究数值计算方法和数值计算误差的学科,它在科学计算、工程技术和社会经济等领域具有广泛的应用。
本实验旨在通过对数值分析方法的实际应用,验证其有效性和可靠性。
实验一:方程求根方程求根是数值分析中的基础问题之一。
我们选取了一个非线性方程进行求解。
首先,我们使用二分法进行求解。
通过多次迭代,我们得到了方程的一个近似解。
然后,我们使用牛顿法进行求解。
与二分法相比,牛顿法的收敛速度更快,但需要选择一个初始点。
通过比较两种方法的结果,我们验证了牛顿法的高效性。
实验二:插值与拟合插值与拟合是数值分析中常用的数据处理方法。
我们选取了一组实验数据,通过拉格朗日插值法和最小二乘法进行插值和拟合。
通过对比两种方法的拟合效果,我们验证了最小二乘法在处理含有噪声数据时的优势。
同时,我们还讨论了插值和拟合的精度与样本点数量之间的关系。
实验三:数值积分数值积分是数值分析中的重要内容之一。
我们选取了一个定积分进行计算。
首先,我们使用复化梯形公式进行积分计算。
通过增加分割区间的数量,我们得到了更精确的结果。
然后,我们使用复化辛普森公式进行积分计算。
与复化梯形公式相比,复化辛普森公式具有更高的精度。
通过比较两种方法的结果,我们验证了复化辛普森公式的优越性。
实验四:常微分方程数值解常微分方程数值解是数值分析中的重要应用之一。
我们选取了一个常微分方程进行数值解的计算。
首先,我们使用欧拉方法进行数值解的计算。
然后,我们使用改进的欧拉方法进行数值解的计算。
通过比较两种方法的结果,我们验证了改进的欧拉方法的更高精度和更好的稳定性。
实验五:线性方程组的数值解法线性方程组的数值解法是数值分析中的重要内容之一。
我们选取了一个线性方程组进行数值解的计算。
首先,我们使用高斯消元法进行数值解的计算。
然后,我们使用追赶法进行数值解的计算。
通过比较两种方法的结果,我们验证了追赶法在求解三对角线性方程组时的高效性。