Kは大きな疎行列であり、yはベクトルです。 方法1:: expmはにつながる: K = ...
y = ...
y = expm(-1i*dt*K)*y; %new y
方法2: ode45ができます: K = ...
y = ...
y0 = y;
[T, Y] = ode45(@(t,y)dy(y,K),[t1 t1+dt],y0);
y = Y(end,:).'; %new
の二つの変数で syms x y m g r l J
% x,y are variables, the others are constant
1: 0.5*m*(r^2*x^2+l^2*(Dx-Dy)^2+2*r*l*Dx*(Dx-Dy)*cos(y))+0.5*J*(Dx-Dy)^2=m*g*
(l*sin(x-y)-r*(1-cos(x)));
2: J*(D2x-D2y)+l^2
MUESLIライブラリmfOdeSolveの数値積分関数を使用しようとしていますが、コンパイルエラーが発生します。ユーザーガイドの例(#4-52)で、私はメインプログラムと外部モジュールにコードを分割と同じように : メイン: program ode
use odemod
use fml
real (kind = MF_DOUBLE) :: t_0, t_end