我想解决:
[\mathbf{M} \ddot{ \mathbf{U} }+ \mathbf{C} \dot{ \mathbf{U} }+ \mathbf{K} \mathbf{U} = \mathbf{P}(t) ]
或者,以状态空间形式:
[\dot{\mathbf{Y}}=f(\mathbf{Y},t)]
在哪里:
[\mathbf{Y} = \left[ \begin{array}{ c} \mathbf{U} \ \dot{ \mathbf{U} \end{array} \right] ]
和:
[f( \mathbf{Y} ,t)= \left[ \begin{array}{ c} \dot{ \mathbf{U} }\ \mathbf{M}^{-1} \mathbf{P} (t )- \mathbf{M} ^{-1} \mathbf{C} \dot{ \mathbf{U} }- \mathbf{M} ^{-1} \mathbf{K} \mathbf{U} \end{数组} \right] ]
我在 Julia 中尝试了以下代码,使用
\mathbf{M} = \left[ \begin{array}{cc} 2&0\ 0&1 \end{array} \right];
\mathbf{C} = \left[ \begin{array}{cc} 0&0\ 0& 0 \end{array} \right];
\mathbf{K} = \left[ \begin{array}{cc} 96&-32\ -32& 32 \end{array} \right];
\mathbf{P} (t)= \left[ \begin{array}{ c} 10\ 10 \end{array} \right]
.
using DifferentialEquations
function eq(t,u,du)
v=reshape([u...],Int(length(u)/2),2)
du=reshape([v[:,2];-[10;10]-M\C*v[:,2]-M\K*v[:,1]],length(u))
end
u0=[0;0;0;0];
tspan=(0.0,10.0);
prob=ODEProblem(eq,u0,tspan)
sol=solve(prob)
但是运行这些代码行会导致此错误:
ERROR: InexactError()
我正在使用 Julia 版本。0.5.2。
请帮我。谢谢你。