精华内容
下载资源
问答
  • 一类二阶微分方程的周期解,赵海坤,,本文基于锥的相关知识,根据上下解的思想,采用单调迭代方法和一类算子不动点理论,证明了给定反序上下解的二阶微分方程的周期解
  • 二阶微分方程统解证明,于力,李峰,对于非线性科学,用非线性微分方程近似解描述,和用微分方程统一显式解(简称统解)描述,两者结果令人震惊:Duffing振子没有双井�
  • 二阶微分方程复函数显式解唯一性证明,于力,李峰,用二阶微分方程的统解方法证明,固定框架的可变结构函数确定后,在初始值和结构函数参数值确定的条件下,二阶微分方程显式解的曲
  • 不含积分项的二阶微分方程边值问题,侯麟,,本文对二阶微分方程边值问题,类似于对初值问题的讨论,讨论了不含积分项的二阶微分方程边值问题,即在边值问题 中,将积分项 �
  • 二阶微分方程开发的渐近理论。 我们为大x的某类系数获得解的形式。
  • 积木式统一求解二阶微分方程,于力,李峰,搜索中国知网,微分方程包括非线性方程,随机方程,时滞方程,都是基于"构造近似解"方法.共同点是不把结果代入方程检验.基于
  • 这是我所要用的二阶微分方程,现已通过试验得到数据,想通过该方程拟合数据得到方程中的四个参数,通过查询有说二阶微分方程转化为差分方程或者积分方程,然后MATLAB编程拟合,想知道如何转化为差分方程或者积分方程...
  • 近几天没事,开始学习一下Matlab S函数求解二阶微分方程,具体方程表达式如下: D(q)q¨+C(q,q˙)q˙=τD\left( q \right)\ddot q + C(q,\dot q)\dot q = \tauD(q)q¨​+C(q,q˙​)q˙​=τ (2.1) τ=Kde˙+Kpe\tau ...

    近几天没事,开始学习一下Matlab S函数求解二阶微分方程,具体方程表达式如下:
    D(q)q¨+C(q,q˙)q˙=τD\left( q \right)\ddot q + C(q,\dot q)\dot q = \tau (2.1)
    τ=Kde˙+Kpe\tau = {K_d}\dot e + {K_p}e (2.2)
    其中,e˙=q˙dq˙\dot e = {\dot q_d} - \dot qe=qdqe = {q_d} - qqq实际输出结果,qdq_d期望输出的结果。
    仿真参数设置如下:
    p=[2.90, 0.76, 0.87, 3.04, 0.87]Tp=[2.90, \space 0.76, \space 0.87, \space 3.04, \space 0.87]^Tq0=[0.0, 0.0]Tq_0 = [0.0,\space 0.0]^Tq˙0=[0.0, 0.0]T\dot q_0 = [0.0,\space 0.0]^Tqd(0)=[1.0, 1.0]Tq_d(0) = [1.0,\space 1.0]^TKp=diag([100, 100])K_p = diag([100, \space 100])Kd=diag([100, 100])K_d = diag([100, \space 100])D(q)=[p1+p2+2p3cosq2, p2+p3cosq2; p2+p3cosq2, p2]D\left( q \right) = [p_1+p_2+2p_3cosq_2,\space p_2+p_3cosq_2;\space p_2+p_3cosq_2,\space p_2]C(q,q˙)=[p3q˙2sinq2, p3(q˙1+q˙2)sinq2; p3q˙1sinq2, 0]C(q,\dot q)=[-p_3\dot q_2 sin q_2,\space -p_3(\dot q_1 + \dot q_2) sin q_2; \space p_3\dot q_1 sin q_2,\space 0]
    编程分析,首先等式(2.1)左右都含有带求解未知数q,所以把等式左右两边都写成S函数求解。等式(2.2)S函数编写分析:左边τ\tau当成输出,是个二维向量。右边有两个输入变量q˙,q\dot q,q,其中q˙d,qd\dot q_d,q_d是常数已知。每个变量又都是二维向量,所以S函数的输入数量 4,输出数量 2,并且输出和输入是有关系的直接反馈参数设置1,其他参数默认。

    编写等式(2.2)分析,等式可以改写成:D(q)q¨=τC(q,q˙)q˙D\left( q \right)\ddot q = \tau - C(q,\dot q)\dot q,这个一个矩阵求解:可以写成两种形式:q¨=inv(D(q))(τC(q,q˙)q˙)\ddot q = inv(D\left( q \right))*\left( \tau - C(q,\dot q)\dot q \right)或者q¨=(D(q))\(τC(q,q˙)q˙)\ddot q = (D\left( q \right)) \backslash \left( \tau - C(q,\dot q)\dot q \right)。第二种求解方法比较快并且精度高,推荐第二种方法求解。由于是个二阶微分方程,且每个变量是二维所以S函数的连续状态变量数是 4,输出分别是变量q,q˙q,\dot q,所以输出变量数也是4,此处的4个输出会作为等式(2.1)的输入,数量必须相同。输入变量是τ\tau,所以输入变量数是 2。由于输出函数sys=mdlOutputs(t,x,u)中,sys = x,x是状态变量,输出和输入没有直接关系,所以直接反馈参数理论上应该设置0,但实际上设置1结果也是正确的,由于能力有限暂时不清楚原因。

    由于CSND插入MATLAB代码失败所以,把文件压缩上传到CSDN共大家参考。
    https://download.csdn.net/download/cswh876908060/12151665
    如有问题或者需要代写,代做,指导,请联系QQ:876908060

    展开全文
  • 二阶微分方程常数解与另类不动点及吸引子,于力,李峰,利用二阶微分方程统解的系统内外关系定律,证明微分方程有常数解。常数解是另类不动点和另类吸引子。无论外部干扰函数跟踪系统频
  • 通过引入参数函数H(t,s)及h(t,s),利用积分平均技巧,积分变换和广义Riccati变换给出了一类二阶微分方程的振动准则。
  • 具偏差变元的二阶微分方程多个正解及其应用,卢高丽,冯美强,为了研究具偏差变元的二阶微分方程边值问题三个正解的存在性,首先给出了边值问题的格林函数表达式并研究了格林函数的性质。进而
  • matlab开发-二阶微分方程组的一阶刚度。运行20个隐式和半隐式方法的一阶初值刚性ODE。
  • 使用龙格库塔法求解二阶微分方程。可以设置仿真步长、初值,轻松更改函数
  • 求助二阶微分方程参数估计-shuju.txt 微分方程r''=-g*r/|^3)-a*r'*b/ r=[x y z]是三维向量 知道t在[50,170]间隔为0.2秒上r的值,但r'不知道,求微分方程的参数a,b,c的值,能不能求出r'的一些值啊?求高手解答,...
  • 一类二阶微分方程解的Julia集的径向分布,陈锦超,李叶舟,本文研究了二阶线性微分方程$f''(z)+A(z)f'(z)+B(z)f(z)=0$的非平凡解$f(z)$的值分布和动力系统性质。当A是具有一个有限亏值的整函数,且B是满�
  • 论文研究-a-N曲线的二阶微分方程建模拟合法.pdf, 为直接应用微分方程模型拟合a N试验曲线,将一般的等时间间隔灰色建模方法推广到非等时间间隔情况,导出了按矩形面积累加...
  • ![图片说明](https://img-ask.csdn.net/upload/202010/30/1604047742_249951.jpg) 二阶微分方程如何求解,对x,不胜感激
  • 采用4阶龙格库塔算法求解二阶微分方程。用VC实现数值分析中的算法。
  • 使用matlab解决二元二阶微分方程组的求解问题,并画出包括极坐标图在内的多幅变量间的关系图
  • 文档研究了RLC电路中二维二阶微分方程组的求解问题
  • MATLAB利用ode求解二阶微分方程 求解微分方程为: MATLAB的m文件代码如下: function xp=order1(t,x) xp=zeros(2,1); %x1=y,x2=y' xp(1)=x(2); xp(2)=(200*t-0.5*(x(2))^2)/(20*t); end 在命令行中调用代码如下:...

    MATLAB利用ode45求解二阶微分方程

    ==================================================

    求解微分方程为:
    在这里插入图片描述

    ==================================================
    MATLAB的m文件代码如下:

    function xp=order1(t,x)
    xp=zeros(2,1);          %x1=y,x2=y'
    xp(1)=x(2);
    xp(2)=(200*t-0.5*(x(2))^2)/(20*t);
    end
    
    

    ==================================================

    在命令行中调用代码如下:

    [t,x]=ode45(‘order1’,[1 40],[0 0]);
    figure;
    plot(t,x(:,1),‘r’);

    ==================================================

    这是一套固定思路,因ode45只能对y’=f(t,y)形式的函数求解,故做变化:
    在这里插入图片描述
    这样变化以后,就可以求解二阶微分方程了。

    plot(t,x(:,1))plot(t,x(:,2)) 可以分别显示 y’y’’ 的解,这里不一一列出,具体过程参考程序

    ==================================================

    运行结果如下:
    在这里插入图片描述

    展开全文
  • 我需要解决以下微分方程组:$\frac{dx_1}{dt} = -k_1x_1+k_2x_2-(K_R)x_1y_1$$\frac{dx_2}{dt} = k_1x_1-k_2x_2-k_3x_2-(K_R)x_2y_2$$\frac{dx_3}{dt} = k_3x_3$$\frac{dy_1}{dt} = -k_1y_1+k_2y_2-(K_R)x_1y_1$$\...

    我需要解决以下微分方程组:

    $\frac{dx_1}{dt} = -k_1x_1+k_2x_2-(K_R)x_1y_1$

    $\frac{dx_2}{dt} = k_1x_1-k_2x_2-k_3x_2-(K_R)x_2y_2$

    $\frac{dx_3}{dt} = k_3x_3$

    $\frac{dy_1}{dt} = -k_1y_1+k_2y_2-(K_R)x_1y_1$

    $\frac{dy_2}{dt} = k_1y_1-k_2y_2-k_3y_2-(K_R)x_2y_2$

    $\frac{dy_3}{dt} = k_3y_3$

    $\frac{dz_1}{dt} = -k_1z_1+k_2z_2+(K_R)x_1y_1$

    $\frac{dz_2}{dt} = k_1z_1-k_2z_2-k_3z_2+(K_R)x_2y_2$

    $\frac{dz_3}{dt} = k_3z_3$

    在t = 0时的初始条件为x2 =1。在时间t = 1时,将化合物y引入y2隔室中,y2 =10。KR的值为1e-3。

    我已经解决了使用矩阵求幂的简单得多的系统,并且想知道是否可以使用类似的方法来解决上述系统。

    我有一个隔间模型系统X,其简化版本如下所示:

    d9c63e7adf918d0bbcd64fb779ef4dc0.png

    然后,微分方程组为:

    e2cc06adca0b0cdea5b69dc20e5e1535.png

    我可以使用以下矩阵方法求解此方程组。

    首先,我编写速率矩阵[R]。从[R]可以得到一个新的矩阵[A],方法是先用每个行元素之和的负数替换[R]的每个对角元素,然后将其转置:

    641831f4fc7e571eb478c8dd2d71a777.png

    我可以通过执行以下操作来计算每个隔间中的数量:

    1c69992c679290f837f7b206551bef11.png

    在python中:

    RMatrix = model_matrix.as_matrix()

    row, col = np.diag_indices_from(RMatrix)

    RMatrix[row, col] = -(RMatrix.sum(axis=1)-RMatrix[row,col])

    AMatrix = RMatrix.T

    def content(t):

    cont = np.dot(linalg.expm(t*AMatrix), x0))

    这种方法对我来说效果很好。

    上面的模型(原始问题)仅比系统X复杂一点。在该模型中,系统X和Y的1和2隔室中的反应物结合在一起,得到系统Z中的产物。

    X + Y-> Z,反应常数为KR。

    2ed139e4c2f4fb12f35c5647d47a410d.png

    ,相应的微分方程组将是:

    83a8d01b9e0c68812acded68cc2ffff8.png

    我正在努力解决这种微分方程组(一阶和二阶)的方法,以便在给定初始条件,KR和传输速率k1,k2,k3等的情况下,在特定时间t计算每个隔室中的量...

    我可以使用一阶微分方程组的矩阵方法求解该问题吗?我在Python中还有哪些其他选择?

    提前致谢!

    解决方案

    好吧,正如评论中指出的那样,您的(更复杂的)ODE是非线性的。因此,矩阵指数方法将不再起作用。

    通常,有两种解决ODE的通用方法。首先,您可以尝试找到一种符号解决方案。在大多数情况下,您将根据有根据的猜测采取某种方法。有几种类型的ODE已知符号解决方案。

    但是,绝大多数ODE并非如此。因此,我们通常用一个数值解决方案来抗衡自己,本质上是基于右侧对ODE进行数值积分。

    结果不是显式函数,而是某个点上函数值的近似值。在python中,您可以使用scipy这种方式来解决ODE。基于您的右侧(除非出现我的任何错误),这看起来像这样:

    import numpy as np

    import scipy.integrate

    k_1 = 1

    k_2 = 1

    k_3 = 1

    K_R = 1

    def eval_f(v, t):

    [x, y, z] = np.split(v, [3, 6])

    return np.array([-k_1*x[0] +k_2*x[1] - (K_R)*x[0]*y[0],

    k_1*x[0] - k_2*x[1] - k_3*x[1] - (K_R)*x[1]*y[1],

    k_3*x[2],

    - k_1*y[0] + k_2*y[1] - (K_R)*x[0]*y[0],

    k_1*y[0] - k_2*y[1] - k_3*y[1] - (K_R)*x[1]*y[1],

    k_3*y[2],

    - k_1*z[0] + k_2*z[1] + (K_R)*x[0]*y[0],

    k_1*z[0] - k_2*z[1] - k_3*z[1] + (K_R)*x[1]*y[1],

    k_3*z[2]])

    initial = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])

    t = np.linspace(0, 1, 10)

    values = scipy.integrate.odeint(eval_f, initial, t)

    # variable x[0]

    print(values[:,0])

    这将产生以下x1值:

    [1. 0.70643591 0.49587121 0.35045691 0.25034256 0.1809533

    0.13237994 0.09800056 0.07338967 0.05557138]

    基于网格点

    [0. 0.11111111 0.22222222 0.33333333 0.44444444 0.55555556

    0.66666667 0.77777778 0.88888889 1. ]

    如果您想了解函数的行为,那么一个积分器可能就足够了。否则,我建议您在教科书中阅读有关ODE的符号方法...

    展开全文
  • 引入首先用高数知识求解非齐次常系数微分方程image.png再利用信号与系统中冲激响应求解验证image.png利用MATLAB求解验证y=dsolve('D2y+3*Dy+2*y=exp(-t)','y(0)=1','Dy(0)=2','t')得出结果:y =(t - 2 exp(-t) + 3) ...

    1.问题:求系统的零状态响应

    image.png

    2.引入

    首先用高数知识求解非齐次常系数微分方程

    image.png

    再利用信号与系统中冲激响应求解验证

    image.png

    利用MATLAB求解验证

    y=dsolve('D2y+3*Dy+2*y=exp(-t)','y(0)=1','Dy(0)=2','t')

    得出结果:

    y =

    (t - 2 exp(-t) + 3) exp(-t)

    根据结果检验,上述手动计算与实际计算机得出结果一致。

    t=0:0.1:20;

    y = (t - 2 .*exp(-t) + 3) .*exp(-t);

    y1=-exp(-t) .*(t - 2 .*exp(-t) + 3) + exp(-t).* (1 + 2.* exp(-t));

    plot(t,y,'r-',t,y1,'b-'),legend('y','y’')

    用MATLAB模拟图像结果:

    image.png

    3.利用Python求解该方程

    通过上述计算,我们利用Python求解系统的零状态响应:

    库函数准备

    scipy

    sympy

    matplotlib

    numpy

    利用sympy进行符号解法

    from sympy import *

    init_printing()

    #定义符号常量x 与 f(x)

    x = Symbol('x')

    f = symbols('f', cls=Function)

    #用diffeq代表微分方程: f''(x) + 3f'(x) + 2f(x) = exp(-x)

    diffeq = Eq(f(x).diff(x, x) + 3*f(x).diff(x) + 2*f(x), exp(-x))

    #调用dsolve函数,返回一个Eq对象,hint控制精度

    print(dsolve(diffeq, f(x)))

    得到符号解,输出如下

    Eq(f(x), (C1 + C2*exp(-x) + x)*exp(-x))

    在带入初始松弛条件:

    C1=-2

    C2=3

    结果与我们计算结果一致。

    利用Numpy和Scipy进行数值解法

    import matplotlib.pyplot as plt

    from scipy import linspace,exp

    from scipy.integrate import odeint, solve_bvp, solve_ivp

    import numpy as np

    '''

    为了兼容solve_ivp的参数形式,微分方程函数定义的参数顺序为(t,y),因此使用odeint函数时需要使参数tfirst=True

    二阶甚至高阶微分方程组都可以变量替换成一阶方程组的形式,再调用相关函数进行求解,因此编写函数的时候,不同于一阶微分方程,二阶或者高阶微分方程返回的是低阶到高阶组成的方程组,

    '''

    def fvdp1(t,y):

    '''

    要把y看出一个向量,y = [dy0,dy1,dy2,...]分别表示y的n阶导,那么

    y[0]就是需要求解的函数,y[1]表示一阶导,y[2]表示二阶导,以此类推

    '''

    dy1 = y[1] # y[1]=dy/dt,一阶导

    dy2 = -3 * y[1] - 2 * y[0] + exp( -1 * t )

    # y[0]是最初始,也就是需要求解的函数

    # 注意返回的顺序是[一阶导, 二阶导],这就形成了一阶微分方程组

    return [dy1,dy2]

    # 或者下面写法更加简单

    def fvdp2(t,y):

    '''

    要把y看出一个向量,y = [dy0,dy1,dy2,...]分别表示y的n阶导

    对于二阶微分方程,肯定是由0阶和1阶函数组合而成的,所以下面把y看成向量的话,y0表示最初始的函数,也就是我们要求解的函数,y1表示一阶导,对于高阶微分方程也可以以此类推

    '''

    y0, y1 = y

    # y0是需要求解的函数,y1是一阶导

    # 返回的顺序是[一阶导, 二阶导],这就形成了一阶微分方程组

    dydt = [y1, -3*y1-2*y0+exp(-t)]

    return dydt

    def solve_second_order_ode():

    '''

    求解二阶ODE

    '''

    t2 = linspace(0,20,1000)

    tspan = (0, 20.0)

    y0 = [1.0, 2.0] # 初值条件

    # 初值[2,0]表示y(0)=2,y'(0)=0

    # 返回y,其中y[:,0]是y[0]的值,就是最终解,y[:,1]是y'(x)的值

    y = odeint(fvdp1, y0, t2, tfirst=True)

    y_ = solve_ivp(fvdp2, t_span=tspan, y0=y0, t_eval=t2)

    plt.subplot(211)

    y1, = plt.plot(t2,y[:,0],label='y')

    y1_1, = plt.plot(t2,y[:,1],label='y‘')

    plt.legend(handles=[y1,y1_1])

    plt.subplot(212)

    y2, = plt.plot(y_.t, y_.y[0,:],'g--',label='y(0)')

    y2_2, = plt.plot(y_.t, y_.y[1,:],'r-',label='y(1)')

    plt.legend(handles=[y2,y2_2])

    plt.show()

    solve_second_order_ode()

    结果:

    image.png

    展开全文
  • 今天介绍一种解纯二次微分方程的方法: 首先来看下面的这种微分方程: y′′=f(y)y''=f(y)y′′=f(y) 其中fff是个实函数,而待解的未知实函数yyy是以ttt为实变量的,y′′y''y′′表示yyy关于ttt的二阶导函数。 求解...
  • 最近在网上搜了很多基于C语言实现龙格-库塔法 求解二阶微分方程的相关文章,发现基本都没解决我的问题,代码也没开源,于是自己找了很多相关资料写了一个具体实现的例子方便大家理解,大家***窥一斑而知全豹*** ...
  • 特征根是复数的二阶微分方程

    千次阅读 2020-11-03 13:18:24
    考虑d2ydx2+a1dydx\frac{d^2y}{dx^2}+a_1\frac{dy}{dx}dx2d2y​+a1​dxdy​ 众所周知,一般求得二阶常系数线性微分方程的通常由以下步骤 根据微分方程
  • 在解如图所示的方程时:![图片说明](https://img-ask.csdn.net/upload/202007/15/1594789822_485207.jpg) 求解x在[0 1]范围内的数值解。 直接使用ode45函数时,未知C(0)值。 使用bvp4c函数时,又不知道如何...
  • 二阶常系数线性微分方程其一般形式, y'' +p y' + qy = f(x) ① 可以写成 => (y' + λ1 * y)' + λ2(y' + λ1 * y) = f(x) (λ1 + λ2 = p , λ1 * λ2 = q) 令 u = (y' + λ1 ...
  • 一阶和二阶导的含义 一阶导问题: 几何意义:曲线斜率 二阶导问题: 意义如下:(1)斜线斜率变化的速度(2)函数的凹凸性。 二阶导数是比较理论的、比较抽象的一个量,它不像一阶导数那样有明显的几何意义,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 833
精华内容 333
关键字:

二阶微分方程