实验七 常微分方程
常微分方程实验报告
常微分方程实验报告一、实验目的常微分方程是数学分析和实际应用中非常重要的一部分,本次实验的主要目的是通过实际操作和计算,深入理解常微分方程的概念、性质和求解方法,并能够将其应用到实际问题中,提高我们解决数学问题和实际应用问题的能力。
二、实验原理常微分方程是指含有一个自变量和一个未知函数及其导数的等式。
求解常微分方程的方法有很多,常见的有变量分离法、一阶线性方程的求解方法(如常数变易法)、恰当方程的求解方法(通过积分因子)等。
对于一阶常微分方程,形如\(y' + p(x)y = q(x)\)的方程,可以使用积分因子\(e^{\int p(x)dx}\)来求解。
对于可分离变量的方程,形如\(g(y)dy = f(x)dx\),可以通过分别积分求解。
三、实验内容(一)一阶常微分方程的求解1、求解方程\(y' + 2xy = 2x\)首先,计算积分因子\(e^{\int 2xdx} = e^{x^2}\),然后将方程两边乘以积分因子得到:\((ye^{x^2})'= 2xe^{x^2}\)两边积分可得\(ye^{x^2} = e^{x^2} + C\),解得\(y =1 + Ce^{x^2}\)2、求解方程\(xy' y = x^2\)将方程化为\(y' \frac{y}{x} = x\),这里\(p(x) =\frac{1}{x}\),积分因子为\(e^{\int \frac{1}{x}dx} =\frac{1}{x}\)。
方程两边乘以积分因子得到\((\frac{y}{x})'= 1\),积分可得\(\frac{y}{x} = x + C\),即\(y = x^2 + Cx\)(二)二阶常微分方程的求解1、求解方程\(y'' 2y' + y = 0\)特征方程为\(r^2 2r + 1 = 0\),解得\(r = 1\)(二重根),所以通解为\(y =(C_1 + C_2x)e^x\)2、求解方程\(y''+ 4y = 0\)特征方程为\(r^2 + 4 = 0\),解得\(r =\pm 2i\),所以通解为\(y = C_1\cos(2x) + C_2\sin(2x)\)(三)应用常微分方程解决实际问题1、考虑一个物体在受到与速度成正比的阻力作用下的运动,其运动方程为\(m\frac{dv}{dt} = kv\)(其中\(m\)为物体质量,\(k\)为阻力系数),求解速度\(v\)随时间\(t\)的变化。
实验七 用Python解常微分方程
实验七用Python解常微分方程摘要本实验使用Python编程语言解决常微分方程(Ordinary Differential Equations, ODEs)问题。
常微分方程是描述自然界的变化和动态过程的数学工具,具有广泛的应用价值。
Python拥有强大的数值计算和绘图功能,因此是解决常微分方程问题的理想工具。
本实验将介绍常见的ODE求解方法,并给出相应的Python代码示例。
引言常微分方程描述了函数及其导数之间的关系,可以用来解决一系列实际问题,如物理、工程、经济等各个领域。
通过数值方法求解ODE,可以得到函数的近似解,从而对实际问题进行定性和定量分析。
ODE的数值解法常见的ODE求解方法包括欧拉法、改进欧拉法、龙格-库塔法等。
这些方法基于数值逼近的原理,通过迭代计算逼近函数的解。
以下是这些方法的简要介绍:1. 欧拉法(Euler's method):将函数的导数展开为差商的形式,利用差商逼近导数,从而得到函数的近似解。
2. 改进欧拉法(Improved Euler's method):在欧拉法的基础上引入中间点的逼近,进一步提高近似解的准确性。
3. 龙格-库塔法(Runge-Kutta method):通过计算不同权重的斜率加权平均来逼近函数的导数,并利用逼近的导数进行迭代计算。
使用Python解常微分方程的示例代码以下是使用Python解常微分方程的示例代码,具体说明见代码注释:import numpy as npimport matplotlib.pyplot as plt定义常微分方程的函数形式def ode_func(t, y):return -y + np.sin(t)欧拉法求解常微分方程def euler_method(ode_func, t_start, t_end, y_init, step_size): num_steps = int((t_end - t_start) / step_size) + 1t = np.linspace(t_start, t_end, num_steps)y = np.zeros(num_steps)y[0] = y_initfor i in range(1, num_steps):y[i] = y[i-1] + step_size * ode_func(t[i-1], y[i-1])return t, y解常微分方程并绘制结果t_start, t_end = 0, 10y_init = 0step_size = 0.1t, y = euler_method(ode_func, t_start, t_end, y_init, step_size)plt.plot(t, y)plt.xlabel('t')plt.ylabel('y')plt.title('Solution of ODE using Euler\'s method')plt.grid(True)plt.show()结论本实验介绍了用Python解常微分方程的基本方法和示例代码,涉及了欧拉法。
第七章 常微分方程习题课
7
x3
2
Cx3 .
7
20
例3 求 dy dx
x
y y2 cos
的通解 y
解:将原方程写成
dx 1 x y cos y dy y
x
e
1 y
dy
(
y cos
y
)e
1 y
dy
dy
C
y
(
y
cos
y)
1 y
dy
C
y(C sin y)
21
例4
求通解
2x
y2 3x2
dx
dy 0.
y3
y4
3
2、一阶微分方程的解法
(1) 可分离变量的微分方程
形如 g( y)dy f ( x)dx
解法 g( y)dy f ( x)dx
分离变量法
(2) 齐次方程 形如 dy f ( y) dx x
解法 作变量代换 u y x
4
(3) 可化为齐次的方程
形如 dy f ( ax by c )
通解:y Y y*
求特解的方法 待定系数法
(1) f ( x) ex Pm ( x) 型
0 不是根
设特解 y* xkexQm (x) k 1 是单根 ,
2 是重根
15
(2)
f
(
x)
ex
[
Pl
(1)
(
x)
cos
x
P(2) n
(
x)
sin
x]
型
设特解
y*
xkex[Rm(1) (x) cosx
由
2 解得
4b 0,
a 1,
8 b 0,
常微分方程的求解及其应用
常微分方程的求解及其应用常微分方程是微积分中十分重要的一个分支。
通过解决微分方程,我们可以得到模型在不同情况下的变化,进而为实际问题的解决提供了关键性所在。
本文将介绍常微分方程的求解及其应用。
一、常微分方程的基础知识在介绍常微分方程的求解之前,我们先来了解一些常微分方程的基础知识。
常微分方程是指只有一个自变量的微分方程,即形如:$$\frac{dy}{dx}=f(x,y)$$其中y是自变量,x是因变量,f(x,y)是一个已知函数。
上述方程也可以写成以下形式:$$y'=f(x,y)$$其中y'表示y对x的导数。
二、常微分方程的求解方法1.可分离变量法可分离变量法是常微分方程最常用的求解方法。
该方法的主要思想是将变量y和x分离,即将f(x,y)拆分为g(x)h(y),使得原方程可写成以下形式:$$\frac{dy}{dx}=g(x)h(y)$$然后将上式两边分别积分即可。
以求解一阶线性微分方程为例,其形式为:$$y'+p(x)y=q(x)$$首先,将右式中的q(x)移到左边,得到:$$y'+p(x)y-q(x)=0$$然后,应用一个分离变量法的思想,令p(x)=P'(x),即可将该方程写成:$$\frac{dy}{dx}+P(x)y=Q(x)$$然后,我们使用降阶的方法将该一阶方程转换为首阶方程。
具体来说,将y分离出来,得到:$$\frac{dy}{dx}=-P(x)y+Q(x)$$我们令u(x)=e^{\int P(x)dx},则上式可以写成:$$u(x)\frac{dy}{dx}-u(x)P(x)y=u(x)Q(x)$$将上式两边同时积分,得到:$$u(x)y=\int u(x)Q(x)dx+C$$其中C为常数,e^{\int P(x)dx}也可以写成常数K。
这样,我们就求解出了一阶线性微分方程。
2.参数化方法参数化方法是常微分方程的另一种常见求解方法。
该方法的核心是寻找一条曲线,使得函数y(x)可以表示为该曲线上某点的函数。
常微分方程的求解与定性分析实验报告
常微分方程的求解与定性分析实验报告Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998常微分方程的求解与定性分析实验报告一、实验综述1、实验目的及要求●归纳和学习求解常微分方程(组)的基本原理和方法;●掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析;●熟悉MATLAB软件关于微分方程求解的各种命令;●通过范例学习建立微分方程方面的数学模型以及求解全过程;●通过该实验的学习,使学生掌握微分方程(组)求解方法(解析法、欧拉法、梯度法、改进欧拉法等),对常微分方程的数值解法有一个初步了解,同时学会使用MATLAB软件求解微分方程的基本命令,学会建立微分方程方面的数学模型。
这对于学生深入理解微分、积分的数学概念,掌握数学的分析思维方法,熟悉处理大量的工程计算问题的方法是十分必要的。
2、实验仪器、设备或软件电脑、二、实验过程(实验步骤、记录、数据、分析)实验内容:根据实验内容和步骤,完成以下实验,要求写出实验报告(实验目的→问题→数学模型→算法与编程→计算结果→分析、检验和结论)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 – 21.求微分方程⎪⎩⎪⎨⎧====-+]100[0)0(;0)0(01.03t uu u u u 的数值解,要求编写求解程序。
function dy=vdp1000(t,y)dy=zeros(2,1);dy(1)=y(2);dy(2)=-y(1)+*y(1)^3;[T,Y]=ode15s('vdp1000',[0 10],[0 0]);plot(T,Y(:,1),'-')3.Rossler 微分方程组:当固定参数b =2,c =4时,试讨论随参数a 由小到大变化(如 a ∈(0,)而方程解的变化情况,并且画出空间曲线图形,观察空间曲线是否形成混沌状function r=rossler(t,x)global a;global b;global c;r=[-x(2)-x(3);x(1)+a*x(2);b+x(3)*(x(1)-c)];global a;global b;global c;b=2;c=4;t0=[0,200];for a=0::[t,x]=ode45('rossler',t0,[0,0,0]);subplot(1,2,1);plot(t,x(:,1),'r',t,x(:,2),'g',t,x(:,3),'b');title('x(红色),y(绿色),z(蓝色)随t 的变化情况');xlabel('t');subplot(1,2,2);plot3(x(:,1),x(:,2),x(:,3))title('相图');xlabel('x');ylabel('y');zlabel('z');pauseend结果显示:a=0:a=:a=:a=:a=:a=:结果分析:从图像可以看出,当a=0时,微分方程的解(x,y,z)收敛与(0,,);当a=时,(x,y,z)仍收敛与(0,,),只是收敛速度减慢;当a=时,(x,y,z)已发散,周期性变化;随着a的增大,(x,y,z)接近其极限环的速度加快,空间曲线成混沌状。
常微分方程解析解
常微分方程解析解常微分方程是数学中的一个重要分支,广泛应用于物理、工程、经济等领域。
对于一个常微分方程,寻找它的解析解是我们研究和解决问题的关键。
本文将介绍常微分方程解析解的概念、求解方法和应用,以帮助读者更好地理解和应用常微分方程。
一、概念在常微分方程中,解析解指的是通过代数或初等函数表示的解。
与解析解相对的是数值解,数值解是通过数值计算方法得到的近似解。
解析解具有精确性和完整性,可以给出问题的全面解答和直观理解。
因此,寻找常微分方程的解析解是研究和应用的首要任务。
二、求解方法常微分方程的求解方法主要包括分离变量法、齐次方程法、一阶线性方程法等。
下面简要介绍这几种方法。
1. 分离变量法对于形如dy/dx = f(x)g(y)的一阶常微分方程,可以将变量分离,即将方程移项,然后两边同时积分,得到解析解y = F(x)。
2. 齐次方程法对于形如dy/dx = f(y)/g(x)的一阶常微分方程,可以通过引入新的变量转化成齐次方程。
如果f(y)和g(x)满足一定的条件,可以通过变量代换和分离变量法得到解析解。
3. 一阶线性方程法对于形如dy/dx + p(x)y = q(x)的一阶常微分方程,可以通过引入积分因子的方法将其转化成线性方程。
然后可以通过分离变量和积分得到解析解。
三、应用常微分方程的解析解在各个领域有着广泛的应用。
下面以物理和工程领域为例进行介绍。
1. 物理应用物理学中的许多现象和规律都可以通过常微分方程来描述,而解析解则可以给出这些现象和规律的精确解答。
比如经典力学中的运动方程、电磁学中的麦克斯韦方程等均可以通过常微分方程的解析解进行研究和应用。
2. 工程应用工程领域中的许多问题也可以建模成常微分方程,通过求解其解析解可以为工程设计和优化提供指导。
比如在电路设计中,通过求解电路中的微分方程可以得到电流和电压的解析解,从而分析电路中的性能和特性。
四、总结常微分方程解析解是研究和应用的重要工具,通过解析解可以给出问题的全面解答和直观理解。
实验报告七 常微分方程初值问题的数值解法,DOC
浙江大学城市学院实验报告 课程名称数值计算方法实验项目名称常微分方程初值问题的数值解法实验成绩指导老师(签名)日期2015/12/1612Euler 法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=画出解的图形,与精确值比较并进行分析。
12312求微分方程的解析解及其数值的代入dsolve(‘egn1’,‘egn2’,‘x’)subs(expr,{x,y,…},{x1,y1,…})其中‘egn i’表示第i个方程,‘x’表示微分方程中的自变量,默认时自变量为t。
subs命令中的expr、x、y为符合型表达式,x、y分别用数值x1、x2代入。
>>symsxyz>>subs('x+y+z',{x,y,z},{1,2,3})ans=6>>symsx>>subs('x^2',x,2)ans=⏹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 用于设定误差限(可以缺省,缺省时设定为相对误差310-,绝对误差610-),程序为:options=odeset(‘reltol ’,rt,’abstol ’,at),这里rt,at 分别为设定的相对误差和绝对误差。
实验七 用Maple解常微分方程
实验七用Maple解常微分方程1. 实验目的本实验旨在通过使用数学建模软件Maple来解常微分方程,加深对常微分方程解法的认识和理解。
通过实际操作和观察结果,提高对Maple软件的运用能力。
2. 实验原理常微分方程是描述物理、化学、工程等领域中的连续变化过程的常见数学工具。
解常微分方程可以帮助我们理解系统的演化规律,从而进行预测和控制。
Maple是一款强大的数学软件,其中包含了丰富的求解常微分方程的函数。
通过输入常微分方程的表达式,Maple可以直接给出解析解或数值解。
在本实验中,我们将使用Maple来解常微分方程。
3. 实验步骤3.1 安装Maple软件3.2 打开Maple软件双击桌面上的Maple图标,打开软件。
3.3 输入常微分方程点击菜单栏中的"输入",选择"数学输入",在弹出的对话框中输入常微分方程的表达式。
例如,我们要解的方程是一阶线性常微分方程`dy/dx + y = 0`,则输入表达式为:diff(y(x),x) + y(x) = 03.4 求解方程点击菜单栏中的"执行",选择"执行工作表",Maple将根据输入的方程进行求解。
3.5 查看解析解或数值解Maple会给出方程的解析解或数值解。
根据实验需求,可以选择相应的解进行查看和分析。
3.6 导出结果点击菜单栏中的"文件",选择"导出为",选择导出格式和保存路径,点击"保存",将结果导出为文档或图像文件。
4. 实验结果根据实验中输入的常微分方程,Maple求解得到如下解析解:y(x) = C exp(-x)其中C为任意常数。
5. 实验总结通过本次实验,我们研究了使用Maple软件求解常微分方程的方法。
Maple的强大功能和简便操作使得解常微分方程变得更加容易。
通过实际操作,我们可以深入理解常微分方程的解法和物理意义。
常微分方程上机实验报告
实验名称
常微分方程初值问题的数值解法
实验时间
2012年3月13日
姓名
XXX
班级
XXX
学号
XXX
成绩
一、实验目的及内容
1.MATLAB基本操作:矩阵相乘、矩阵LU分解及矩阵分解为另一个矩阵和其转置相乘、解矛盾方程、符号求解微分方程。
2.MATLAB数据调用及绘图。
二、相关背景知识介绍
(4)符号求解微分方程,求 。
2.MATLAB数据调用及绘图:
三.代码
1.(1)A=[3 4;5 6]
B=[0 8;1 6]
A*B
(2)A=[2 3;4 5]
[L U]=lu(A)
B=Chol(A)
(3)A=[2 8;3 4]
b=[6;2]
X=A\b
(4)dsolve('Dy=x','x')
2.
dsolve('Dy=x','y(0)=0','x')
1.MATLAB基本操作:矩阵Fra bibliotek乘、矩阵LU分解及矩阵分解为另一个矩阵和其转置相乘、解矛盾方程、符号求解微分方程。
(1)矩阵相乘:A=[3 4;5 6] B=[0 8;1 6],求A*B。
(2)矩阵分解:A=[2 3;4 5],求[L U]=lu(A)、B=Chol(A)。
(3)解方程:A=[2 8;3 4] b=[6;2],求X=A\b。
ans =
-x-1+exp(x)*C1
>> dsolve('Dy=x','x')
ans =
1/2*x^2+C1
常微分方程
●凡表示未知函数、未知函数的导数与自变量之间的关系的方程,叫做微分方程。
●未知函数是一元函数的,叫做常微分方程。
未知函数是多元函数的,叫做偏微分方程。
●微分方程中所出现的未知函数的最高阶导数的阶数,叫做微分方程的阶。
●在研究某些实际问题时,首先要建立微分方程,然后找出满足微分方程的函数(解微分方程),就是说,找出这样的函数,把这函数代入微分方程能使该方程成为恒等式。
这个函数就叫该微分方程的解。
●如果微分方程的解中含有任意常数,且任意常数的个数与微分方程的阶数相同,这样的解叫做微分方程的通解。
●设微分方程中的未知函数为y=y(x),如果微分方程是一阶的,通常用来确定任意常数的条件是x=x0时,y=y0,或写成y|x=x0=y0,其中x0,y0都是给定的值;如果微分方程是二阶的,通常用来确定任意常数的条件是:x=x0时,y=y0,y′=y0′,或写成y|x=x0=y0,y′|x=x0=y0′,其中x0,y0和y0′都是给定的值,上述这种条件叫做初始条件。
●确定了通解中的任意常数以后,就得到微分方程的特解。
●求微分方程y′=f(x,y)满足初始条件y|x=x0=y0的特解这样一个问题,叫做一阶微分方程的初值问题,记作{y′=f(x,y);y|x=x0=y0}●可分离变量方程。
一阶可分离变量方程:dy/dx=f(x)/g(y),可分离变量为:∫g(y)dy=∫f(x)dx,设g(y)、f(x)的原函数分别为G(y)、F(x),则可解出方程的通解:G(y)=F(x)+C。
●例:求微分方程dy/dx=2xy的通解。
解:方程是可分离变量的,分离变量后得dy/y=2xdx,两端积分∫dy/y=∫2xdx,得ln|y|=x2+C1,从而y=±e C1e x2。
因±e C1仍是任意常数,把它记作C,便得方程的通解y=Ce x2。
●齐次方程。
如果一阶微分方程dy/dx=f(x,y)中的函数f(x,y)可写成y/x的函数,即f(x,y)=φ(y/x),则称这方程为齐次方程。
常微分方程实验报告_闵安游_U201310085
⑵、3 步 4 阶 Adams 方法: ①、画图程序:
w = exp(i*linspace(0,2*pi)); z = 24*(w.^3 - w.^2)./(1 - 5*w + 19*w.^2 + 9*w.^3); plot(z)
②、绝对稳定性判断程序:
9 3 19 2 5 h (1 h ) (1 h) h 0 此时的特征方程是: 24 24 24 24
fprintf('误差为: %10.10f\n',m)
测试程序:
f = @(t,y)-2*y + 2*t + 1; F = @(t)exp(-2*t) + t; Threesteps_Adams1(0,2,f,F,0.1)
第 2 题: ⑴、2 步 3 阶 Adams 方法: ①、画图程序:
w = exp(i*linspace(0,2*pi)); z = 12*w.*(w - 1)./(5*w.*w + 8*w -1); plot(z)
t = a + i*h; y2 = y1 + h/2*(3*f1 - f0); plot(t,y2,'.'); f2 = f(t,y2); y1 = y2; f0 = f1; f1 = f2; end y = linspace(a,b); plot(y,F(y),'r'); hold off m = abs(y1-F(b)); fprintf('数值解: %10.10f\n',y1) fprintf('误差为:%10.10f\n',m)
' u2 24u1 51u2 9 cos t 1/ 3sin t
7-第七章-常微分方程1
-------兔子数量 -------狐狸数量
兔、狐数量 变化相位图
6/28
例7.3 蝴蝶效应 数学家洛伦兹在一次讲演中将大气环流数据对初值的敏感性 形象地解释为“一只蝴蝶在巴西扇动翅膀,会引起德克萨斯 州一场龙卷风”。洛伦兹微分方程模型如下
dx x yz dt dy (y z ) , t [0, 80] dt dz xy y z dt
u x GMx / (x 2 y 2 )3/2 u GMy / (x 2 y 2 )3/2 v v y
初始条件
x (0) (R h ) y(0) 0
u(0) v 0 cos( / 2) v(0) v 0 sin( / 2)
14/28
function u=myfun(t,y) u(1,:)=-8/3*y(1)+y(2)*y(3); u(2,:)=-10*y(2)+10*y(3); u(3,:)=-y(1)*y(2)+28*y(2)-y(3);
8/28
9/28
例7.4 抛射曲线实验 假设阻力与速度成正比,在微分方程中 增加阻力项 x (t ) kx (t ) x (0) 0, x (0) v 0 cos y (t ) g ky (t ) y(0) 0, y (0) v 0 sin 符号计算方法
function z=fun1(t,N) z=0.015*N; ode23('fun1',[1994,2020],12) [T,N]=ode23('fun1',[1994,2020],12)
3/28
例7.2 捕食者与被捕食者问题 海岛上有狐狸和野兔,当野兔数量增多时,狐狸捕食野兔导致 狐群数量增长;大量兔子被捕食使狐群进入饥饿状态其数量下 降;狐群数量下降导致兔子被捕食机会减少,兔群数量回升。 微分方程模型如下
04级《数学实验》B卷答案
楚 雄 师 范 学 院2006—2007学年 第二 学期期末考试试卷 《数学实验》(B )卷 评分标准答题要求:1、写出各实验的MATLAB求解命令或程序2、除绘图题外,写出各实验的实验结果一、完成以下实验(每个实验5分,共20分)。
实验一 曲线绘图1.抛物线223y x x =-+-解:clear;x=-2:0.1:2;y=-x.^2+2*x-2;plot(x,y) 5分2.圆的渐开线2(cos sin ),2(sin cos )x t t t y t t t =+=-解:clear;t=linspace(0,2*pi);x=2*(cos(t)+t.*sin(t));y=2*(sin(t)-t.*cos(t));plot(x,y) 5分实验二 极限与导数3.求极限)lim x x →∞ 解:clear;syms x;s=limit(sqrt(x^2+3*x)-x,x,1)s =1 5分4.求函数()ln ln y x =的一阶导数解:syms x;y=log(log(x));dy=diff(y,x,1)dy =1/x/log(x) 5分二、完成以下实验(每个实验5分,共20分)。
实验三 级数5.求出()arctan f x x =马克劳林展开式的前5项解:clear;syms x;y=atan(x);f=taylor(y,0,5)f =x-1/3*x^3 5分6.求级数1n ∞=∑的和 解:clearsyms ns=sqrt(n+2)-2*sqrt(n+1)+sqrt(n);symsum(s,n,1,inf)ans =sum((n+2)^(1/2)-2*(n+1)^(1/2)+n^(1/2),n = 1 .. Inf) 5分实验四 积分 7.计算积分153cos dx x -⎰解:clear;syms x;s=int(1/(5-3*cos(x)),x)s =1/2*atan(2*tan(1/2*x)) 5分8.选用一种计算数值积分的方法,求数值积分20sin(2)x e x dx π⎰法1 复化梯形求积公式x=0:0.01:2*pi;y=exp(x).*sin(2*x);s1=trapz(x,y)s1 = -213.7824 5分法2 复化抛物线求积公式先编写M-函数文件function y=ex08(x)y=exp(x).*sin(2*x);保存后,在命令 命令运行指令:s2=quad('ex08',0,2*pi)2=quad('ex08',0,2*pi)s2 = -213.7967法3 牛顿-科兹求积公式s3=quadl('ex08',0,1)s3 =-213.7967三、完成以下实验(每个实验5分,共20分)。
常微分方程实验报告.
常微分方程课程实验报告实验名称 Matlab在常微分方程中的应用z =C2*exp(-2*t)+C3*exp(2*t)【3.1】作图(先做出x关于t,y关于t,z关于t的函数图像):hold on;for c1=0:0.1:1%C1、C2和C3都大于0for c2=0:0.1:1for c3=0:0.1:1t=0:0.1:1;x=c1.*exp(2.*t)+c3.*exp(-t);y=c1.*exp(2.*t)+c2.*exp(-t)+exp(-2.*t)*c3;z=c2.*exp(2.*t)+exp(-2.*t)*c3;subplot(1,3,1),plot(t,x),legend('t~x') %x关于t的函数图像 subplot(1,3,2),plot(t,y),legend('t~y') % y关于t的函数图像 subplot(1,3,3),plot(t,z),legend('t~z') % z关于t的函数图像endendend【3.2】作图(再做出x、y、z的三维图像):hold on;X=[];Y=[];Z=[];for c1=0:0.2:1%C1、C2和C3都大于0for c2=0:0.2:1for c3=0:0.2:1t=0:0.1:1;x=c1.*exp(2.*t)+c3.*exp(-t);y=c1.*exp(2.*t)+c2.*exp(-t)+exp(-2.*t)*c3;z=c2.*exp(2.*t)+exp(-2.*t)*c3;X=[X,x];Y=[Y,y];Z=[Z,z];endColumns 37 through 410.9753 1.0129 1.0521 1.0929 1.1353第4题:【1】编写函数M文件——cwf1.m(用于求近似解)function dy=cwf1(x,y)dy=(cos(x)-2*x*y)/(x^2-1)【2】编写脚本M文件——chang8.m[X,Y]=ode45('cwf1',[0,1],1)y1=Y’ %转置【3】则求出的近似解为(x取值为0~1):>>y1=Columns 1 through 101.0000 0.9756 0.9524 0.9303 0.9093 0.8892 0.8701 0.8520 0.8347 0.8183Columns 11 through 200.8028 0.7880 0.7742 0.7611 0.7488 0.7374 0.7269 0.7172 0.7085 0.7008Columns 21 through 300.6941 0.6886 0.6843 0.6815 0.6802 0.6809 0.6837 0.6890 0.6976 0.7102Columns 31 through 400.7277 0.7519 0.7851 0.8319 0.8964 0.9910 1.1404 NaN NaN NaNColumn 41-Inf【4】在command窗口运行以下语句,用于求精确解:>> y=dsolve('(x^2-1)*Dy+2*x*y-cos(x)=0','y(0)=1','x') %精确解。
第七章 常微分方程数值解法.
y f ( x, y), x [a,b]
y(
x0
)
y0
23
7.1 欧拉法和改进的欧拉法
欧拉公式
yi1 yi y0 y( x0 )
h
f
(xi ,
yi )
,
i
0,1,2,
改进的欧拉公式
yi
1
26
引言:
公式构造思想:从泰勒公式出发,寻找更高阶的 数值公式。
例如,泰勒公式计算到二阶可得
y(x + h) = y(x) + yⅱ(x)h + 1 y ?(x)h2 + O(h3) 2!
因
ìïïïíïïïî
y¢(x) = yⅱ(x) =
f (x, y(x)) df (x, y(x))
dx
=
fx (x, y(x)) +
可证明预测-校正公式的截断误差也为 O(h3)。
18
7.1.2 改进的欧拉法及预测-校正公式
例 取步长h=0.2,用改进的欧拉法的预测-校正公
式求解初值问题的数值解y1 , y2 .
ìïïíïïî
y¢= x + y(0) = 1
y
解
f (x, y) = x + y, x0 = 0, y0 = 1
预测-校正公式具体是
y( p) 2
=
0.2x1 +
1.2 y1
=
0.2?
0.2
1.2? 1.24
1.528
y2 = y1 + 0.1[(x1 + y1) + (x2 + y2( p) )] = 1.24 + 0.1(0.2 + 1.24 + 0.4 + 1.528) = 1.5768
同济大学高等数学上册第七章常微分方程
同济大学高等数学上册第七章常微分方程同济大学高等数学上册是大多数理工科专业的学生必修的课程,第七章是关于常微分方程的内容。
常微分方程是数学中的一个重要分支,广泛应用于物理、化学、经济等领域。
掌握常微分方程的基本理论和解法对于理解和应用这些领域的知识具有重要意义。
本章内容主要包括:一阶常微分方程、高阶常微分方程、一阶线性微分方程、可分离变量的微分方程、齐次线性微分方程和一阶齐次线性方程、一阶齐次线性非齐次方程、二阶常系数齐次线性方程、常系数非齐次方程等。
一、一阶常微分方程一阶常微分方程是指未知函数的导数只包含一阶导数的方程。
例如,dy/dx = f(x)。
常微分方程的求解可以采用分离变量法、恰当方程、公式法等。
其中分离变量法是常用的解法之一。
分离变量法的基本思想是将方程两边的变量分离开来,从而达到求解的目的。
二、高阶常微分方程高阶常微分方程是未知函数的导数包含高于一阶导数的方程。
例如,d²y/dx² + p(x) dy/dx + q(x) y = f(x)。
高阶常微分方程的求解可以采用常系数线性微分方程的方法。
常系数线性微分方程是指系数为常数的微分方程,其求解方法相对简单。
三、一阶线性微分方程一阶线性微分方程是指未知函数的导数与未知函数本身之间线性相关的方程。
例如,dy/dx + p(x) y = q(x)。
一阶线性微分方程的求解可以借助于积分因子的方法。
积分因子的选择是使方程两边的未知函数系数相等,从而将方程转化为可积分的形式。
四、可分离变量的微分方程可分离变量的微分方程是指未知函数和自变量可以在方程中分离的方程。
例如,dy/dx = f(x)/g(y)。
可分离变量的微分方程的求解可以通过对方程两边的变量分离,然后进行适当的积分得到。
这种方法常用于求解一些特殊形式的微分方程。
五、齐次线性微分方程和一阶齐次线性方程齐次线性微分方程是指未知函数的导数和未知函数本身之间构成齐次线性关系的微分方程。
常微分方程实验
常微分方程实验实验4 研究如下的Lorenz 方程⎪⎩⎪⎨⎧-=--=-=bz xy z xz y rx y y x a x '')('如果你是第一次接触这个方程,相信你一定觉得它并无特别之处。
千万不要小看了这个简单的问题!Lorenz 方程具有重要的实际背景,它所揭示的现象---著名的Lorenz 吸引子,具有重大的科学价值。
本实验就将引导你进入混沌的殿堂。
吸引子实验的背景前面研究的离散动力系统,可以看成是在持续的离散时间间隔上,一个数 量值的变化关系。
如果时间的间隔可以趋于零,那么这种变化关系通常就可以 用微分方程描述。
这样,很自然地就可以把一个(时间独立的)微分方程作为一 个连续的动力系统进行研究。
这里我们最关注的是当时间趋于无穷时,对于某 个集合上的初始值,微分方程解的性态。
设 D 是 n R 中的一个区域,再设 f :Dn R 是一个光滑函数。
考虑微分方程'()()x t f x = (*) 吸引子是描述连续动力系统长期性质的重要概念。
区域 D 的一个闭子集 F 叫 做包含 F 的吸引域 V 的吸引子,如果对开集 V 中的所有初始点 x(0), 通过 x(0)的轨道 x (t)随着 t 的无限增大而接近 F 。
当然,应要求 F 是不变的, 即 如果 x(0)是 F 中的点,那么对0t < t <+∞, ()x t 都在 F 中,这就意味着 F 是一些轨道的并集。
同时我们还要求 在下面的意义下是最小的,即存在一点 (0)x , 使得 ()x t 在 F 中稠密。
具有复杂吸引子连续动力系统最简单又引人入胜的例子,就是Lorenz 方程。
该系统表面上并无任何神秘之处,但它有很强的实际背景,它是长期气象预报的 一个简化模型。
⎪⎩⎪⎨⎧-=--=-=bz xy z xz y rx y y x a x '')('在 (x,y,z) 空间中考虑我们的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七 常微分方程【实验目的】1. 了解常微分方程的基本概念。
2. 了解常微分方程的解析解。
3. 了解常微分方程的数值解。
4. 学习掌握MATLAB 软件有关的命令。
【实验内容】如右图所示,一根长l 的无弹性细线,一段固定,另一端悬挂一个 质量为m 的小球,在重力的作用下小球处于垂直的平衡位置。
若使小球 偏离平衡位置一个角度θ,让它自由,它就会沿圆弧摆动。
在不考虑空气 阻力的情况下,小球会做一定周期的简谐运动。
利用牛顿第二定律得到如 下的微分方程0)0(',)0(,sin "0===θθθθθmg ml问该微分方程是线性的还是非线性的?是否存在解析解?如果不存在解析解,能否求出其近似解?【实验准备】1.微分方程的概念未知的函数以及它的某些阶的导数连同自变量都由一已知方程联系在一起的方程称为微分方程。
如果未知函数是一元函数,称为常微分方程。
常微分方程的一般形式为0),,",',,()(=n y y y y t F如果未知函数是多元函数,成为偏微分方程。
联系一些未知函数的一组微分方程组称为微分方程组。
微分方程中出现的未知函数的导数的最高阶解数称为微分方程的阶。
若方程中未知函数及其各阶导数都是一次的,称为线性常微分方程,一般表示为)()(')()(1)1(1)(t b y t a y t a y t a y n n n n =++++--若上式中的系数n i t a i ,,2,1),( =均与t 无关,称之为常系数或定常、自治、时不变的。
2.常微分方程的解析解有些微分方程可直接通过积分求解.例如,一解常系数常微分方程1+=y dtdy可化为dt y dy=+1,两边积分可得通解为1-=t ce y .其中c 为任意常数.有些常微分方程可用一些技巧,如分离变量法,积分因子法,常数变异法,降阶法等可化为可积分的方程而求得解析解(显式解).线性常微分方程的解满足叠加原理,从而他们的求解可归结为求一个特解和相应齐次微分方程的通解.一阶变系数线性微分方程总可用这一思路求得显式解。
高阶线性常系数微分方程可用特征根法求得相应齐次微分方程的基本解,再用常数变异法求特解。
一阶场微分方程与高阶微分方程可以互化,已给一个n 阶方程,),,",',()1()(-=n n y y y t f y设)1(21,,',-===n n y y y y y y ,可将上式化为一阶方程组⎪⎪⎪⎩⎪⎪⎪⎨⎧====-),,,,(''''2113221n n nn y y y t f y yy y y y y反过来,在许多情况下,一阶微分方程组也可化为高阶方程。
所以一阶微分方程组与高阶常微分方程的理论与方法在许多方面是相通的,一阶常系数线性微分方程组也可用特征根法求解。
3.微分方程的数值解法除常系数线性微分方程可用特征根法求解,少数特殊方程可用初等积分法求解外,大部分微分方程无限世界,应用中主要依靠数值解法。
考虑一阶常微分方程初值问题⎩⎨⎧=<<=000)()),(,()('y t y t t t t y t f t y f其中)'.,,,(,)',,,(,)',,,(020*******m m m y y y y f f f f y y y y ===所谓数值解法,就是寻求)(t y 在一系列离散节点f n t t t t ≤<<< 10上的近似值n k y k ,,1,0, =称k k k t t h -=+1为步长,通常取为常量h 。
最简单的数值解法是Euler 法。
Euler 法的思路极其简单:在节点出用差商近似代替导数ht y t y t y k k k )()()('1-≈+这样导出计算公式(称为Euler 格式),2,1,0),,(1=+=+k y t hf y y k k k k他能求解各种形式的微分方程。
Euler 法也称折线法。
Euler 方法只有一阶精度,改进方法有二阶Runge-Kutta 法、四阶Runge-Kutta 法、五阶Runge-Kutta-Felhberg 法和先行多步法等,这些方法可用于解高阶常微分方程(组)初值问题。
边值问题采用不同方法,如差分法、有限元法等。
数值算法的主要缺点是它缺乏物理理解。
4.解微分方程的MATLAB 命令MATLAB 中主要用dsolve 求符号解析解,ode45,ode23,ode15s 求数值解。
ode23与ode45类似,只是精度低一些。
ode12s用来求解刚性方程组,是用格式同ode45。
可以用help dsolve, help ode45查阅有关这些命令的详细信息.练习1求下列微分方程的解析解(1)by+='ay(2)1=yy-xy=y''=,0)0(',)0(2sin()(3)1ff=ggf+fgg-)0('=)0(',,1='=,'方程(1)求解的MATLAB代码为:clear;s=dsolve('Dy=a*y+b')s =-b/a+exp(a*t)*C1方程(2)求解的MATLAB代码为:clear;s=dsolve('D2y=sin(2*x)-y','y(0)=0','Dy(0)=1','x')simplify(s)s =5/3*sin(x)-1/3*sin(2*x)ans =-1/3*sin(x)*(-5+2*cos(x))方程(3)求解的MATLAB代码为:clear;s=dsolve('Df=f+g','Dg=g-f','f(0)=1','g(0)=1's =f: [1x1 sym]g: [1x1 sym]clear;s=dsolve('Df=f+g','Dg=g-f','f(0)=1','g(0)=1')simplify(s.f)simplify(s.g)s =f: [1x1 sym]g: [1x1 sym]ans =exp(t)*(cos(t)+sin(t))ans =exp(t)*(-sin(t)+cos(t))练习2求解微分方程=yt-yy)0(,1,1'=++先求解析解,再求数值解,并进行比较。
(1)求解析解clear;s=dsolve('Dy=-y+t+1','y(0)=1','t')simplify(s)s =t+exp(-t)ans =t+exp(-t)(2)求数值解%M函数 fun8.mfunction f=fun8(t,y)f=-y+t+1;命令窗口输入clear;close;t=0:0.1:1;y=t+exp(-t);plot(t,y); %化解析解的图形hold on;[t,y]=ode45('fun8',[0,1],1);plot(t,y,'ro'); %画数值解图形,用红色小圈画xlabel('t'),ylabel('y')ty3练习3 求方程0)0(',)0(,sin "0===θθθθθmg ml的数值解.不妨取15)0(,8.9,1===θg l .则上面方程可化为0)0(',15)0(,sin 8.9"===θθθθ(1)先求解析解 clear;s=dsolve('D2y=9.8*sin(y)','y(0)=15','Dy(0)=0','t') simplify(s)??? Error using ==> dsolveError, (in dsolve/IC) The 'implicit' option is not available when giving Initial Conditions. 知原方程没有解析解. (2)求数值解下面求数值解.令',21θθ==y y 可将原方程化为如下方程组⎪⎩⎪⎨⎧====0)0(,15)0()sin(8.9''211221y y y y y y%M 函数 fun9.mfunction f=fun9(t,y)f=[y(2),9.8*sin(y(1))]'; %f 向量必须为一列向量 命令窗口输入 clear;close;[t,y]=ode45('fun9',[0,10],[15,0]);plot(t,y(:,1)); %画θ随时间变化图,y(:2)则表示'θ的值xlabel('t'),ylabel('y1')0123456789101515.51616.5ty 1练习4 (刚性方程组求解)求下面刚性微分方程的解⎪⎩⎪⎨⎧==-=--=1)0(,2)0(,100'99.9901.0'2122211y y y y y y y (1)解析解clear;s=dsolve('Dy1=-0.01*y1-99.99*y2','Dy2=-100*y2','y1(0)=2','y2(0)=1','t') s =y1: [1x1 sym] y2: [1x1 sym]simplify(s.y1) simplify(s.y2)ans =exp(-100*t)+exp(-1/100*t) ans =exp(-100*t) (2)求数值解 %M 函数 fun10.mfunction f=fun10(t,y)f=[-0.01*y(1)-99.99*y(2),-100*y(2)]'; 命令窗口输入 clear;close;[t,y]=ode45('fun10',[0,10],[2,1]);plot(t,y);text(1,1.1,'y1');text(1,0.1,'y2'); xlabel('t'),ylabel('y')012345678910-0.50.511.52tyclear;close;[t,y]=ode45('fun10',[0,400],[2,1]); tstep=length(t) minh=min(diff(t))maxh=max(diff(t))tstep =48261minh =5.0238e-004maxh =0.0102clear;close;[t,y]=ode15s('fun10',[0,400],[2,1]);plot(t,y);text(100,0.5,'y1');text(1,0.1,'y2'); xlabel('t'),ylabel('y')tstep=length(t)minh=min(diff(t))maxh=max(diff(t))tstep =92minh =3.5777e-004maxh =32.1282050100150200250300350400-0.50.511.52ty[练习与思考]1.求下列微分方程的解析解。