精华内容
下载资源
问答
  • 多项式方程的解析解
    千次阅读
    2020-12-08 14:28:29

    下面是simpy docs的一个例子:>>> from sympy import *

    >>> x = symbols('x')

    >>> from sympy import roots, solve_poly_system

    >>> solve(x**3 + 2*x + 3, x)

    ____ ____

    1 \/ 11 *I 1 \/ 11 *I

    [-1, - - --------, - + --------]

    2 2 2 2

    >>> p = Symbol('p')

    >>> q = Symbol('q')

    >>> sorted(solve(x**2 + p*x + q, x))

    __________ __________

    / 2 / 2

    p \/ p - 4*q p \/ p - 4*q

    [- - + -------------, - - - -------------]

    2 2 2 2

    >>> solve_poly_system([y - x, x - 5], x, y)

    [(5, 5)]

    >>> solve_poly_system([y**2 - x**3 + 1, y*x], x, y)

    ___ ___

    1 \/ 3 *I 1 \/ 3 *I

    [(0, I), (0, -I), (1, 0), (- - + -------, 0), (- - - -------, 0)]

    2 2 2 2

    更多相关内容
  • matlab解多项式方程

    千次阅读 2020-12-12 15:31:38
    我们可以用matlab解多项式方程: anxn+an−1xn−1+...+a1x+a0=0 a_nx^n+a_{n-1}x^{n-1}+...+a_1x+a_0=0 an​xn+an−1​xn−1+...+a1​x+a0​=0 我们可以用solve和roots两个函数来求解。 solve函数 matlab更新后,...

    我们可以用matlab解多项式方程:
    a n x n + a n − 1 x n − 1 + . . . + a 1 x + a 0 = 0 a_nx^n+a_{n-1}x^{n-1}+...+a_1x+a_0=0 anxn+an1xn1+...+a1x+a0=0
    我们可以用solve和roots两个函数来求解。

    1. solve函数
      matlab更新后,网上之前的语法是错误的。
      在这里插入图片描述
      solve函数的语法改成:

      我们需要先声明一下变量,然后再输入方程。
      在这里插入图片描述
      注意,这里在输入方程eqns的时候,要用“==”
      我们也可以直接用
      在这里插入图片描述
      solve函数理论上可以用来解各种形式的方程。

    为了把上述解化成小数形式,我们可以用vpa或者double函数。
    在这里插入图片描述

    1. roots函数
      roots函数是专门用来解多项式的。
      在这里插入图片描述
      在这里插入图片描述
      这个非常简单方便。但是,roots函数只适合用来求多项式。
    展开全文
  • 多项式方程的解法

    万次阅读 2018-06-06 12:09:43
    1、solve函数[x0,y0]=solve(f1==0,f2==0,x,y);注意等式里边必须写双...根据阿贝尔定理,当多项式阶次高于6阶的时候方程没有解析解此时不可以用solve函数进行求阶。2、vpasolve函数vpasolve函数与solve函数使用方法...

    1、solve函数

    [x0,y0]=solve(f1==0,f2==0,x,y);

    注意等式里边必须写双等号,x,y变量可以默认不写,如果写了x,y返回值按写的顺序进行返回。solve可以解决多变量低于6阶的方程,solve函数可以解出解析解。根据阿贝尔定理,当多项式阶次高于6阶的时候方程没有解析解此时不可以用solve函数进行求阶。

    2、vpasolve函数

    vpasolve函数与solve函数使用方法一致。vpasolve函数返回的是数值解。

    3、解析解与数值解比较


    4、非线性方程的求解方法

    以上的函数针对于线性方程的求阶,fsolve函数可以求解非线性的方程。

    fsolve函数的语句形式:

    [x,y,c]=fsolve(f(X),[x1,x2],OPT),

    注:返回值x是求得结果他可以是一个向量;返回值y是误差结果;c是标志位,当c=1是结果无误。

    另外输入变量里面F(X)中的X可以是向量,比如有n个变量可以设置为X=[x(0),x(1),x(2)...x(n-1)]这种形式。

    展开全文
  • matlab求解微分方程解析解

    千次阅读 2022-03-21 10:08:38
    本文将研究微分方程解析解算法,介绍在MATLAB 环境中如何用微分方程求解函数直接得出线性微分方程组的解析解,并对一阶简单的非线性微分方程解析解求解进行探讨,从而得出结论,一般非线性微分方程是没有解析解...
    简 介:本文将研究微分方程的解析解算法,介绍在MATLAB 环境中如何用微分方程求解函数直接得出线性微分方程组的解析解,并对一阶简单的非线性微分方程的解析解求解进行探讨,从而得出结论,一般非线性微分方程是没有解析解的。

    关键词 微分方程解析解MATLAB

    §01


    假设已知常系数线性微分方程的一般描述方法为
    d n y ( t ) d t n + a 1 d n − 1 y ( t ) d t n − 1 + a 2 d n − 2 y ( t ) d t n − 2 + ⋯ + a n − 1 d y ( t ) d t + a n y ( t )   = b 1 d m u ( t ) d t m + b 2 d m − 1 u ( t ) d t m − 1 + ⋯ + b m d u ( t ) d t + b m + 1 u ( t ) \frac{\mathrm{d}^{n} y(t)}{\mathrm{d} t^{n}}+a_{1} \frac{\mathrm{d}^{n-1} y(t)}{\mathrm{d} t^{n-1}}+a_{2} \frac{\mathrm{d}^{n-2} y(t)}{\mathrm{d} t^{n-2}}+\cdots+a_{n-1} \frac{\mathrm{d} y(t)}{\mathrm{d} t}+a_{n} y(t) \\ \ \\ =b_{1} \frac{\mathrm{d}^{m} u(t)}{\mathrm{d} t^{m}}+b_{2} \frac{\mathrm{d}^{m-1} u(t)}{\mathrm{d} t^{m-1}}+\cdots+b_{m} \frac{\mathrm{d} u(t)}{\mathrm{d} t}+b_{m+1} u(t) dtndny(t)+a1dtn1dn1y(t)+a2dtn2dn2y(t)++an1dtdy(t)+any(t) =b1dtmdmu(t)+b2dtm1dm1u(t)++bmdtdu(t)+bm+1u(t)

    其中, a i a_i ai, b i b_i bi均为常数,对零初值问题有 L [ d m y ( t ) / d t m ] = s m L [ y ( t ) ] \mathscr{L}\left[\mathrm{d}^{m} y(t) / \mathrm{d} t^{m}\right]=s^{m} \mathscr{L}[y(t)] L[dmy(t)/dtm]=smL[y(t)],可以对应得出下面的多项式代数方程

    s n + a 1 s n − 1 + a 2 s n − 2 + ⋯ + a n − 1 s + a n = 0 s^{n}+a_{1} s^{n-1}+a_{2} s^{n-2}+\cdots+a_{n-1} s+a_{n}=0 sn+a1sn1+a2sn2++an1s+an=0

    假设代数方程的特征根 s i s_i si均可以求出,且假设它们均相异,则可以得出原微分方程的解析解一般形式为

    y ( t ) = C 1 e r 1 t + C 2 e r 2 t + ⋯ + C n e r n t + γ ( t ) y(t)=C_{1} \mathrm{e}^{r_{1} t}+C_{2} \mathrm{e}^{r_{2} t}+\cdots+C_{n} \mathrm{e}^{r_{n} t}+\gamma(t) y(t)=C1er1t+C2er2t++Cnernt+γ(t)

    其中, C i C_i Ci为待定系数,而 γ ( t ) \gamma(t) γ(t)是满足 u ( t ) u(t) u(t)输入的一个特解。 s i s_i si有重根的情况也有相应的解析解形式。

    从得出的代数方程看,由著名的Abel-Ruffini定理可知,4次及以下的多项式代数方程是能求出根的解析解的,故可以得出结论,低阶线性微分方程有一般意义下的解析解,结合多项式方程的数值解法可以得出一般高次多项式代数方程的数值解法,即高阶线性微分方程的准解析解方法。本文将介绍用 MATLAB 语言及其符号运算工具箱求解线性常系数微分方程解析解的方法。

    §02 数调用格式


    y = dsolve(fun1, fun2, ... , funm)  % 默认自变量t
    y = dsolve(fun1, fun2, ... , funm, 'x')   % 指明自变量x
    
    • 可以同时求解多个方程、已知条件
    • 注意自变量设置,否则可能得出无用的结果

    §03 用举例


    例1:微分方程解析解

    题目: 假设输入信号为 u ( t ) = e − 5 t cos ⁡ ( 2 t + 1 ) + 5 u(t)=\mathrm{e}^{-5 t} \cos (2 t+1)+5 u(t)=e5tcos(2t+1)+5,试求下面微分方程的通解:

    y ( 4 ) ( t ) + 10 y ( 3 ) ( t ) + 35 y ¨ ( t ) + 50 y ˙ ( t ) + 24 y ( t ) = 5 u ¨ ( t ) + 4 u ˙ ( t ) + 2 u ( t ) y^{(4)}(t)+10 y^{(3)}(t)+35 \ddot{y}(t)+50 \dot{y}(t)+24 y(t)=5 \ddot{u}(t)+4 \dot{u}(t)+2 u(t) y(4)(t)+10y(3)(t)+35y¨(t)+50y˙(t)+24y(t)=5u¨(t)+4u˙(t)+2u(t)

    求解:

    syms y(t);
    u = exp(-5*t)*cos(2*t+1)+5;
    uu = 5*diff(u,t,2) + 4*diff(u,t) + 2*u;
    f(t) = diff(y,t,4) + 10*diff(y,t,3) + 35*diff(y,t,2) + 50*diff(y,t) + 24*y;
    ySol = dsolve(f(t)==uu);
    ySol = simplify(ySol)
    

    运行程序可得:

    sy =
     
    C1*exp(-4*t) - (547*exp(-5*t)*sin(2*t + 1))/520 - (343*exp(-5*t)*cos(2*t + 1))/520 + C2*exp(-3*t) + C3*exp(-2*t) + C4*exp(-t) + 5/12
    

    化简可得 解的数学形式:

    y ( t ) = 5 12 − 343 520 e − 5 t cos ⁡ ( 2 t + 1 ) − 547 520 e − 5 t sin ⁡ ( 2 t + 1 ) + C 1 e − 4 t + C 2 e − 3 t + C 3 e − 2 t + C 4 e − t y(t)=\frac{5}{12}-\frac{343}{520} \mathrm{e}^{-5 t} \cos (2 t+1)-\frac{547}{520} \mathrm{e}^{-5 t} \sin (2 t+1)+C_{1} \mathrm{e}^{-4 t}+C_{2} \mathrm{e}^{-3 t}+C_{3} \mathrm{e}^{-2 t}+C_{4} \mathrm{e}^{-t} y(t)=125520343e5tcos(2t+1)520547e5tsin(2t+1)+C1e4t+C2e3t+C3e2t+C4et

    解析解的检验:

    diff(ySol,4) + 10*diff(ySol,3) + 35*diff(ySol,2) + 50*diff(ySol) + 24*ySol - uu;
    simplify(ans)
    

    运行程序可得:

    ans =
     
    0
    

    已知初值条件:
    y ( 0 ) = 3 ,    y ˙ ( 0 ) = 2 ,    y ¨ ( 0 ) = y ( 3 ) ( 0 ) = 0 y(0)=3, ~~\dot{y}(0)=2, ~~\ddot{y}(0)=y^{(3)}(0)=0 y(0)=3,  y˙(0)=2,  y¨(0)=y(3)(0)=0

    syms y(t);
    u = exp(-5*t)*cos(2*t+1)+5;
    uu = 5*diff(u,t,2) + 4*diff(u,t) + 2*u;
    f(t) = diff(y,t,4) + 10*diff(y,t,3) + 35*diff(y,t,2) + 50*diff(y,t) + 24*y;
    Dy = diff(y,t); D2y = diff(y,t,2); D3y = diff(y,t,3);
    cond = [y(0)==3, Dy(0)==2, D2y(0)==0, D3y(0)==0];
    ySol= dsolve(f(t)==uu, cond);
    ySol = simplify(ySol) 
    ezplot(ySol,[0,5])
    
    ▲ 图1 已知初值条件微分方程解的图像

    复杂边界条件:

    y ( 0 ) = 1 / 2 ,    y ˙ ( π ) = 1 ,    y ¨ ( 2 π ) = 0 ,    y ˙ ( 2 π ) = 1 / 5 y(0)=1 / 2, ~~\dot{y}(\pi)=1, ~~\ddot{y}(2 \pi)=0, ~~\dot{y}(2 \pi)=1 / 5 y(0)=1/2,  y˙(π)=1,  y¨(2π)=0,  y˙(2π)=1/5

    syms y(t);
    u = exp(-5*t)*cos(2*t+1)+5;
    uu = 5*diff(u,t,2) + 4*diff(u,t) + 2*u;
    f(t) = diff(y,t,4) + 10*diff(y,t,3) + 35*diff(y,t,2) + 50*diff(y,t) + 24*y;
    Dy = diff(y,t); D2y = diff(y,t,2);
    cond = [y(0)==1/2, Dy(pi)==1, D2y(2*pi)==0, Dy(2*pi)==1/5];
    ySol= dsolve(f(t)==uu, cond);
    ySol = vpa(ySol);
    ySol = simplify(ySol) 
    ezplot(ySol,[0,5])
    
    ▲ 图2 复杂边界条件微分方程解的图像

    例2:求解微分方程组

    题目: 试求解线性微分方程组的解析解

    { x ′ ′ ( t ) + 2 x ′ ( t ) = x ( t ) + 2 y ( t ) − e − t y ′ ( t ) = 4 x ( t ) + 3 y ( t ) + 4 e − t \left\{\begin{array}{l}x^{\prime \prime}(t)+2 x^{\prime}(t)=x(t)+2 y(t)-\mathrm{e}^{-t}\\ \\ y^{\prime}(t)=4 x(t)+3 y(t)+4 \mathrm{e}^{-t}\end{array}\right. x(t)+2x(t)=x(t)+2y(t)ety(t)=4x(t)+3y(t)+4et

    syms x(t) y(t)
    eqn1 = diff(x,t,2) + 2*diff(x,t) == x + 2*y(t) - exp(-t);
    eqn2 = diff(y,t) == 4*x + 3*y(t) + 4*exp(-t);
    [xSol, ySol] = dsolve([eqn1, eqn2])
    

    例3:变系数微分方程

    题目: 变系数微分方程

    ( 2 x + 3 ) 3 y ′ ′ ′ + 3 ( 2 x + 3 ) y ′ − 6 y = 0 (2 x+3)^{3} y^{\prime \prime \prime}+3(2 x+3) y^{\prime}-6 y=0 (2x+3)3y+3(2x+3)y6y=0

    syms y(x)
    eqn = (2*x+3)^3*diff(y,x,3) + 3*(2*x+3)*diff(y,x) - 6*y == 0;
    ySol = dsolve(eqn)
    

    例4:多维微分方程组

    题目:

    { x ′ ′ − x + y + z = 0 x + y ′ ′ − y + z = 0 x + y + z ′ ′ − z = 0 \left\{\begin{array}{l}x^{\prime \prime}-x+y+z=0 \\ \\x+y^{\prime \prime}-y+z=0 \\ \\ x+y+z^{\prime \prime}-z=0\end{array}\right. xx+y+z=0x+yy+z=0x+y+zz=0

    初值: x ( 0 ) = 1 ,    y ( 0 ) = z ( 0 ) = x ′ ( 0 ) = y ′ ( 0 ) = z ′ ( 0 ) = 0 x(0)=1,~~ y(0)=z(0)=x^{\prime}(0)=y^{\prime}(0)=z^{\prime}(0)=0 x(0)=1,  y(0)=z(0)=x(0)=y(0)=z(0)=0

    syms x(t) y(t) z(t)
    eqn1 = diff(x,t,2) - x + y + z == 0;
    eqn2 = x + diff(y,t,2) - y + z == 0;
    eqn3 = x + y + diff(z,t,2) - z == 0;
    Dx = diff(x, t); Dy = diff(y, t); Dz = diff(z, t); 
    cond = [x(0)==1, y(0)==0, z(0)==0, Dx(0)==0, Dy(0)==0, Dz(0)==0];
    [xSol, ySol, zSol] = dsolve([eqn1, eqn2, eqn3], cond)
    
    展开全文
  • 1.1 方程方程组的解析解(solve) 1.2 方程方程组的数值解(fsolve) 1.1 方程方程组的解析解(solve) solve函数的用法 :solve(方程1,方程2……,变量1,变量2……) 多项式合并 : (x+3x-5x)x/4 ...
  • 一般来说,一元高次多项式方程很难有显示解析解,大多使用数值算法计算方程的根,例如牛顿法、割线法等。但这些算法的缺点是计算得到的解受到迭代初始值的影响,另外在某些特定情况下,迭代也有可能不收敛。对于拥有...
  • Javascript写的数据结构实验 多项式运算及线性方程组求解,高分代码
  • 编辑:我从中得到的参考方程中包含了几个错误。...在以下方程式定义了临界点之间的边界线(h,U0)参数空间中的超临界行为:我想消除d_1c(即我不在乎它是什么)并找到这些方程。在简化因素:我只需要给...
  • Rach归纳提出的关于Adomian多项式的四种新算法,在计算机代数系统Maple平台上开发了非线性定系统解析近似的自动推导软件包NAPA,该软件包在完全实现Adomian分解法的基础上,也嵌入了Pade有理逼近技术。...
  • 对于一个多项式方程:a0+a1x+a2x2+...+anxn=0a_0+a_1x+a_2x^2+...+a^nx^n=0a0​+a1​x+a2​x2+...+anxn=0而言,想要准确求得解析解是一件比较困难的事,特别是次数比较高的时候,一般我们可以利用数值方法求得数值解...
  • 本文提出了一种利用遗传算法的同伦分析方法,并将其用于求解x = 0时具有奇异行为的时变Emden-Fowler型方程和波动型方程解析解。这种单一全局方法的优势用于表示一个可靠框架的模型用于克服两个模型在x = 0时的奇点...
  • 提出了一种简单的推导各向同性材料,三维弹性力学问题基本解析解的特征方程解法....进一步对各类多项式形式的基本解析解的独立性进行了讨论.这些工作为构造数值方法中所需的完备独立的解析试函数奠定了基础.
  • 在某些情况下,此递归关系的解决方案可能与正交多项式的众所周知的类别有关,而在其他情况下,解决方案则表示新的多项式类别。 在这项工作中,我们将讨论满足三对角表示要求的各种可解决电位,特别强调具有自旋对称...
  • 多项式 由数或字母的积组成的代数式叫做单项式,单独的一个数或一个字母也叫做单项式。 单项式中的数字因数叫做这个单项式的系数(Coefficient),一个单项式中,所有字母的指数的和叫做这个单项式的次数(Degree of...
  • 将变分迭代法、同伦扰动法和Laplace变换相结合应用于分数阶非线性发展方程近似的求解,其中Laplace变换可准确方便地求得分数阶的Lagrange乘子,而He的多项式可简单地处理方程中出现的非线性项,将新的处理方法应用...
  • 常微分方程解析解(方法归纳)以及基于Python的微分方程数值解算例实现 本文归纳常见常微分方程解析解解法以及基于Python的微分方程数值解算例实现。 如果没有出现意外,本文将不包含解法的推导过程。 常微分方程...
  • 一元N次方程数值

    千次阅读 2021-12-09 17:10:42
    一元N次方程数值 aberth newton-拉弗逊
  • 多项式拟合正弦函数

    2018-10-14 00:11:54
    3. 用解析解求解两种loss的最优解(无正则项和有正则项) 4. 优化方法求解最优解(梯度下降,共轭梯度); 5. 用你得到的实验数据,解释过拟合。 6. 用不同数据量,不同超参数,不同的多项式阶数,比较实验效果。 7....
  • Problem C: 四阶多项式

    2020-05-07 11:52:28
    其中a、b、c、d、e都是int类型的非负整数,是方程的系数。在该类中至少需要以下3个成员函数: void Equation::print():用来输出多项式。输出时,乘号(即*)不输出,幂用表示,如x5表示x的五次方。当所有的系数都...
  • matlab求解多项式的根

    千次阅读 2021-05-06 01:29:13
    matlab 中方程求解的基本命令 roots(p):求多项式方程的根,其中 p 是多项式系数按降幂排列所形成的向量。 solve(fun):求方程 fun=0 的符号,如果不能求得精确......多项式加减运算:Matlab没有提供专门进行多项式 加...
  • Maple笔记2--常微分方程求解

    千次阅读 2021-02-07 02:24:03
    Maple能够显式或隐式地解析地求解许多微分方程求解.在常微分方程求解器dsolve中使用了一些传统的技术例如laplace变换和积分因子法等,函数pdesolve则使用诸如特征根法等经典方法求解偏微分方程. 此外, Maple还提供了...
  • 漫步微积分十九——牛顿法解方程

    千次阅读 2016-08-14 12:40:09
    考虑三次方程 x3−3x−5=0(1)\begin{equation} x^3-3x-5=0\tag1 \end{equation}用正确的方法可能解决这个等式,也就是说,类似于...是二次方程ax2+bx+c=0ax^2+bx+c=0的精确那样,存在一个公式也用基的形式来表示三次
  • 人生有无数的可能性,考研的结果一定不是终点!但做的每一个选择都要坚持到最后!这是对自己、对梦想最大的尊重!用探索方法代替消极迷茫,用寻求技巧抵消杂乱慌张!争分夺秒,竭尽所能!悉心浇灌,静候花开!...
  • [NOIP2014] 解方程 题解

    2020-10-07 16:14:14
    已知多项式方程: a0+a1∗x+a2∗x2+⋯+an∗xn=0a0+a1*x+a2*x^2+\dots+an*x^n=0a0+a1∗x+a2∗x2+⋯+an∗xn=0 求这个方程在 [1,m][1,m][1,m] 内的整数(nnn 和 mmm 均为正整数)。 输入格式 输入共 n+2n + 2n+2 行。...
  • %解析解: A = [2 -9 3 -2 -1; 10 -1 10 5 0; 8 -2 -4 -6 3; -5 -6 -6 -8 -4]; B = [-1 -4 0; -3 -8 -4; 0 3 3; 9 -5 3]; [rank(A), rank([A B])] x0 = null(sym(A)); % 求AX=0的基础解 x_analytical = sym(A)\B; ...
  • 非线性方程的准解析解Slide 1 (of 11) 第6章利用MATLAB语言求解科学运算问题 本课程参考书 薛定宇、陈阳泉,高等应用数学问题的MATLAB求解,2004,2008,清华大学出版社 (用于以后求解问题参考) MATLAB语言符号运算...
  • 因此,获得这种方程的收敛近似解析解已成为一项艰巨的任务或几乎是不可能的。 因此,本研究引入了一种解析方法来求解NDDEs的线性和非线性系统。 所提出的技术是同伦分析方法(HAM)和自然变换方法的结合,并对He...
  • 怎么用Matlab解方程

    万次阅读 2021-04-18 08:52:19
    工具/材料matlab 2016a打开matlab,首先定义变量x:syms x;matlab中solve函数的格式是solve(f(x), x),求解的是f(x) = 0的。...matlab出的根不仅包含实根,也包含复根,例如求解三次方程x^3+1=0:solve(x^3...
  • 上面这个数据点集,显然不再是线性回归,所以这时就可以选择多项式方程进行拟合, 根据这些数据点的规律,我们可能选择二次多项式(会下降)、三次多项式(上升趋势变快)或者平方根函数(上升趋势变缓慢)等等来...
  • 跟范盛金大大不一样(我呸,我又厚颜无耻地跟大数学家比了),我在解一元高次方程方面没有加入自己的任何想法,也就是说,以下代码的实现全是抄现成的算法,因此不屑一提。如果一定要挖些亮点的话,也有,就是我会...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,313
精华内容 1,725
关键字:

多项式方程的解析解