形如 X ′ = A X + b X'=AX+b X′=AX+b的矩阵微分方程目前在scipy中是没有接口直接处理的,需要自己手动转换一下格式,但对应这种格式MATLAB的ode求解器是支持直接求解的。

本文基于https://wenku.baidu.com/view/8fc76d6bfbd6195f312b3169a45177232f60e4f9.html?re=view
的例子(原例子是用MATLAB求解的,采用scipy求解一组矩阵微分方程:

python程序如下:

from scipy.integrate import solve_ivp
import numpy as np
import matplotlib.pyplot as pltk1 = k2 = k3 = 1
m1 = m2 = m3 = 1
# f1 = f2 = f3 = 5*np.sin(1.25*t)
A = np.array([[0,0,0,1,0,0],[0,0,0,0,1,0],[0,0,0,0,0,1],[-(k1+k2)/m1, k2/m1, 0,0,0,0],[k2/m2,-(k2+k3)/m2,k3/m2,0,0,0],[0,k3/m3,-k3/m3,0,0,0]])
B = np.array([[0,0,0],[0,0,0],[0,0,0],[1/m1,0,0],[0,1/m2,0],[0,0,1/m3]])
# solve dX/dt = A*X+b
def func(t,y):#dX/dt = A*X+b
#     x1,x2,x3,x4,x5,x6 = yf = np.array([5*np.sin(1.25*t),5*np.sin(1.25*t),5*np.sin(1.25*t)])# 主要下面直接用到了列表推导return [np.dot(A[i,:], y)+np.dot(B[i,:],f)  for i in range(6)]N = 30
t_span = (0,N)
t_eval = np.linspace(0,N,1000)
y0 = [0,0,0,0,0,0]sol = solve_ivp(func, t_span, y0, t_eval=t_eval)plt.plot(sol.t, sol.y.T)
plt.grid('on')
plt.show()

结果如下,和原文结果一致:

总结:scipy也是可以求解矩阵微分方程的,只不过需要转换一下格式

scipy求解矩阵微分方程相关推荐

  1. 使用MTL库求解矩阵特征值和特征向量

    关于矩阵的特征值和特征向量求解,大部分的数学运算库都进行了提供,下面是使用MTL库的接口进行封装. #include <mtl/matrix.h> #include <mtl/mtl ...

  2. 如何用计算机求特征值特征向量,利用QR算法求解矩阵的特征值和特征向量

    利用QR算法求解矩阵的特征值和特征向量 为了求解一般矩阵(不是那种幼稚到shi的2 x 2矩阵)的特征值. 根据定义的话,很可能需要求解高阶方程... 这明显是个坑...高阶方程你肿么破... 折腾了 ...

  3. 初等变换法求解λ矩阵的不变因子

    初等变换法求解λ矩阵的不变因子 当然也可以用行列式因子法求解

  4. 7.1 求解矩阵的逆

    求解矩阵的逆 使用线性系统 求解 矩阵的逆 什么是矩阵的逆 ==> 矩阵中 AB=BA=I ,则称B是A的逆矩阵,记作 B = A的负一次方 只有方阵才有逆矩阵 假设矩阵A有逆矩阵,如何求解? ...

  5. 利用QR算法求解矩阵的特征值和特征向量

    利用QR算法求解矩阵的特征值和特征向量 为了求解一般矩阵(不是那种幼稚到shi的2 x 2矩阵)的特征值. 根据定义的话,很可能需要求解高阶方程... 这明显是个坑...高阶方程你肿么破... 折腾了 ...

  6. matlab解方程x 2-x-2=0,matlab用三种方法求解二阶微分方程x''+0.2x'=0.4x=0.2u(t),u(t)是单位阶跃函数,初始状态为0...

    问题描述: matlab用三种方法求解二阶微分方程x''+0.2x'=0.4x=0.2u(t),u(t)是单位阶跃函数,初始状态为0 1个回答 分类: 数学 2014-11-28 问题解答: 我来补答 ...

  7. python解非线性方程组_python scipy求解非线性方程的方法(fsolve/root)

    使用scipy.optimize模块的root和fsolve函数进行数值求解线性及非线性方程,下面直接贴上代码,代码很简单 from scipy.integrate import odeint imp ...

  8. matlab求解时滞微分方程

    matlab求解时滞微分方程,dde23调用格式: sol = dde23(ddefun,lags,history,tspan); –ddefun函数句柄,求解微分方程y'=f(t,y(t),y(t- ...

  9. matlab求微分方程的系数,如何利用matlab求解矩阵系数的二阶微分方程

    M=[2,0;0 1 ];                      %质量矩阵 K=[6 -2;-2 4];                   %刚度矩阵 a=0;b=0; C=a*K+b*M; ...

最新文章

  1. C++ 自己重写Vector
  2. 【Linux网络编程】原始套接字实例:MAC 地址扫描器
  3. Shell for循环
  4. ftp上传图片出现550_FtpClient 实现文件上传
  5. 【转载保存】修改IK分词器源码实现动态加载词典
  6. 【分享-EasyRecovery】删除的文件找不回?不存在的!
  7. 喜欢初音未来的桌面壁纸看过来
  8. 第9章 互相作用的圆球 (《Python趣味创意编程》教学视频)
  9. 数据库修复工具 - DatabaseCompressor 之从9M到900K+
  10. Android自定义ViewGroup、自定义属性及自定义View
  11. html css实验6,(实验六DivCSS网页布局.doc
  12. 上班太无聊,我要考证 之 程序员考证
  13. 计算机怎么远程桌面,电脑怎么打开远程桌面连接功能
  14. 可能是最全的:虚拟机使用失败解决方案汇总
  15. 非常好用的开源矢量地图切片工具
  16. 汽车微控制器芯片F280039CPZRQ1、F280039CSPM、F280039CSPN规格参数
  17. Linux下数据库表结构导入导出
  18. 实现uniapp的app和小程序开发中能使用axios进行跨域网络请求,并支持携带cookie
  19. 同志们,这个积分系统真不是个东西
  20. 试看视频网站的多元化发展

热门文章

  1. python实现网络测速
  2. 关于计算机春联PPT,《春联》PPT课件
  3. 大学宿舍普遍存在的噪声问题
  4. Python相机自动采集图像,然后模板匹配、自动截取保存图片
  5. 2023新华为OD机试题 - 入栈出栈(JavaScript) | 刷完必过
  6. ECSHOP_顺丰_货到付款设置
  7. lxl 大厅协议 -- [libcef部分]
  8. 等额本息和等额本金公式详解
  9. 哈尔滨工程大学考研经验分享(上):择校问题、夏令营问题。
  10. 从数字化转型的成功案例看如何避免失败的七大陷阱(案例很典型)