实验报告—代数方程与微分方程求解
线性代数在微分方程中的应用

线性代数在微分方程中的应用线性代数是数学的一个分支,主要研究向量空间和线性映射等概念。
它通过矩阵和向量的运算来描述和解决各种数学问题。
在微分方程中,线性代数的应用发挥着重要的作用。
本文将探讨线性代数在微分方程中的具体应用。
1. 线性代数与齐次线性微分方程齐次线性微分方程是指形式为y'' + p(x)y' + q(x)y = 0的微分方程,其中p(x)和q(x)是已知的函数。
利用线性代数的概念和技巧,可以通过矩阵和向量的方法解决这类微分方程。
首先,将齐次线性微分方程转化为矩阵形式。
假设y(x)是方程的解,可以构造一个向量函数Y(x) = (y(x), y'(x))^T,其中y'(x)是y(x)的导数。
将Y(x)代入方程,得到一个关于Y(x)的矩阵方程Y''(x) + P(x)Y'(x) +Q(x)Y(x) = 0,其中P(x)和Q(x)是由p(x)和q(x)构成的矩阵。
接下来,考虑特征值问题。
对于矩阵方程,可以找到一个特征值λ和对应的特征向量V,满足矩阵方程的特征值问题(A - λI)V = 0,其中A是由P(x)和Q(x)构成的矩阵,I是单位矩阵。
最后,利用特征值和特征向量构建齐次线性微分方程的解。
通过求解特征值问题,可以得到特征值λ1和λ2,以及对应的特征向量V1和V2。
齐次线性微分方程的通解可以表示为y(x) = c1y1(x) + c2y2(x),其中c1和c2是常数,y1(x)和y2(x)分别是由特征向量V1和V2构成的解函数。
2. 线性代数与非齐次线性微分方程非齐次线性微分方程是指形式为y'' + p(x)y' + q(x)y = r(x)的微分方程,其中r(x)是已知的函数。
通过线性代数的方法,可以利用特解和齐次解的线性组合来求解非齐次线性微分方程。
首先,找到非齐次线性微分方程的特解。
通过试探法,假设非齐次线性微分方程的特解为y(x) = u(x)v(x),其中u(x)是待定函数,v(x)是齐次线性微分方程的解函数,通过求导和代入方程,可以得到u(x)的表达式。
第8章 代数方程和常微分方程求解

8.2 常微分方程求解
求解微分方程必须事先对自变量的某些值规定出 函数或是导数的值。 若在自变量为零的点上,给出初始条件,称为初 值问题,最普遍的自变量是“时间”。例如,弹 性系统的自由振动,若以时间为零来限定位移和 速度,这是一个初值问题。 若在自变量为非零的点上,给出边界条件,称为 边值问题,最普遍的自变量是“位移”。例如, 描述梁弯曲变形的微分方程,边界条件总是规定 在梁的两端。
当 x 0 2 和 y 0 0 条件下的特解。 在此问题中,两个微分方程的MATLAB表达式为: e1:Dx+2*x-Dy=10*cos(t) e2:Dx+Dy+2*y=4*exp(-2*t) 初值条件表达式为: C1:x(0)=2 C2:y(0)=0
8.1 代数方程求解
8.1.1 代数方程图解法
符号绘图函数fplot()和ezplot()也可以用于图解 法求代数方程的根,它适用于求解维数较少的一 维方程或二维方程组。 对于一维方程图解,其解就是函数曲线与x轴交点 所对应的变量数值。如果有多个交点,则表示该 方程有多个解;如果没有交点,则表示该方程没 有解。 例如,在例5-3使用符号绘图函数绘制代数方程的 图形(图5-3左图)中可见,函数在区间[-5,5]内 与x轴有3个交点,因此该代数方程该区间内有3个 实根。
M文件运行结果: 采用矩阵左除或矩阵求逆求出线性方程组的解: xx (zx)= 1.0000 2.0000 3.0000 -1.0000 计算残量: r = 1.0e-014 * 0.0888 0.2220 -0.4441 0.1776 计算残量的模: R = 5.3475e-015
微分方程求解方法

微分方程求解方法微分方程是数学中的一个重要概念,广泛应用于物理学、工程学、经济学等领域。
微分方程求解是通过已知条件找到满足方程的未知函数的过程。
根据方程的类型和性质,有多种解法可供选择。
一、可分离变量的微分方程可分离变量的微分方程形式为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)的形式,设定特解的形式。
微分方程求解

求微分方程的解一、 问题背景实际应用问题通过数学建模所归纳而得到的方程,绝大多数都是微分方程,真正能得到代数方程的机会很少.另一方面,能够求解的微分方程也是十分有限的,特别是高阶方程和偏微分方程(组).这就要求我们必须研究微分方程(组)的解法,既要研究微分方程(组)的解析解法(精确解),更要研究微分方程(组)的数值解法(近似解).对微分方程(组)的解析解法(精确解),Matlab 有专门的函数可以用. 这里主要研究微分方程(组)的数值解法(近似解),重点介绍 Euler 折线法.二、相关函数(命令)及简介1.dsolve('equ1','equ2',…):Matlab 求微分方程的解析解.equ1、equ2、…为方程(或条件).写方程(或条件)时用 Dy 表示y 关于自变量的一阶导数,用用 D2y 表示 y 关于自变量的二阶导数,依此类推.2.simplify(s):对表达式 s 使用 maple 的化简规则进行化简. 例如: syms xsimplify(sin(x)^2 + cos(x)^2) ans=13.[r,how]=simple(s):由于 Matlab 提供了多种化简规则,simple 命令就是对表达式 s 用各种规则进行化简,然后用 r 返回最简形式,how 返回形成这种形式所用的规则.例如: syms x[r,how]=simple(cos(x)^2-sin(x)^2) r = cos(2*x) how = combine4.[T,Y] = solver(odefun,tspan,y 0) 求微分方程的数值解. 说明:(1) 其中的 solver 为命令 ode45、ode23、ode113、ode15s 、ode23s 、ode23t 、ode23tb 之一.(2) odefun 是显式常微分方程:⎪⎩⎪⎨⎧==00)(),(y t y y t f dt dy(3) 在积分区间 tspan =],[0f t t 上,从0t 到f t ,用初始条件0y 求解.(4) 要获得问题在其他指定时间点 ,210,,t t t 上的解,则令 tspan = ],,,[,210f t t t t (要求是单调的).(5) 因为没有一种算法可以有效地解决所有的 ODE 问题,为此,Matlab 提供了多种求解器 Solver ,对于不同的ODE 问题,采用不同的Solver .(6) 要特别的是:ode23、ode45 是极其常用的用来求解非刚性的标准形式的一阶常微分方程(组)的初值问题的解的 Matlab 的常用程序,其中:ode23 采用龙格-库塔2 阶算法,用3 阶公式作误差估计来调节步长,具有低等的精度.ode45 则采用龙格-库塔4 阶算法,用5 阶公式作误差估计来调节步长,具有中等的精度.5.ezplot(x,y,[tmin,tmax]):符号函数的作图命令.x,y 为关于参数t 的符号函数,[tmin,tmax] 为 t 的取值范围.6.inline():建立一个内联函数.格式:inline('expr', 'var1', 'var2',…) ,注意括号里的表达式要加引号.例:Q = dblquad(inline('y*sin(x)'), pi, 2*pi, 0, pi)三、实验内容1. 几个可以直接用 Matlab 求微分方程精确解的例子:例1:求解微分方程22x xe xy dxdy-=+,并加以验证.求解本问题的Matlab 程序为:syms x y %line1 y=dsolve('Dy+2*x*y=x*exp(-x^2)','x') %line2 diff(y,x)+2*x*y-x*exp(-x^2) %line3 simplify(diff(y,x)+2*x*y-x*exp(-x^2)) %line4说明:(1) 行line1是用命令定义x,y 为符号变量.这里可以不写,但为确保正确性,建议写上;(2) 行line2是用命令求出的微分方程的解:1/2*exp(-x^2)*x^2+exp(-x^2)*C1(3) 行line3使用所求得的解.这里是将解代入原微分方程,结果应该为0,但这里给出:-x^3*exp(-x^2)-2*x*exp(-x^2)*C1+2*x*(1/2*exp(-x^2)*x^2+exp(-x^2)*C1)(4) 行line4 用 simplify() 函数对上式进行化简,结果为 0, 表明)(x y y =的确是微分方程的解.例2:求微分方程0'=-+x e y xy 在初始条件e y 2)1(=下的特解,并画出解函数的图形.求解本问题的 Matlab 程序为: syms x yy=dsolve('x*Dy+y-exp(x)=0','y(1)=2*exp(1)','x') ezplot(y)微分方程的特解为:y=1/x*exp(x)+1/x* exp (1) (Matlab 格式),即xe e y x+=,解函数的图形如图 1:图1例3:求微分方程组⎪⎪⎩⎪⎪⎨⎧=--=++035y x dtdy e y x dtdx t在初始条件0|,1|00====t t y x 下的特解,并画出解函数的图形.求解本问题的 Matlab 程序为: syms x y t[x,y]=dsolve('Dx+5*x+y=exp(t)','Dy-x-3*y=0','x(0)=1','y(0)=0','t') simple(x); simple(y);ezplot(x,y,[0,1.3]);axis auto微分方程的特解(式子特别长)以及解函数的图形均略. 2. 用ode23、ode45等求解非刚性的标准形式的一阶常微分方程(组)的初值问题的数值解(近似解).例4:求解微分方程初值问题⎪⎩⎪⎨⎧=++-=1)0(2222y xx y dx dy 的数值解,求解范围为区间[0, 0.5].fun=inline('-2*y+2*x^2+2*x','x','y'); [x,y]=ode23(fun,[0,0.5],1); x'; y';plot(x,y,'o-') >> x' ans =0.0000 0.0400 0.0900 0.1400 0.1900 0.2400 0.2900 0.3400 0.3900 0.4400 0.4900 0.5000 >> y' ans =1.0000 0.9247 0.8434 0.7754 0.7199 0.6764 0.6440 0.6222 0.6105 0.6084 0.6154 0.6179 图形结果为图 2.图2例 5:求解描述振荡器的经典的 Ver der Pol 微分方程.7,0)0(',1)0(,0)1(222====+--μμy y y dt dy y dt y d分析:令,,121dt dx x y x ==则.)1(,1221221x x x dtdx x dt dx --==μ 先编写函数文件verderpol.m :function xprime = verderpol(t,x) global mu;xprime = [x(2);mu*(1-x(1)^2)*x(2)-x(1)]; 再编写命令文件vdp1.m : global mu; mu = 7; y0=[1;0][t,x] = ode45('verderpol',[0,40],y0); x1=x(:,1);x2=x(:,2); plot(t,x1)图形结果为图3.图33. 用 Euler 折线法求解前面讲到过,能够求解的微分方程也是十分有限的.下面介绍用 Euler 折线法求微分方程的数值解(近似解)的方法.Euler 折线法求解的基本思想是将微分方程初值问题⎪⎩⎪⎨⎧==00)(),,(y x y y x f dxdy化成一个代数方程,即差分方程,主要步骤是用差商h x y h x y )()(-+替代微商dxdy,于是:⎪⎩⎪⎨⎧==-+)()),(,()()(00x y y x y x f h x y h x y k k k k 记)(,1k k k k x y y h x x =+=+,从而)(1h x y y k k +=+,则有1,,2,1,0).,(,),(1100-=⎪⎩⎪⎨⎧+=+==++n k y x hf y y h x x x y y k k k k k k 例 6:用 Euler 折线法求解微分方程初值问题⎪⎩⎪⎨⎧=+=1)0(,22y y x y dx dy 的数值解(步长h 取0.4),求解范围为区间[0,2].解:本问题的差分方程为1,,2,1,0).2),( ),(,,4.0,1,021100-=⎪⎪⎪⎩⎪⎪⎪⎨⎧+=+=+====++n k y x y y x f y x hf y y h x x h y x k k k k k k (其中: 相应的Matlab 程序见附录 1. 数据结果为:0 1.0000 0.4000 1.4000 0.8000 2.1233 1.2000 3.1145 1.6000 4.4593 2.0000 6.3074图形结果见图4:图4特别说明:本问题可进一步利用四阶 Runge-Kutta 法求解,读者可将两个结果在一个图中显示,并和精确值比较,看看哪个更“精确”?(相应的 Matlab 程序参见附录 2).四、自己动手1. 求微分方程0sin 2')1(2=-+-x xy y x 的通解.2. 求微分方程x e y y y x sin 5'2''=+-的通解.3. 求微分方程组⎪⎪⎩⎪⎪⎨⎧=-+=++00y x dtdy y x dtdx在初始条件0|,1|00====t t y x 下的特解,并画出解函数()y f x =的图形. 4. 分别用 ode23、ode45 求上述第 3 题中的微分方程初值问题的数值解(近似解),求解区间为[0,2]t ∈.利用画图来比较两种求解器之间的差异.5. 用 Euler 折线法求解微分方程初值问题⎪⎩⎪⎨⎧=-=1)0(,12'32y y x y y 的数值解(步长h 取0.1),求解范围为区间[0,2].6. 用四阶 Runge-Kutta 法求解微分方程初值问题⎩⎨⎧=-=1)0(,cos 'y x e y y x 的数值解(步长h 取0.1),求解范围为区间[0,3].四阶 Runge-Kutta 法的迭代公式为(Euler 折线法实为一阶 Runge-Kutta 法):1,,2,1,0),()2,2()2,2(),()22(6,),(342312143211100-=⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎨⎧++=++=++==++++=+==++n k hL y h x f L L h y h x f L L h y h x f L y x f L L L L L hy y h x x x y y k k k k k k k k k k k k 相应的 Matlab 程序参见附录 2.试用该方法求解第5题中的初值问题. 7. 用 ode45 方法求上述第 6 题的常微分方程初值问题的数值解(近似解),从而利用画图来比较两者间的差异.五、附录附录1:(fulu1.m)clearf=sym('y+2*x/y^2');a=0;b=2;h=0.4;n=(b-a)/h+1;x=0;y=1;szj=[x,y];for i=1:n-1y=y+h*subs(f,{'x','y'},{x,y});x=x+h;szj=[szj;x,y];endszjplot(szj(:,1),szj(:,2))附录2:(fulu2.m)clearf=sym('y-exp(x)*cos(x)');a=0;b=3;h=0.1;n=(b-a)/h+1;x=0;y=1;szj=[x,y];for i=1:n-1l1=subs(f,{'x','y'},{x,y});l2=subs(f,{'x','y'},{x+h/2,y+l1*h/2});l3=subs(f,{'x','y'},{x+h/2,y+l2*h/2});l4=subs(f,{'x','y'},{x+h,y+l3*h});y=y+h*(l1+2*l2+2*l3+l4)/6;x=x+h;szj=[szj;x,y];endszjplot(szj(:,1),szj(:,2))。
微分方程的建立与求解

微分方程的建立与求解微分方程是数学中重要的一门分支,广泛应用于自然科学、工程技术和经济管理等领域。
本文将探讨微分方程的建立与求解方法,旨在帮助读者更好地理解和应用微分方程。
一、微分方程的概念与分类微分方程是描述函数与其导数之间关系的方程。
它通常包含未知函数、自变量和它们的导数。
根据方程中含有的未知函数的最高阶导数的次数,微分方程可分为常微分方程和偏微分方程两大类。
常微分方程是未知函数的导数只涉及一个自变量的微分方程,通常用于描述物理、生物等自然界现象。
偏微分方程是未知函数的导数涉及两个或两个以上自变量的微分方程,常用于描述流体力学、电磁场等现象。
二、微分方程的建立过程微分方程的建立是通过观察实际问题、分析其特点和规律,将问题转化为数学方程。
建立微分方程的过程通常涉及以下几个步骤:1. 确定未知函数:根据问题的背景和目标,确定需要求解的未知函数。
例如,根据物体的速度变化情况,可以确定未知函数为物体的位移函数。
2. 建立变量关系:分析问题中涉及到的各个变量之间的关系,建立它们之间的数学模型。
例如,根据牛顿第二定律和速度与加速度的关系,可以建立运动物体的微分方程。
3. 确定边界条件:根据问题的具体条件,确定微分方程的边界条件,以求解特定的解。
边界条件通常包括初始条件和边界值条件。
4. 化简方程:根据问题的特点和求解的需要,对微分方程进行适当的化简和变形,以便更好地求解。
三、微分方程的求解方法微分方程的求解是通过找到满足方程的函数,从而得到该方程的解。
常用的求解方法有:1. 分离变量法:将微分方程中的变量分离,得到两个只包含一个变量的方程,然后分别对两个方程进行积分,最后得到方程的解。
2. 变量代换法:通过适当的变量代换,将原微分方程转化为已知的、易于求解的微分方程。
3. 积分因子法:通过求解积分因子,将原微分方程化简为恰当微分方程,从而求解得到方程的解。
4. 拉普拉斯变换法:将微分方程通过拉普拉斯变换转化为代数方程,然后求解代数方程得到解,最后通过拉普拉斯逆变换得到原微分方程的解。
建模实验报告

建模实验报告摘要:本实验主要针对建模方法进行研究与探索,分别采用了数学模型、统计模型和物理模型进行建模实验。
实验结果表明,不同的建模方法对于问题的解决和分析具有不同的优势和适用性,选择合适的建模方法能够有效提高问题的解决效率和精确度。
1.引言建模是指将实际问题转化为数学模型、统计模型或物理模型等形式的一种方法。
通过建模,我们可以抽象出实际问题中的关键因素和变量,进一步分析和解决问题。
本实验将重点研究数学模型、统计模型和物理模型的建模方法,并通过实验验证其有效性和适用性。
2.数学模型的建模方法数学模型是以数学的形式描述实际问题的模型。
在本实验中,我们采用了几种常见的数学建模方法,包括代数方程模型、微分方程模型和最优化模型。
2.1 代数方程模型代数方程模型是一种通过代数方程来描述问题的模型。
我们可以采用一系列代数方程来表示问题中的变量和关系,进而通过求解方程组来得到问题的解。
在实验中,我们以一个简单的线性方程组作为例子,通过代数方程模型计算方程组的解。
2.2 微分方程模型微分方程模型是一种通过微分方程来描述问题的模型。
微分方程可以描述问题中的变量和其变化率之间的关系。
在实验中,我们以一个经典的弹簧振动模型为例,通过微分方程模型求解系统的振动频率和振幅。
2.3 最优化模型最优化模型是一种通过寻找最优解来描述问题的模型。
最优化模型可以用于解决各种优化问题,如线性规划、整数规划等。
在实验中,我们以一个简单的线性规划问题为例,通过最优化模型求解问题的最优解。
3.统计模型的建模方法统计模型是一种通过统计理论和方法来描述问题的模型。
在本实验中,我们主要研究了回归分析和时间序列分析两种常见的统计建模方法。
3.1 回归分析回归分析是一种通过建立变量之间的回归关系来描述问题的模型。
在实验中,我们以一个销售数据的回归分析为例,通过建立销售额和广告投入之间的回归关系,预测未来的销售额。
3.2 时间序列分析时间序列分析是一种通过统计和数学方法来描述时间序列的模型。
线性代数在微分方程中的应用

线性代数在微分方程中的应用微分方程是数学中重要的研究对象之一,广泛应用于自然科学、工程技术等领域。
而线性代数,作为一门与向量、矩阵相关的学科,具有丰富的工具和方法,对微分方程的研究与应用具有重要的作用。
本文将探讨线性代数在微分方程中的应用。
一、矩阵与线性微分方程线性微分方程是指具有以下形式的微分方程:$$\frac{{d^n y}}{{dt^n}} + a_{n-1} \frac{{d^{n-1} y}}{{dt^{(n-1)}}} + \ldots + a_1 \frac{{dy}}{{dt}} + a_0 y = 0$$其中,$y$ 是未知函数,$a_0, a_1, \ldots, a_{n-1}$ 是给定的常数。
我们可以将线性微分方程表示为矩阵的形式:$$\frac{{d^n \mathbf{y}}}{{dt^n}} + \mathbf{A}_{n-1} \frac{{d^{n-1} \mathbf{y}}}{{dt^{(n-1)}}} + \ldots + \mathbf{A}_1\frac{{d\mathbf{y}}}{{dt}} + \mathbf{A}_0 \mathbf{y} = \mathbf{0}$$其中,$\mathbf{y}(t)$ 是一个向量函数,$\mathbf{A}_0,\mathbf{A}_1, \ldots, \mathbf{A}_{n-1}$ 是矩阵。
二、特征值与特征向量在微分方程中的应用特征值与特征向量是矩阵中的重要概念,它们在微分方程的研究中起到了关键的作用。
考虑一个 $n$ 阶线性微分方程,我们可以将其转化为如下形式:$$\frac{{d^n \mathbf{y}}}{{dt^n}} = \lambda \mathbf{y}$$其中,$\mathbf{y}(t)$ 是一个向量函数,$\lambda$ 是特征值。
这个转化过程可以通过特征值与特征向量的求解来实现。
方程求根与解常微分方程

第6章方程求根与解常微分方程6.1实验目的了解微分方程的通解、特解和近似解的概念。
熟悉方程求根和常微分方程解的概念,熟悉Mathematica软件的方程求根和求常微分方程解的命令,掌握用数学软件处理方程求根和常微分方程解的有关问题.6.2实验准备6.2.1数学概念1.微分方程2.微分方程的通解、特解6.2.2数学软件命令1. Solve[eqn, x]功能:求多项式方程eqn的所有根,当多项式方程的次数n≤4时,给出eqn所有根的准确形式, 当n>4时,不一定能求出所有的根, 此时,命令输出形式为{ToRules[Roots[eqn, x ]]}n次多项式方程的一般形式为:2 012nna a x a x a x++++="式中a0 ,a1, a2,…,a n为常数。
2.Solve[{eqn1, eqn2, …, eqnk}, {x1, x2,…, xk}]功能:求多项式方程组{eqn1, eqn2, …, eqnk}的所有根, 当其中每个多项式方程的次数n4 时, 给出所有根的准确形式, 否则,不一定能求出所有的根, 此时,命令输出形式为{ToRules[Roots[{eqn1, eqn2, …, eqnk}, {x1, x2,…, xk} ]]} 。
3. NSolve[eqn, x]功能:求多项式方程eqn的所有根的近似形式。
4. NSolve[{eqn1, eqn2, …, eqnk}, {x1, x2,…, xk}]功能:求多项式方程组{eqn1, eqn2, …, eqnk}所有根的近似形式。
5. FindRoot[eqn, {x, x0}]功能:求方程eqn的在初值x0附近的一个近似根。
6. FindRoot[{eqn1,eqn2, ... }, {x, x0}, {y, y0}, ... ]功能:求方程组{eqn1, eqn2, …}在初值(x0,y0,…)附近的一个近似根。
偏微分方程数值实验报告及算法实现(1)

偏微分方程数值实验报告一实验题目:利用有限差分法求解.0)1(,0)1(),()()(==-=+''-u u x f x u x u 真解为)1()(22x ex u x -=-实现算法:对于两点边值问题 ,)(,)(,,d 22βα==∈=-b u a u l x f dxu (1) 其中),(b a l =f b a ),(<为],[b a l =上的连续函数,βα,为给定常数.其相应的有限差分法的算法如下:1.对求解区域做网格剖分,得到计算网格.在这里我们对区间l 均匀剖分n 段,每个剖分单元的剖分步长记为na b h -=. 2.对微分方程中的各阶导数进行差分离散,得到差分方程.运用的离散方法有:方法一:用待定系数和泰勒展开进行离散)()()()(d )(d 111122++--++≈i i i i i i i i x u x u x u x x u ααα 方法二:利用差商逼近导数21122)()(2)()(d )(d h x u x u x u x x u i i i i i -++-≈ (2) 将(2)带入(1)可以得到)()()()(2)(211u R x f hx u x u x u i i i i i +=+---+, 其中)(u R i 为无穷小量,这时我们丢弃)(u R i ,则有在i x 处满足的计算公式:1,...,1)()()(2)(211-==+---+n i x f hx u x u x u i i i i , (3) 3.根据边界条件,进行边界处理.由(1)可得βα==n u u ,0 (4)称(3)(4)为逼近(1)的差分方程,并称相应的数值解向量1-n U 为差分解,i u 为)(i x u 的近似值.4.最后求解线性代数方程组,得到数值解向量1-n U .程序代码:第一步:编写有限差分格式相关函数function [ x,U ]=FDld_bvp(N,f,a,b,u)%******************************************************************** %% FD1d_bvp利用中心差分格式求解两点边值问题%参数:% 输入参数:% 整数N,网格节点数,% 函数f(x),计算右端函数f(x);% a,计算区间左端点% b,计算区间右端点% u,真解函数% 输出参数:% 差分解向量U% 均匀剖分区间[a,b],得到网格x(i)=a+(i-1)*(b-a)/(N-1)h=(b-a)/(N-1);x=(a:h:b)';% 创建线性差分方程组系数矩阵c1=-1/h/h;c2=2/h/h+1;g=[c1*ones(1,N-2),0];c=[0,c1*ones(1,N-2)];d=[1,c2*ones(1,N-2),1];A=diag(g,-1)+diag(d)+diag(c,1);% 创建线性差分方程组右端项rhs=f(x);rhs(1)=u(x(1));rhs(N)=u(x(N));% 求解上述代数系统U=A\rhs;endfunction[e0,e1,emax]=FD1d_error(x,U,u_exact)%% FD1d_ERROR 计算有限差分误差% 参数:% 输入参数:% x,网格节点坐标向量% U,网格节点坐标向量上的有限差分数值解向量Ux% u_exact,真解函数% 输出参数:% e0% e1% emaxN=length(x);h=(x(end)-x(1))/(N-1);ue=u_exact(x);%真解在网格点处的值xee=ue-U;e0=h*sum(ee.^2);e1=sum((ee(2:end)-ee(1:end-1)).^2)/h;e1=e1+e0;e0=sqrt(e0);e1=sqrt(e1);emax=max(abs(ue-U));endfunction FD1d_bvp_test%%测试脚本% 初始化相关数据N=[6,11,21,41,81];L=-1;R=1;emax=zeros(5,1);e0=zeros(5,1);e1=zeros(5,1);%%求解并计算误差for i = 1:5[x,U] =FD1d_bvp(N(i),@f ,L,R,@u);[e0(i),e1(i),emax(i)]=FD1d_error(x,U,@u);X{i}=x;UN{i}=U;endue=u(X{5});%% 显示真阶及不同网格剖分下的数值解plot(X{5},ue,'-k*',X{1},UN{1},'-ro',X{2},...UN{2},'-gs',X{3},UN {3},'-bd ',...X{4},UN{4},'-ch ',X{5} , UN {5},'-mx');title('The solution plot');xlabel('x');ylabel ('u');legend('exact','N=6','N =11','N=21','N =41','N =81'); %% 显示误差format shortedisp ('emax e0 e1 ');disp ([ emax , e0 , e1 ]);end第二步:编写方程的右端函数和真解分别保存为m f .和m u . function f=f(x)f=exp(-x.^2).*(4.*x.^4-15.*x.^2+5);endfunction u=u(x)u=exp(-x.^2).*(1-x.^2);end实验结果:在命令窗口输入>> FD1d_bvp_test回车可得运算结果和图像emax e0 e15.8219e-02 5.3470e-02 1.1724e-011.5919e-02 1.2802e-022.9349e-023.9305e-03 3.1663e-03 7.3357e-039.7959e-04 7.8946e-04 1.8338e-032.4471e-04 1.9723e-04 4.5844e-04。
实验三求代数方程的近似根

实验三求代数方程的近似根LELE was finally revised on the morning of December 16, 2020实验三求代数方程的近似根(解)一、问题背景和实验目的求代数方程的根是最常见的数学问题之一(这里称为代数方程,主要是想和后面的微分方程区别开.为简明起见,在本实验的以下叙述中,把代数方程简称为方程),当是一次多项式时,称为线性方程,否则称之为非线性方程.当是非线性方程时,由于的多样性,尚无一般的解析解法可使用,但如果对任意的精度要求,能求出方程的近似根,则可以认为求根的计算问题已经解决,至少能满足实际要求.本实验介绍一些求方程实根的近似值的有效方法,要求在使用这些方法前先确定求根区间,或给出某根的近似值.在实际问题抽象出的数学模型中,可以根据物理背景确定;也可根据的草图等方法确定,还可用对分法、迭代法以及牛顿切线法大致确定根的分布情况.通过本实验希望你能:1. 了解对分法、迭代法、牛顿切线法求方程近似根的基本过程;2. 求代数方程(组)的解.二、相关函数(命令)及简介1.abs( ):求绝对值函数.2.diff(f):对独立变量求微分,f 为符号表达式.diff(f, 'a'):对变量a求微分,f 为符号表达式.diff(f, 'a', n):对变量 a 求 n 次微分,f 为符号表达式.例如:syms x tdiff(sin(x^2)*t^6, 't', 6)ans=720*sin(x^2)3.roots([c(1), c(2), …, c(n+1)]):求解多项式的所有根.例如:求解:.p = [1 -6 -72 -27];r = roots(p)r =4.solve('表达式'):求表达式的解.solve('2*sin(x)=1')ans =1/6*pi5.linsolve(A, b):求线性方程组 A*x=b 的解.例如:A= [9 0; -1 8]; b=[1; 2];linsolve(A, b)ans=[ 1/9][19/72]6.fzero(fun, x0):在x0附近求fun 的解.其中fun为一个定义的函数,用“@函数名”方式进行调用.例如:fzero(@sin, 3)ans=7.subs(f, 'x ', a):将 a 的值赋给符号表达式 f 中的 x,并计算出值.例如:subs('x^2 ', 'x ', 2)ans = 4三、实验内容首先,我们介绍几种与求根有关的方法:1.对分法对分法思想:将区域不断对分,判断根在某个分段内,再对该段对分,依此类推,直到满足精度为止.对分法适用于求有根区间内的单实根或奇重实根.设在上连续,,即,或,.则根据连续函数的介值定理,在内至少存在一点,使.下面的方法可以求出该根:(1)令,计算;(2)若,则是的根,停止计算,输出结果.若,则令,,若,则令,;.……,有、以及相应的.(3) 若 (为预先给定的精度要求),退出计算,输出结果;反之,返回(1),重复(1),(2),(3).以上方法可得到每次缩小一半的区间序列,在中含有方程的根.当区间长很小时,取其中点为根的近似值,显然有以上公式可用于估计对分次数.分析以上过程不难知道,对分法的收敛速度与公比为的等比级数相同.由于,可知大约对分10次,近似根的精度可提高三位小数.对分法的收敛速度较慢,它常用来试探实根的分布区间,或求根的近似值.2. 迭代法1)迭代法的基本思想:由方程构造一个等价方程从某个近似根出发,令,可得序列,这种方法称为迭代法.若收敛,即,只要连续,有即可知,的极限是的根,也就是的根.当然,若发散,迭代法就失败.以下给出迭代过程收敛的一些判别方法:定义:如果根的某个邻域中,使对任意的,迭代过程,收敛,则称迭代过程在附近局部收敛.定理1:设,在的某个邻域内连续,并且,,则对任何,由迭代决定的序列收敛于.定理2:条件同定理 1,则定理3:已知方程,且(1) 对任意的,有.(2) 对任意的,有,则对任意的,迭代生成的序列收敛于的根,且.以上给出的收敛定理中的条件要严格验证都较困难,实用时常用以下不严格的标准:当根区间较小,且对某一,明显小于1时,则迭代收敛 (参见附录3).2) 迭代法的加速:a) 松弛法:若与同是的近似值,则是两个近似值的加权平均,其中称为权重,现通过确定看能否得到加速.迭代方程是:其中,令,试确定:当时,有,即当,时,可望获得较好的加速效果,于是有松弛法:,松弛法的加速效果是明显的 (见附录4),甚至不收敛的迭代函数经加速后也能获得收敛.b) Altken方法:松弛法要先计算,在使用中有时不方便,为此发展出以下的 Altken 公式:,是它的根,是其近似根.设,,因为,用差商近似代替,有,解出,得由此得出公式;;,这就是Altken 公式,它的加速效果也是十分明显的,它同样可使不收敛的迭代格式获得收敛(见附录5).3. 牛顿(Newton)法(牛顿切线法)1) 牛顿法的基本思想:是非线性方程,一般较难解决,多采用线性化方法.记:是一次多项式,用作为的近似方程.的解为记为,一般地,记即为牛顿法公式.2) 牛顿法的收敛速度:对牛顿法,迭代形式为:注意分子上的,所以当时,,牛顿法至少是二阶收敛的,而在重根附近,牛顿法是线性收敛的.牛顿法的缺点是:(1)对重根收敛很慢;(2)对初值要求较严,要求相当接近真值.因此,常用其他方法确定初值,再用牛顿法提高精度.4. 求方程根(解)的其它方法(1) solve('x^3-3*x+1=0')(2) roots([1 0 -3 1])(3) fzero('x^3-3*x+1', -2)(4) fzero('x^3-3*x+1',(5) fzero('x^3-3*x+1',(6) linsolve([1, 2, 3; 4, 5, 6; 7, 8, 0], [1, 2, 3]')体会一下,(2)(5) 用了上述 1 3 中的哪一种方法?以下是本实验中的几个具体的实验,详细的程序清单参见附录.具体实验1:对分法先作图观察方程:的实根的分布区间,再利用对分法在这些区间上分别求出根的近似值.输入以下命令,可得的图象:f='x^3-3*x+1';g='0';ezplot(f, [-4, 4]);hold on;ezplot(g, [-4, 4]); %目的是画出直线 y=0,即 x 轴grid on;axis([-4 4 -5 5]);hold off实根的分布区间该区间上根的近似值具体实验2:普通迭代法采用迭代过程:求方程在附近的根,精确到第 4 位小数.构造等价方程:用迭代公式:,用 Matlab 编写的程序参见附录2.请利用上述程序填写下表:分析:将附录2第4行中的分别改为以及,问运行的结果是什么你能分析得到其中的原因吗看看下面的“具体实验3”是想向你表达一个什么意思.用 Matlab 编写的程序参见附录3.具体实验3:收敛/发散判断设方程的三个根近似地取,和,这些近似值可以用上面的对分法求得.迭代形式一:收敛 (很可能收敛,下同)不收敛 (很可能不收敛,下同)不收敛迭代形式二:收敛不收敛不收敛迭代形式三:不收敛收敛收敛具体实验4:迭代法的加速1——松弛迭代法,,迭代公式为程序参见附录4.具体实验5:迭代法的加速2——Altken迭代法迭代公式为:,,程序参见附录5.具体实验6:牛顿法用牛顿法计算方程在-2到2之间的三个根.提示:,迭代公式:程序参见附录6 (牛顿法程序).具体实验7:其他方法求下列代数方程(组)的解:(1)命令:solve('x^5-x+1=0')(2)命令:[x, y]=solve('2*x+3*y=0', '4*x^2+3*y=1')(3) 求线性方程组的解,已知,命令:for i=1:5for j=1:5m(i, j)=i+j-1;endendm(5, 5)=0;b=[1:5]'linsolve(m, b)思考:若,或是类似的但阶数更大的稀疏方阵,则应如何得到?四、自己动手1.对分法可以用来求偶重根附近的近似解吗为什么2.对照具体实验2、4、5,你可以得出什么结论3.选择适当的迭代过程,分别使用:(1)普通迭代法;(2)与之相应的松弛迭代法和 Altken 迭代法.求解方程在附近的根,精确到4位小数,请注意迭代次数的变化.4.分别用对分法、普通迭代法、松弛迭代法、Altken 迭代法、牛顿切法线等5种方法,求方程的正的近似根,.(建议取.时间许可的话,可进一步考虑的情况.)。
代数方程和微分方程求解PPT教学课件

2020/12/12
8
多项式运算的几个常用函数:
P=conv(p1,p2);
%多项式乘法
[d,r]=deconv(p1,p2); %多项式除法
Dp=polyder(p);
%多项式的导数
Ip=polyint(p) %多项式的积分(原函数)
Y=polyval(p,x)
%输出多项式p在向量x
的值
2020/12/12
9
多项式求根的函数为 r=roots(p)
求得多项式p的所有根。
例4.3:求多项式 x 6 2 x 5 0 1 x 4 3 3 x 8 3 2 2 x 8 2 2 13 x 6 19 22 6 的根并在多项式图形中表示。
2020/12/12
10
参考程序:
q =[1 -20 138 -328 -223 1692 1260]; r=roots(q); x=-2.2:0.05:8; y=polyval(q,x); y1=polyval(q,r); plot(x,y,r,y1,'p') xlim([-2.2,8]) legend('polynomial','roots')
2020/12/12
11
2020/12/12
12
线性方程组的求解
线性方程组 Ax=b
可以利用矩阵除法直接得到。但当系数矩阵为稀 疏矩阵时,利用稀疏矩阵函数可以得到更高的计 算效率。 稀疏矩阵利用函数
A1=sparse(A); 定义。
2020/12/12
13
例4.4:求解n阶线性方程组
2 1
0 x1 1
4
也可以利用下面的语句求解
>>
大学数学实验报告总结(3篇)

第1篇一、实验背景随着科学技术的不断发展,数学在各个领域的应用日益广泛。
为了提高学生运用数学知识解决实际问题的能力,本实验课程旨在通过一系列数学实验,让学生深入理解数学理论,掌握数学软件的使用,并培养创新思维和团队协作精神。
二、实验目的1. 深入理解数学理论知识,提高数学应用能力。
2. 掌握数学软件(如MATLAB、Mathematica等)的基本操作和编程技巧。
3. 培养创新思维和团队协作精神,提高实践能力。
4. 通过实验,验证数学理论在实际问题中的应用价值。
三、实验内容本实验课程共分为以下几个部分:1. 数值分析实验:包括数值微分、数值积分、线性方程组的求解等。
2. 线性代数实验:包括矩阵运算、特征值与特征向量、线性方程组的求解等。
3. 概率论与数理统计实验:包括随机变量及其分布、参数估计、假设检验等。
4. 运筹学实验:包括线性规划、整数规划、网络流等。
5. 高等数学实验:包括常微分方程、偏微分方程、复变函数等。
四、实验过程1. 实验准备:查阅相关资料,了解实验原理和方法,明确实验目的和步骤。
2. 实验实施:按照实验指导书的要求,利用数学软件进行实验操作,记录实验数据。
3. 数据分析:对实验数据进行处理和分析,验证数学理论在实际问题中的应用。
4. 实验报告撰写:总结实验过程、结果和心得体会,撰写实验报告。
五、实验结果与分析1. 数值分析实验:通过数值微分、数值积分等方法,验证了数值方法在求解实际问题中的有效性。
例如,在求解非线性方程组时,采用了牛顿迭代法,成功找到了方程的近似解。
2. 线性代数实验:通过矩阵运算、特征值与特征向量等方法,解决了实际工程问题中的线性方程组求解问题。
例如,在求解电路分析问题时,利用矩阵方法求得了电路的电压和电流分布。
3. 概率论与数理统计实验:通过随机变量及其分布、参数估计、假设检验等方法,分析了实际问题中的数据,得出了可靠的结论。
例如,在产品质量检测中,利用假设检验方法判断了产品是否合格。
常微分方程与代数方程的联系

常微分方程与代数方程的联系
微分方程与代数方程是数学中的两种重要的方法,它们之间存在着密切的联系。
首先,我们来讨论微分方程与代数方程的关系。
微分方程是一种用来描述函数变化的方程,它表示函数的导数与函数本身的关系,其中可能包含一个或多个未知函数和未知参数。
微分方程的解决方案是满足一定条件的函数,解决微分方程的方法有很多,其中最常用的是通过求解可以将微分方程转换为代数方程的方法。
代数方程是一种表示未知数及其关系的方程,它可以用来描述未知数之间的关系,这些未知数可以是实数、复数、有理数或其他数学实体,它们之间的关系可以是一个等式,也可以是一个不等式或组合不等式。
解决代数方程的方法有很多,其中有一种方法是将代数方程转换为微分方程,然后求解微分方程。
因此,可以看出,微分方程与代数方程之间存在着密切的联系,它们之间可以相互转换。
当我们遇到一个微分方程时,我们可以将它转换为代数方程来解决,当我们遇到一个代数方程时,我们也可以将它转换为微分方程来解决。
总而言之,微分方程与代数方程之间存在着密切的联系,它们之间可以相互转换,使我们能够解决复杂的问题。
它们的
联系使数学变得更加精彩,也为我们在实际应用中提供了更多的帮助。
微分方程的基本原理与求解方法探析

微分方程的基本原理与求解方法探析微分方程是描述自然界各种现象的数学工具,广泛应用于物理学、工程学、生物学等领域。
本文将探讨微分方程的基本原理以及一些常见的求解方法。
一、微分方程的基本原理微分方程是含有未知函数及其导数的方程。
根据未知函数的个数和方程中出现的最高阶导数的个数,微分方程可以分为常微分方程和偏微分方程两类。
常微分方程中的未知函数只是一个变量的函数,而偏微分方程中的未知函数是多个变量的函数。
微分方程描述了未知函数及其导数之间的关系,其求解的目标是找到满足方程并符合给定条件的未知函数。
在常微分方程中,解的存在唯一性定理确保了解的存在性和唯一性,使得我们能够通过求解微分方程来得到具体的数学表达式。
二、常见的微分方程求解方法1. 分离变量法:对于可以表示为未知函数乘以不同自变量的导数之和的微分方程,可以将方程两边进行变量的分离,并进行积分以求解。
这种方法适用于一阶常微分方程的求解。
2. 指数分布法:对于形如dy/dx = P(x)·y^α的一阶线性齐次微分方程,可以引入一个变换y = z^m,将方程化为dz/dx = mP(x)·z^m。
通过适当选择m值,使得方程变为可分离变量的形式。
然后进行变量的分离和积分,得到解。
3. 常系数线性齐次微分方程:对于形如dy/dx + ay = 0的一阶非齐次线性微分方程,可以通过引入一个变量z = y·exp(ax),将方程进行变换为dz/dx = 0的可分离变量方程。
然后进行积分,最后还原为未知函数y。
4. 特征方程法:对于二阶常系数线性齐次微分方程,可以通过特征方程来求解。
根据二阶齐次线性微分方程的一般形式d^2y/dx^2 + a1·dy/dx + a0·y = 0,可以得到特征方程的解,从而求得通解。
5. 拉普拉斯变换法:拉普拉斯变换是一种将给定函数f(t)转换为连续变量s的函数F(s)的方法。
通过对微分方程进行拉普拉斯变换,将微分方程转化为代数方程,然后求解代数方程得到F(s),最后通过拉普拉斯逆变换得到解。
MATLAB实验七--答案

数求解方程的根 ezplot('10*x+exp(x)-2') grid on 根所在区间为[0,2]; fzero('10*x+exp(x)-2',[0,2])
sin x y z 2 e x 4 0 4、求方程组 在(1,1,1)附近的解并对结果进行验证。要求编写 x yz 0 xy z 0
评语:
教师签字:
日期:
年
月
日
河南财经政法大学数学与信息科学学院
6
其中 k1 是药物量被吸收到血液中的速率系数,k 是血液中向体外排除的速率系数,D 是刚 开始胃中或肌肉中的药物总量。试用欧拉公式求上述微分方程数值解,并画出图形。(设 k1=0.6,k=0.2,D=200) clear f=sym('-0.2*x+0.6*200*exp(-0.6*t)'); a=0; b=60;h=4; n=(b-a)/h; t=0;x=0;szj=[t,x]; for i=1:n x=x+h*subs(f,{'t','x'},{t,x}); t=t+h; szj=[szj;t,x]; end szj plot(szj(:,1),szj(:,2),'*b-')
dy 3 y 3 x dx x x (e cos x) 2 x 10、求微分方程 的数值解,求解范围为区间[,2],并画出 2 3 y ( ) (e 1)
数值解和解析解的图形 数值解: fun=inline('((3*y)/x+x^3*(exp(x)+cos(x))-2*x)','x','y'); [x,y]=ode23(fun,[pi,2*pi],(exp(pi)+2/pi+1)*pi^3) plot(x,y,'r*') 解析解: y=dsolve('Dy=(3*y)/x+x^3*(exp(x)+cos(x))-2*x','y(pi)=(exp(pi)+2/pi)*pi^3','x') ezplot(y,[pi,2*pi]) 或者 x=[pi:0.1:2*pi]; y=x.^3.*(exp(x)+sin(x)+2./x); plot(x,y); hold on; fun=inline('3*y/x+x^3*(exp(x)+cos(x))-2*x','x','y'); [x,y]=ode23(fun,[pi,2*pi],(exp(pi)+2/pi+1)*(pi)^3); plot(x,y,'r'); xlabel('x'); ylabel('y');
数值计算方法实验报告

数值计算方法实验报告一、实验目的本实验旨在通过数值计算方法的实验操作,深入理解数值计算方法的原理与应用,掌握数值计算方法的相关技能,提高数值计算方法的实际应用能力。
二、实验内容1.数值微积分2.数值代数3.数值微分方程4.数值线性代数5.数值优化6.数值统计分析7.数值随机模拟8.数值傅立叶分析9.数值偏微分方程三、实验步骤1.数值微积分:通过不同的数值积分方法,计算给定函数的定积分值,并对不同数值积分方法的误差进行分析。
2.数值代数:通过使用线性代数方法,求解给定的线性方程组,并分析不同线性方程组求解方法的优劣。
3.数值微分方程:通过使用常微分方程数值解法,求解给定的微分方程,并比较不同求解方法的精度和稳定性。
4.数值线性代数:通过使用特征值分解方法,对给定的矩阵进行特征值分解,并分析不同特征值分解方法的优缺点。
5.数值优化:通过使用不同的优化方法,求解给定的优化问题,并比较不同的优化方法的效率和精度。
6.数值统计分析:通过使用不同的统计分析方法,对给定的数据进行统计分析,并分析不同的统计方法的优缺点。
7.数值随机模拟:通过使用随机模拟方法,模拟给定的概率分布,并分析不同随机模拟方法的效率和精度。
8.数值傅立叶分析:通过使用傅立叶分析方法,对给定的信号进行频谱分析,并分析不同的傅立叶分析方法的优缺点。
9.数值偏微分方程:通过使用偏微分方程数值解法,求解给定的偏微分方程,并比较不同求解方法的精度和稳定性。
四、实验结果与分析本实验中,通过对不同的数值计算方法的实验操作,我们可以更深入地理解数值计算方法的原理与应用,并掌握数值计算方法的相关技能,提高数值计算方法的实际应用能力。
同时,通过实验结果的分析,我们可以更好地比较不同数值计算方法的优缺点,为实际应用提供参考依据。
五、实验总结本实验旨在通过数值计算方法的实验操作,深入理解数值计算方法的原理与应用,掌握数值计算方法的相关技能,提高数值计算方法的实际应用能力。
偏微分方程与微分代数方程的一致求解方法

偏微分方程与微分代数方程的一致求解方法微分方程(DifferentialEquation)是数学中一类重要的解决问题的工具,它可以表示物理、化学、机械等许多现象,可以用来描述物体的动态变化,并且能够提供解决实际问题的方法。
微分方程包括偏微分方程和常微分方程两种,其中偏微分方程在非线性系统中起着重要作用,但是该类方程很难解决。
微分代数方程也是重要的一类方程,其中一些问题是偏微分方程中的条件,其解也可以影响物理系统的动态变化。
为了解决偏微分方程和微分代数方程的问题,科学家提出了一种一致的求解方法偏微分方程与微分代数方程的一致求解方法。
这种求解方法的目的是使偏微分方程的条件与微分代数方程的条件最小化,从而提高求解精度和效率。
偏微分方程与微分代数方程的一致求解方法基于Bernoulli-Euler的偏微分方程求解思想,并结合拉格朗日法把偏微分方程与微分代数方程统一起来,使偏微分方程和微分代数方程具有相同的解。
首先,在强制约束的条件下,偏微分方程的解可以通过添加一个衍生量的拉格朗日法方式得到。
然后,通过拉格朗日法将偏微分方程转换为微分代数方程,可以获得两个一致的方程。
最后,这种求解方法可以使得偏微分方程和微分代数方程之间的条件最小化,从而提高求解精度和效率。
偏微分方程与微分代数方程的一致求解方法也极大地减轻了计算量,因为它只需要使用拉格朗日方程求解一个系统,而不是两个系统,可以大大节省计算时间和资源。
此外,这种求解方法的计算结果也更加准确,即使在物理参数以及系统条件有所变化的情况下,仍可以提高求解精度和提高精度。
总之,偏微分方程与微分代数方程的一致求解方法是现代科学研究中重要的一种方法,它不仅可以求解偏微分方程和微分代数方程的条件,而且可以提高精度,减轻计算量,这是一个非常重要的发现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实 验 报 告 四代数方程求解1、【示例】以下命令可求出方程 (x +1)e –x +e x sin x =0在0附近的一个根:>>y=sym('(x+1)*exp(-x)+exp(x)*sin(x)'); % 用sym 命令定义符号表达式>>x=solve(y,'x') % 用准解析方法求出方程最接近0的一个根x =-0.86508244315736795185621568221837或可用以下命令求解该方程以指定点为初始搜索点的数值解:>> y=inline('(x+1)*exp(-x)+exp(x)*sin(x) ', 'x'); % 用数值方法求解时,方程要用inline 命令定义 >> x=fsolve(y,0) % 用数值方法从初始点1开始搜索方程的近似解 x = -0.8651注:准解析命令solve 只能求出方程最接近0的一个实数根,而数值解法fsolve 可以通过初始搜索点的变化,得到不同的解(如果方程有多个实数解)。
【要求】仿照示例,用准解析方法求出30.5sin(42)4cos(2)0.5t t e t e t --++=的一个根;再用数值方法分别求该方程在-0.6和3附近的两个根。
y=sym('exp(-3*t)*sin(4*t+2)+4*exp(-0.5*t)*cos(2*t)-0.5');t=solve(y,'t')t =0.67374570500134756702960220427474y=inline('exp(-3*t).*sin(4*t+2)+4*exp(-0.5*t).*cos(2*t)-0.5','t');t=fsolve(y,0.6)t =0.6737y=inline('exp(-3*t).*sin(4*t+2)+4*exp(-0.5*t).*cos(2*t)-0.5','t');t=fsolve(y,3)t =2.59372、【示例】以下命令可求解非线性方程组339820x y x x y ⎧+-=⎨+-=⎩>> eq1=sym('x^3+y^3-x-98'); % 定义第一个方程表达式>> eq2=sym('x+y-2'); % 定义第二个方程表达式>> [x,y]=solve(eq1,eq2) % 解方程组(用准解析方法)x =13/12+1/12*2329^(1/2)13/12-1/12*2329^(1/2)y =11/12-1/12*2329^(1/2)11/12+1/12*2329^(1/2)或可用以下命令求解上述方程组以指定点为初始搜索点的数值解:>> f=inline('[x(1) ^3+x(2) ^3-x(1)-98; x(1)+x(2)-2]', 'x'); % 用inline 命令定义方程组>> x=fsolve(f,[1;1]) % 用数值方法从初始点(1,1)开始搜索方程组的一个近似解 x =-2.93834.9383【要求】仿照示例,求解(1)方程35323=+-x x x 和方程组⎪⎩⎪⎨⎧-==+=++1430122yz z x x x 35323=+-x x x(1)y=sym('x^3-3.*x^2+5*x');x=solve(y,'x')x =1.1.+1.4142135623730950488016887242097*i1.-1.4142135623730950488016887242097*i(2)y=inline('x^3-3.*x^2+5*x-3 ', 'x');x=fsolve(y,0)x =1.0000⎪⎩⎪⎨⎧-==+=++1430122yz z x x x(1)eq1=sym('x^2+2*x+1');eq2=sym('x+3*z-4');eq3=sym('y*z+1');[x,y,z]=solve(eq1,eq2,eq3)x =-1y =-3/5z =5/3(2)f=inline('[x(1)^2+2*x(1)+1; x(1)+3*x(3)-4;x(2)*x(3)+1]', 'x');x=fsolve(f,[1;1;1])x = -0.9979-0.60031.6660(2)方程组x 2+y =0, e x +sin y =0在[-5,5]内的所有根。
>> ezplot('-x^2',[-5,5])>> hold on>> ezplot('asin(-exp(x))',[-5,5])-5-4-3-2-1012345-1-0.8-0.6-0.4-0.2xasin(-exp(x))f=inline('[x(1)^2+x(2); exp(x(1))+sin(x(2))]', 'x');x=fsolve(f,[-0.7,-0.5])x =-0.7150 -0.51123、【示例】以下命令可求解线性方程组12412341234123423285223742212x x xx x x xx x x xx x x x-+=⎧⎪+++=⎪⎨-+-=⎪⎪+++=⎩。
计算A*x,即可验证求解结果。
>> A=[2 -3 0 2;1 5 2 1;3 -1 1 -1;4 1 2 2]; % 定义方程组的系数矩阵>> B=[8 2 7 12] ' ; % 定义方程组的常数项向量>> x=A\B % A\B为A左除B,即A-1B x =3.00000.0000-1.00001.0000【要求】执行以上命令,并仿照示例,解线性方程组12323123 241658 32710 117331 x x xx xx x x++=⎧⎪-=⎨⎪+-=⎩A=[24 16 5;0 3 -27;11 7 -3]; B=[8 10 31]';x=A\Bx = 19.4087-27.5410-3.4305实 验 报 告 五微分方程求解一、解析方法(dsolve 命令)【示例】1、以下命令可求微分方程2dy y dx x=的通解: >> y=dsolve('Dy=y^2/x','x') % Dy 表示未知函数y 的一阶导,x 为自变量y =-1/(log(x)-C1)2、以下命令可求微分方程2x y y dy e x e dx --=+满足初始条件00x y ==的特解:>> y=dsolve('Dy=exp(x-y)+x^2*exp(-y)', 'y(0)=0 ', 'x')y =log(exp(x)+1/3*x^3)3、以下命令可求微分方程组,dx dy y x t dt dt ==-+在初始条件001,2t t x y ====下的特解:>>[x,y]=dsolve(' Dx=y, Dy= -x+t ', ' x(0)=1, y(0)=2 ', ' t ' ) %此题中x 、y 均为未知函数,t 为自变量4、以下命令可求二阶微分方程1y y x '''-+=在初始条件001,1x x y y =='==的通解:>>y=dsolve('D2y-Dy+x=1', 'y(0)=1, Dy(0)=1 ', 'x') % D2y 表示未知函数y 的二阶导,x 为自变量 y =1/2*x^2+exp(x)【要求】1、执行以上命令,并仿照示例,解微分方程22(1)0xy dx x dy ++=,并求它满足初始条件01x y ==的特解。
y=dsolve('Dy=(x*y^2)/(1+x^2)','x')y =-2/(log(1+x^2)-2*C1)y=dsolve('Dy=(x*y^2)/(1+x^2)', 'y(0)=1 ','x')y =-2/(log(1+x^2)-2)2、求二阶微分方程2413(1)sin x y y y e x x -'''++=+的通解。
y=dsolve('D2y+4*Dy+13*y=exp(-2*x)*(x+1)*sin(x)', 'x')y =exp(-2*x)*sin(3*x)*C2+exp(-2*x)*cos(3*x)*C1+1/32*exp(-2*x)*(-cos(x)+4*sin(x)*x+4*sin(x))二、数值方法(ode 命令)用解析方法求解,可求得未知函数的函数表达式,但是局限性大,复杂的方程一般无法用解析解法;实际问题大多要用数值方法求解,这类方法无法得到函数表达式,只能获得一系列随自变量变化的函数值的近似值,但可以利用所得的点坐标绘制出未知函数的近似曲线。
1、【示例】以下命令可求微分方程组2(1)dx y dt dy x y x dt⎧=⎪⎪⎨⎪=--⎪⎩当自变量在[0,30]之间的数值解。
先在Editor 窗口中编写M 文件:function dz=fun1(t,z) % fun1称为函数名,保存该文件的时候自动以此作为文件名,不要改名。
dz=zeros(2,1);dz(1)=z(2); % z(1)、z(2)分别表示未知函数x 和y ,t 为函数的自变量。
dz(2)= (1-z(1)^2)*z(2)-z(1); % dz(1)、dz(2)分别表示x 和y 关于t 的导数,必须单独写在左边。
然后在命令窗口中输入命令>>[t,z]=ode45('fun1',[0,30],[1,0]); z % ode45是微分方程数值解法中最常用的命令,引用的函数名必须与前面的函数名一致,[0,30]表示自变量的取值范围,[1,0]表示x 和y 的初始值。
z =1.0000 01.0000 -0.00011.0000 -0.00011.0000 -0.00021.0000 -0.00021.0000 -0.00051.0000 -0.00071.0000 -0.00101.0000 -0.00121.0000 -0.00251.0000 -0.00371.0000 -0.00501.0000 -0.00620.9999 -0.01250.9998 -0.01880.9997 -0.02510.9995 -0.03130.9980 -0.06270.9956 -0.09400.9921 -0.12530.9877 -0.15640.9546 -0.2994。