首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >求解耦合振子的运动方程

求解耦合振子的运动方程
EN

Stack Overflow用户
提问于 2020-11-22 14:01:37
回答 1查看 367关注 0票数 0

这个问题问的是一个系统,它有两个质量,每个质量连接两个弹簧,看起来像这样:

%s M1 %s M2 %s

外部弹簧具有弹簧常数kb,而内弹簧具有常数k。我写了一些代码来寻找系统的正常模式,我得到的频率是0.160,我非常确定这是正确的。然而,当我试图用线性代数解决同样的问题时,我得到了-1.2和-1.0的特征值。我也不太明白如何编写代码,因为到目前为止,我的运动方程不适合任何python代码示例,我也不知道如何将矩阵d^2/dt^2X传递给eigh()函数。运动方程是:

d^2/dt^2 X= AX,其中X是向量,A是具有质量和弹性常数的矩阵。

下面是我写的代码:

代码语言:javascript
复制
from scipy import linalg as LA

A = np.array([[(-1/m1)*(kb+ks),(1/m1)*ks],[(1/m2)*ks,(-1/m2)*(kb+ks)]])
w,v = LA.eigh(A)
print(w)
print(v)
EN

回答 1

Stack Overflow用户

发布于 2020-11-25 04:27:09

通过添加每个质量的速度作为变量,将二阶系统重塑为一阶常微分方程组(dx/dt = Cx)。看看https://scipy-cookbook.readthedocs.io/items/CoupledSpringMassSystem.html吧。关于特征值/特征向量,必须考虑C矩阵的特征值/特征向量,而不是A矩阵的特征值/特征向量,然后直接得到模态。

我在这里为一个类似的系统写了一个代码:https://scicomp.stackexchange.com/questions/36357/system-of-second-order-odes-runge-kutta-4th-order/36358?noredirect=1#comment70848_36358

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64951136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档