代数方程和微分方程求解
第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)的形式,设定特解的形式。
微分方程解析解方法总结

微分方程解析解方法总结微分方程是数学中的重要概念,它描述了自然界中各种变化的规律。
解析解是指能够用一种或多种函数表示出的微分方程的解。
本文将总结一些常见的微分方程解析解方法。
一、变量分离法变量分离法适用于可将微分方程中的变量分离的情况。
具体步骤如下:1. 将微分方程移项,将所有含有未知函数的项放在方程的一边,将不含未知函数的项放在另一边。
2. 对方程两边同时积分,得到两个不定积分。
3. 对两个不定积分进行求解,得到解析解。
二、常数变易法常数变易法适用于形如齐次线性微分方程的情况。
具体步骤如下:1. 假设微分方程的解为y=C(x)f(x),其中C(x)为待定常数函数,f(x)为未知函数。
2. 将假设的解代入微分方程,得到一个关于C(x)和f(x)的方程。
3. 通过求解该方程,得到C(x)和f(x)的表达式。
4. 将C(x)f(x)作为微分方程的解析解。
三、齐次方程法齐次方程法适用于形如齐次线性微分方程的情况。
具体步骤如下:1. 将微分方程改写为dy/dx=g(y/x),其中g为一元函数。
2. 令y=ux,将微分方程转化为关于u和x的方程。
3. 对关于u和x的方程进行求解,得到u的表达式。
4. 将u=x/y代入y=ux,得到微分方程的解析解。
四、特征方程法特征方程法适用于形如二阶常系数线性齐次微分方程的情况。
具体步骤如下:1. 将二阶微分方程写成特征方程r^2+pr+q=0的形式。
2. 求解特征方程,得到两个根r1和r2。
3. 根据根的情况,可得到微分方程的解析解的形式。
五、拉普拉斯变换法拉普拉斯变换法适用于解决常系数线性微分方程的情况。
具体步骤如下:1. 对微分方程两边同时进行拉普拉斯变换。
2. 根据拉普拉斯变换的性质,将微分方程转化为代数方程。
3. 求解代数方程,得到解析解的拉普拉斯反变换。
通过以上总结,我们可以看到不同类型的微分方程可以采用不同的解析解方法来求解。
在实际应用中,选择合适的方法能够提高解题的效率和准确性。
微分方程几种求解方法

微分方程几种求解方法微分方程是数学中重要的概念之一,用于描述变量之间的函数关系。
求解微分方程是数学和工程中的常见问题。
根据问题的性质和条件,有多种方法可以用来求解微分方程,下面将介绍几种常见的求解方法。
1.变量分离法:变量分离法是求解一阶常微分方程的常用方法。
它的基本思想是将微分方程中的变量分离,然后进行积分。
具体步骤是将微分方程写成形式dy/dx=f(x)g(y),然后将方程变换为g(y)dy=f(x)dx,再两边同时积分,即可得到方程的解。
这种方法适用于一阶常微分方程,如y'=f(x)。
2.齐次方程方法:齐次方程是指微分方程中不包含任意常数项的方程。
对于齐次方程可以使用变量代换法进行求解。
具体的步骤是将微分方程中y的函数形式换成u,然后进行代换,将微分方程变为可分离变量的形式。
然后用变量分离法来求解,最后再进行反代还原,得到原方程的解。
这种方法适用于一阶齐次常微分方程,如dy/dx=f(y/x)。
3.线性方程方法:线性微分方程是指微分方程中只有一阶导数,并且函数关系是线性的。
线性方程可以使用常数变易法或者待定系数法来进行求解。
常数变易法的基本思想是假设方程的解具有特定的形式,然后将其带入方程,通过确定待定的常数来求解。
待定系数法的基本思想是假设方程的解是一组形式已知的函数的线性组合,然后通过确定待定系数来求解。
这些方法适用于一阶线性常微分方程,如dy/dx+a(x)y=b(x)。
4.积分因子法:积分因子法是一种用于求解一阶非齐次线性常微分方程的方法。
它的基本思想是通过引入一个合适的因子,将一阶非齐次线性微分方程转化为恰当微分方程,从而利用变量分离法来求解。
具体步骤是先将非齐次方程写成标准形式dy/dx+p(x)y=q(x),然后通过选择合适的积分因子μ(x)来将方程转为恰当微分方程(即满足(dμ(x)/dx)y+p(x)μ(x)=q(x)),再对该恰当微分方程进行积分,即可得到原方程的解。
微分方程的求解原理

微分方程的求解原理
微分方程的求解原理主要分为两种方法:解析法和数值法。
1. 解析法
解析法是指通过数学分析和推理,将微分方程转化为代数方程或三角方程等形式,然后通过求解这些方程得到微分方程的解。
对于一阶微分方程,其解析解可以通过分离变量法、积分因子法、幂级数法等方法求解。
例如,对于形如y'=f(x)y的一阶微分方程,可以通过分离变量法得到y=,其中f(x)为已知函数。
对于二阶及以上阶数的微分方程,其解析解通常比较复杂,需要通过特殊的技巧和方法求解。
例如,对于二阶微分方程y''+p(x)y'+q(x)y=r(x),可以通过常数变易法、特征方程法、积分因子法等方法求解。
2. 数值法
数值法是指将微分方程转化为差分方程,通过数值计算方法求解得到近似解。
对于一阶微分方程,可以通过欧拉法、龙格-库塔法等数值方法求解。
对于非线性微分方程,可以通过隐式方法、显式方法、自适应方法等数值方法求解。
对于高阶微分方程,可以通过矩阵方法、迭代法、谱方法等数值方法求解。
例如,对于二阶微分方程y''+p(x)y'+q(x)y=r(x),可以通过矩阵方法得到y(x)=,其中c_n为待定系数,需要通过数值计算求解。
无论是解析法还是数值法,都需要遵循一些基本的原则,例如对于线性微分方程,需要满足线性叠加原理和齐次解原理;对于非线性微分方程,需要通过分析其特征方程和根的性质,确定其解的存在性和唯一性等。
同时,在求解过程中还需要注意数值计算的精度和稳定性等问题,以保证解的准确性和可靠性。
微分方程的经典解法

01
02
03
非线性变量代换法
变量代换法的应用
变量代换法在解决各种实际问题中有着广泛的应用,如物理、工程、经济等领域。
通过选择适当的代换变量,可以简化复杂的微分方程,从而更方便地求解。
变量代换法是解决微分方程的一种重要技巧,尤其在处理非标准形式的微分方程时非常有效。
01
高阶非线性微分方程的解法通常包括迭代法、摄动法和数值方法等。
02
迭代法是通过不断迭代方程的解来逼近真实解,常用的方法有牛顿迭代法和欧拉迭代法等。
03
摄动法是将非线性微分方程转化为摄动方程,然后通过小参数展开求解。
04
数值方法是通过离散化微分方程,然后使用计算机求解离散化后的方程组。
高阶微分方程在物理、工程、经济等领域有广泛应用,如振动分析、控制系统、信号处理等。
04
积分因子法
积分因子法是一种求解微分方程的方法,通过引入一个积分因子来消除方程中的导数项,从而将微分方程转化为代数方程进行求解。
积分因子法适用于可分离变量、线性、部分线性以及某些非线性微分方程。
积分因子法的关键是找到一个函数,使得该函数与微分方程的每一项相乘后,能够消去方程中的导数项。
方法概述
高阶线性微分方程的一般形式为$y^{(n)}(x) + a_{n-1}(x)y^{(n-1)}(x) + cdots + a_0(x)y(x) = 0$。
变量分离法是将方程转化为多个一阶微分方程,然后分别求解。
幂级数法是通过将解表示为幂级数的形式,然后代入初始条件求解系数。
高阶非线性微分方程的解法
02
通过引入新变量 (u = ax + by),可以将原方程转化为 (y^{prime} = frac{1}{a} f(u))。
微分方程求解

求微分方程的解一、 问题背景实际应用问题通过数学建模所归纳而得到的方程,绝大多数都是微分方程,真正能得到代数方程的机会很少.另一方面,能够求解的微分方程也是十分有限的,特别是高阶方程和偏微分方程(组).这就要求我们必须研究微分方程(组)的解法,既要研究微分方程(组)的解析解法(精确解),更要研究微分方程(组)的数值解法(近似解).对微分方程(组)的解析解法(精确解),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))。
mathematica引用方程的解

mathematica引用方程的解Mathematica引用方程的解
在Mathematica中,可以使用Solve和DSolve函数分别求解代数方程和微分方程。
1. 求解代数方程
对于代数方程,使用Solve函数。
例如,求解x^2 - 3x + 2 == 0:
```
Solve[x^2 - 3x + 2 == 0, x]
{{x -> 2}, {x -> 1}}
```
输出结果显示方程有两个解,x=2和x=1。
2. 求解微分方程
对于微分方程,使用DSolve函数。
例如,求解y'[x] == y[x]:
```
DSolve[{y'[x] == y[x]}, y[x], x]
{{y[x] -> C[1] E^x}}
```
输出结果给出了微分方程的通解y(x) = C*e^x,其中C是任意常数。
3. 约束条件求解
有时需要给出初始或边界条件,可以将它们作为附加方程一同传递给Solve或DSolve。
例如,对于y''[x] + y[x] == 0, y[0] == 1, y'[0] == 0:
```
sol = DSolve[{y''[x] + y[x] == 0, y[0] == 1, y'[0] == 0}, y[x], x]
{y[x] -> Cos[x]}
```
解包含了满足初始条件的特解y(x) = cos(x)。
Mathematica提供了强大的符号计算能力,可以方便地求解各种复杂的方程。
实验报告—代数方程与微分方程求解

实 验 报 告 四代数方程求解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]内的所有根。
微分方程分类及解法

微分方程分类及解法微分方程是数学中重要的一类方程,广泛应用于自然科学、工程、社会科学等领域中的各种问题。
在掌握微分方程的基本概念和解法后,我们可以更好地理解实际问题中的潜在规律和机理。
本文将介绍微分方程的分类及解法。
一、微分方程的分类微分方程可分为常微分方程和偏微分方程两类。
常微分方程是只有一个自变量的函数的微分方程,即只与时间、位置、速度等单一变量有关。
常微分方程按阶次可分为一阶常微分方程和高阶常微分方程两类。
一阶常微分方程的一般形式为:$$\frac{dy}{dx} = f(x,y)$$其中y是自变量x的函数,f(x,y)是给定的函数。
高阶常微分方程可表示为:$$F(x,y,y',y'',...y^{(n)})=0$$其中,y是自变量x的函数,n代表微分方程的阶数,y', y'' ,..., y^{(n)}分别表示y的一阶、二阶、n阶导数。
偏微分方程是包含多个自变量的函数的微分方程,通常是用来描述物理现象中的区域上的行为和变化。
偏微分方程按类型可分为椭圆型偏微分方程、抛物型偏微分方程和双曲型偏微分方程。
椭圆型偏微分方程形式为:$$A\frac{\partial^2u}{\partial x^2}+B\frac{\partial^2u}{\partial x\partial y}+C\frac{\partial^2u}{\partial y^2}=0$$该方程描述的是各方向的扩散速度都一样的过程,比如稳态情况下的热传导方程。
抛物型偏微分方程形式为:$$\frac{\partial u}{\partial t} = a\frac{\partial^2u}{\partialx^2}+b\frac{\partial u}{\partial x}+cu$$该方程描述的是运动物体的一维热流方程、空气粘弹性和海浪向上传播等。
双曲型偏微分方程形式为:$$\frac{\partial^2u}{\partial t^2}=a\frac{\partial^2u}{\partialx^2}+b\frac{\partial u}{\partial x}+cu$$该方程描述的是颤动或波动过程,比如振动问题或波动方程等。
微分方程求解方法总结

微分方程求解方法总结可分离变量法:对于一个解析方程,如果它的可分离变量都是独立的,即为可分离变量方程,这类方程称为可分离变量方程。
它具有代数解的形式,所以用来求解微分方程比较简便、迅速。
下面介绍几种常用的可分离变量方程求解方法:代入消元法:方程的一般解x, y均不能确定,只有通过变换可得到一些离散点,对这些离散点先进行适当的变换,使它们成为含参数的代数式x, y,然后利用方程的特征方程,去除未知函数的特征根,就可以将其变为x, y两个具体数值的解。
因此代入消元法是解可分离变量方程的基本方法之一。
2。
迭代法:也称直接法,是一种重要的微分方程求解方法。
其主要思想是从初始点出发,经过若干次迭代计算,最终获得近似解或精确解。
下面介绍几种常用的迭代公式: 1。
抛物线法:其中S是开口向上的抛物线,△y是与s轴正半轴相切的直角三角形, 3。
梯形法:将微分方程的开口向上的方程转化为向下的方程,即s=-x+y,当出现开口向上或向下的抛物线时,使用梯形法求解。
4。
极坐标法:是一种高效、精确的求解方法。
5。
零差异曲线法:是根据实验的原理,运用数学工具,建立某种关系式,由该式求解微分方程的一种方法。
由于零差异曲线在任何时刻都存在,可以选取许多近似解,但是总有一个误差范围。
6。
参数法:求解方程的某些近似解。
利用解析法求解无限阶微分方程时所采用的各种方法,只能给出方程的近似解,而不能提供方程的精确解。
只有在用计算机求解时,才能给出方程的精确解,这种方法也称为数值解法。
计算机求解微分方程的方法有很多,目前,有限元法、差分法和有限差分法等,它们都是近似解,对于非线性微分方程,还没有找到一种准确、简单而又快速的方法。
6。
对偶原理:当已知的一个方程可以有两个或两个以上的实根,且每一个实根都可以用另外一个方程表示,而且其系数互为相反数时,则称此微分方程对应于一个双变量齐次线性方程组,并记为gx=n+jx,式中a为未知函数, n为变量个数, m为待定系数,jx是满足方程的所有的系数,只要能够给出两个方程的解,而不管这两个解怎样相同,那么他们必定满足这个对偶方程。
代数方程和微分方程求解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
也可以利用下面的语句求解
>>
用拉普拉斯变换求解微分方程的过程

用拉普拉斯变换求解微分方程的过程拉普拉斯变换是一种将时间域函数转换为复频率域函数的方法,它在求解微分方程中有着广泛的应用。
下面将介绍用拉普拉斯变换求解微分方程的过程。
首先,我们需要将微分方程转换为代数方程。
假设我们要求解的微分方程为:y''(t) + 2y'(t) + 5y(t) = f(t)其中,y(t)为未知函数,f(t)为已知函数。
我们可以将该微分方程转换为拉普拉斯域中的代数方程:(s^2 Y(s) - s y(0) - y'(0)) + 2(s Y(s) - y(0)) + 5Y(s) = F(s)其中,Y(s)为y(t)的拉普拉斯变换,y(0)和y'(0)分别为y(t)在t=0时的初值和初导数,F(s)为f(t)的拉普拉斯变换。
接下来,我们需要解出Y(s)。
将上式变形可得:Y(s) = (s y(0) + y'(0) + F(s)) / (s^2 + 2s + 5)这样,我们就得到了y(t)的拉普拉斯逆变换:y(t) = L^-1{Y(s)} = L^-1{(s y(0) + y'(0) + F(s)) / (s^2 + 2s + 5)}其中,L^-1表示拉普拉斯逆变换。
最后,我们需要求出y(t)的具体表达式。
这可以通过分解分母的根来实现。
我们可以将分母的根表示为:s^2 + 2s + 5 = (s + 1)^2 + 4因此,我们可以将Y(s)表示为:Y(s) = (s y(0) + y'(0) + F(s)) / [(s + 1)^2 + 4]接下来,我们需要求出Y(s)的部分分式分解。
假设分解结果为:Y(s) = A / (s + 1) + B / (s + 1)^2 + C / (s^2 + 4)将Y(s)代入上式,可以得到:A = lim(s->-1) [(s + 1) Y(s)] = lim(s->-1) [(s + 1) (s y(0) + y'(0) +F(s)) / [(s + 1)^2 + 4]] = y(0) + lim(s->-1) [F(s) / (s + 1)]B = lim(s->-1) [d/ds((s + 1)^2 Y(s))] = lim(s->-1) [d/ds((s + 1)^2 (s y(0) + y'(0) + F(s)) / [(s + 1)^2 + 4])] = y'(0) + lim(s->-1) [(s + 1) F(s) / [(s + 1)^2 + 4]]C = lim(s->0) [s^2 Y(s)] = lim(s->0) [s^2 (s y(0) + y'(0) + F(s)) / [(s + 1)^2 + 4]] = lim(s->0) [s F(s) / [(s + 1)^2 + 4]]最终,我们可以得到y(t)的表达式:y(t) = (y(0) + lim(s->-1) [F(s) / (s + 1)]) e^(-t) + (y'(0) + lim(s->-1) [(s + 1) F(s) / [(s + 1)^2 + 4]]) t e^(-t) + lim(s->0) [s F(s) / [(s + 1)^2 + 4]] sin(2t)其中,e^(-t)和sin(2t)是拉普拉斯逆变换的结果。
方程的三种定义

方程的三种定义
方程是数学中一个重要的概念,它描述了等式中未知数之间的关系。
在不同的数学学科和领域中,方程有不同的定义和解释。
以下是方程的三种常见定义:
1.代数方程:在代数学中,方程是一个含有未知数的等式表
达式。
代数方程通常用字母表示未知数,例如x、y等,
并包含常数、系数和运算符。
解代数方程是找到使等式成
立的未知数值。
代数方程的解可以是实数、复数或根据特
定的域和运算规则确定。
2.微分方程:在微积分和微分方程学中,方程描述了函数之
间的关系以及其导数之间的关系。
微分方程中的未知数是
一个函数,方程涉及到这个未知函数和它的导数。
微分方
程的解是满足给定方程的函数。
它可以表示物理、工程和
科学领域中的动态系统的行为和变化。
3.差分方程:在离散数学和差分方程学中,方程描述了离散
的数学关系,通常用于描述差分方程。
差分方程中的未知
数是序列或离散的数值,方程描述了序列或数值之间的递
推关系。
差分方程的解通常是一个序列,根据给定的递推
关系求解出序列的每个元素。
这三种定义展示了不同数学领域和问题领域中方程的概念和用法。
代数方程是研究代数关系的基础,微分方程用于描述连续系统的变化,而差分方程则用于描述离散系统的变化。
它们共
同构成了数学中方程的重要组成部分,并被广泛应用于自然科学、工程和社会科学等领域。
微分方程的基本概念与解法

THANK YOU
汇报人:XX
适用范围:对于某些复杂的微分方程,通过代换可以将方程转化为更易 于解决的形式 步骤:选择适当的代换变量,将原方程中的未知函数和其导数表示为代 换变量的函数,从而简化方程 举例:对于形如dy/dx=f(x/y)的微分方程,可以通过令y=xu来将其转 化为关于u和x的方程
积分因子法
定义:积分因子 是使微分方程左 边成为全导数的 因子
添加标题
添加标题
添加标题
添加标题
判定方法:通过求解微分方程的解, 分析解的性质,如解的收敛性和稳 定性
应用:非线性微分方程的稳定性在 物理学、工程学、经济学等领域有 广泛应用
稳定性判据
定义:稳定性是指微分方程的解在初始条件下的行为 判据:如果微分方程的解在初始条件下的行为是收敛的,则称该解是稳定的 判断方法:通过分析微分方程的解的性质,如导数的符号等,来判断解的稳定性 应用:稳定性理论在物理学、工程学等领域有广泛应用
优缺点:步进法简单易行,但精度不易控制,需要选择合适的步长和迭代公式
微分方程的稳定性
线性微分方程的稳定性
定义:如果一个线性微分方程的解在某 个初始条件下保持恒定或随时间有规律 地变化,则称该微分方程是稳定的。
判别方法:通过计算微分方程的特征根或 利用Routh-Hurwitz定理来判断稳定性。
原理:基于泰勒级数展开, 通过迭代逼近精确解
定义:是一种用于求解常微 分方程初值问题的数值方法
步骤:包括预估、校正和更 新三个步骤
优点:精度高,稳定性好, 适用于多维问题
Hale Waihona Puke 步进法定义:通过逐步逼近的方法求解微分方程的数值解法
原理:将微分方程转化为一系列离散点上的代数方程,逐步求解
数学微分方程与线性代数

线性方程组
定义:线性方程组 是由n个线性方程 组成的方程组,形 如Ax=b,其中A是 n阶矩阵,x和b是n 维列向量
解法:高斯消元法、 LU分解法等
应用:在物理、工 程、经济等领域都 有广泛应用
性质:解唯一当且 仅当系数矩阵A的行 列式不为0,无解当 且仅当A的行列式为 0
特征值与特征向量
特征值:矩阵 中使得行列式 为0的数,与 特征向量相关
特征值与特征向量:矩阵的特征值是与特征向量对应的标量,通过特征向量可以描述线性变换 的性质。
线性变换的应用:在解决实际问题中,线性变换可以用于描述物理现象、数据分析和图像处理 等领域。
Part Four
线性微分方程
一阶线性微分方程
定义:形如y' + p(x)y =
q(x)的微分方 程称为一阶线
求解方法:常数变 易法、分离变量法 、幂级数法等
应用领域:物理、 工程、经济等领域
线性微分方程组
特点:解的叠加性,即解的 线性组合仍为解
定义:线性微分方程组是一 组相互关联的线性微分方程
求解方法:常数变易法、变 量代换法等
应用:描述多个相互关联的 变量随时间变化的规律
线性微分方程的应用
化学反应:描述化学反应的 动力学过程
偏微分方程的应用
物理学:描述物理现象和规律,如波动、热传导、弹性力学等 经济学:分析市场供求关系、消费和生产函数等 生物学:研究生态系统的平衡、种群增长等 工程学:解决各种实际问题,如桥梁和建筑物的稳定性、航空航天器的设计等
THANKS
汇报人:XX
性微分方程
解法:通过变 量代换将其化 为可分离变量 的微分方程,
然后求解
应用:在物理、 工程等领域有 广泛的应用, 如描述物体的 运动规律、电 路中的电流等
常微分方程与代数方程的联系

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

微分方程的基本原理与求解方法探析微分方程是描述自然界各种现象的数学工具,广泛应用于物理学、工程学、生物学等领域。
本文将探讨微分方程的基本原理以及一些常见的求解方法。
一、微分方程的基本原理微分方程是含有未知函数及其导数的方程。
根据未知函数的个数和方程中出现的最高阶导数的个数,微分方程可以分为常微分方程和偏微分方程两类。
常微分方程中的未知函数只是一个变量的函数,而偏微分方程中的未知函数是多个变量的函数。
微分方程描述了未知函数及其导数之间的关系,其求解的目标是找到满足方程并符合给定条件的未知函数。
在常微分方程中,解的存在唯一性定理确保了解的存在性和唯一性,使得我们能够通过求解微分方程来得到具体的数学表达式。
二、常见的微分方程求解方法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),最后通过拉普拉斯逆变换得到解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
求解非线性方程 f(x)=0 一般利用以下形式的迭代方法: xk+1=(xk) k=1,2,… 如著名的Newton迭代法
xk 1
f ( xk ) f ( xk )
就是众多迭代方法中的一种。
迭代是一种逐步近似的过程,在迭代求根中,需 要给定初始近似 来启动迭代过程。初始近似 的 选取非常重要,这是因为 1.许多方法只有当 接近所求的解时,迭代才收敛。 2.当方程有多个解时, 需要充分靠近所求的解, 才能保证迭代收敛到这个解。 Matlab 中非线性方程求根的函数是 fzero ,调用格 式为 p=fzero(fun,x0); 其中x0是初始值。fun可以是字符串以指示函数名, 也可以是以@开头的函数句柄如 ‘sin’,@sin,@(x)sin(x) 都可以,应用最灵活的是后一种。
例4.6:求解方程
x e dt 1 0
t 2 0
x
function r=rootexample(x0) r=fzero(@rootfun,x0); end function f=rootfun(x) f=x+quad(@(t)exp(-t.^2),0,x)-1; end 运行结果: >> r=rootexample(0.8) r = 0.5219
多项式求根
多项式 在matlab语言中,多项式利用行向量表示。如向量 u=[1 2 0 -5 4] 用作多项式函数时,与多项式
p x 4 2 x 3 5x 4
对应。因此,多项式运算对应向量的相关运算,如 多项式的加法对应向量的加法等。
多项式运算的几个常用函数: P=conv(p1,p2); [d,r]=deconv(p1,p2); Dp=polyder(p); Ip=polyint(p) %多项式乘法 %多项式除法 %多项式的导数 %多项式的积分(原函数)
输出结果:
由上图知,方程组共有20个不同的解。再由方 程组关于x的对称性知只要求出右边的10个。利 用局部放大图(如下图)可得到10个解的近似 值
数值程序: function r=d2solve h=ezplot(@(x,y)(x.^2.*cos(pi*x)+y.^2.*sin (pi*y)-pi/2),[-3,3,-3,3]) str1=get(get(gca,'Title'),'String') set(h,'Color',[1 0 0],'LineStyle',':') hold on h1=ezplot(@(x,y)(x.^2+y.^2+2*sin(2*x.^2.* y).^2-4),[-3,3,-3,3]) str2=get(get(gca,'Title'),'String') title([str1,',',str2])
例4.2:求微分方程
d2y dy 2 2y 0 2 dt dt 的通解和在初始条件y(0)=1,y’(0)=2下的特解
>> y=dsolve('D2y-2*Dy+2*y=0') y = C24*exp(t)*cos(t) + C25*exp(t)*sin(t) >>y=dsolve('D2y-2*Dy+2*y=0',... 'y(0)=1','Dy(0)=2') y = exp(t)*cos(t) + exp(t)*sin(t)
x=[1.72,1.7,1.68,1.68,1.66,1.64,0.36,0.65,0.9,0.88]; y=[-0.63,-0.42,-0.19,0.16,0.42,0.7,-1.85,-1.38,1.7,-1.53]; X=[x;y];m=length(x); r=zeros(2,m); for k=1:m r(:,k)=fsolve(@solfun,X(:,k)); end plot(r(1,:),r(2,:),'ko') end function f=solfun(x) f=[x(1).^2.*cos(pi*x(1))+x(2).^2.*sin(pi*x(2))pi/2 x(1).^2+x(2).^2+2*sin(2*x(1).^2.*x(2)).^2-4]; end
-
线性方程组 Ax=b 可以利用矩阵除法直接得到。但当系数矩阵为稀疏 矩阵时,利用稀疏矩阵函数可以得到更高的计算效 率。 稀疏矩阵利用函数 A1=sparse(A); 定义。
例4.4:求解n阶线性方程组
0 x1 1 2 1 1 2 1 x 2 1 1 2 x3 1 1 0 x 1 0 1 2 n 1 对n=1000,分别利用正常方法和稀疏矩阵求 解,并比较计算时间。
利用对上述图形的局部放大图(下图)估计得到初始 值3.8
程序和结果: >> format long >> r=fzero(@(x)(x.*sin(x)+2*x.*sin(2*x)+3*x .*sin(3*x)+4*x.*sin(4*x)+5*x.*sin(5*x)10),3.8) r = 3.908485977246559
例4.5:求方程 sin(x)+cos(x)=1 的解。初始值依次选取 x0=1,2,3,…,10 。
参考程序: r=zeros(1,10); for x0=1:10 r(x0)=fzero(@(x)(sin(x)+cos(x)-1),x0); end r 运行结果: r = 1.5708 1.5708 1.5708 1.5708 6.2832 6.2832 6.2832 7.8540 7.8540 7.8540 运行结果显示:在一般情况下,迭代收敛到与初始值接 近的根。
参考程序 syms x y z a [u,v,w]=solve(a*x+y+z-1,x+a*y+z-... 2,x+y+a*z-3,x,y,z) 输出结果: u = (a - 4)/(a^2 + a - 2) v = 2/(a + 2) w = (3*a)/(a^2 + a - 2)
也可以利用下面的语句求解 >> s=solve('a*x+y+z-1','x+a*y+z-2','x+y+a*z3','x','y','z') s = x: [1x1 sym] y: [1x1 sym] z: [1x1 sym] 其中,s是结构形数据。可以用下面的方法显示求得的解 >> s.x ans = (a - 4)/(a^2 + a - 2) 方程组的符号求解得到的是解析式。其优点是可以得到含 未知参数的解,有利于进一步的分析。缺点是计算效率低, 且复杂的问题一般得不到解析解。
2 2 x cos(x) y sin(y ) 2 2 2 2 2 x y 2 sin( 2 x y ) 4
的全部实根。
解:首先将两条联立的曲线画出,以确定根(交 点)的个数和位置。 参考程序: h=ezplot(@(x,y)(x.^2.*cos(pi*x)+y.^2.*... sin(pi*y)-pi/2),[-3,3,-3,3]) str1=get(get(gca,'Title'),'String') set(h,'Color',[1 0 0],'LineStyle',':') hold on h1=ezplot(@(x,y)(x.^2+y.^2+2*sin(2*x.^... 2.*y).^2-4),[-3,3,-3,3]) str2=get(get(gca,'Title'),'String') title([str1,',',str2]) grid on
例4.8:求含参数代数方程
f ( x, a) a 3x e
2 0.2 x
e
0.02 x
sin ax
4
的根与参数a的关系。
注:含参数的方程的求解对后续计算非常重要。 如上面例子求参数,使得根取极大等。
function rootfinding x=0:0.01:5;l=1;root_1=zeros(1,length(x)); for a=x; root_1(l)=fzero(@(x)fun(x,a),a); l=l+1; end plot(x,root_1,'-') xlabel('parameters') ylabel('roots') end function f=fun(x,a) f=a-3*x.^2.*exp(-0.2*x)+exp(-0.02*x).*sin(a*x).^4; end
非线性方程组的一般形式为
F(x)=0
其中
f1 ( x1 , x 2 ,, x n ) f 2 ( x1 , x 2 ,, x n ) F ( x) f ( x , x ,, x ) n n 1 2
非线性方程组求解的matlab函数为 x=fsolve(fun,x0); 使用方法完全类似于函数fzero,但对初始条 件的选择要困难的多。 例4.9:求解非线性方程组