我正在尝试解决类型
的Cauchy问题ý' = A(t)的* Y
是一个与时间相关的方阵,取决于许多参数。
我所做的是定义一个函数(根据需要在一个单独的文件中)
function timedepf=timedep(time,y,L,t,gamma,Rx,Ry,T)
a=zeros(3*L);
for j=1:L
a(j,j+1)=-t;
a(j+1,j)=-t;
a(L,1)=-t;
a(1,L)=-t;
a(L+j,L+j+1)=-t;
a(L+j+1,L+j)=-t;
a(L+L,L+1)=-t;
a(L+1,L+L)=-t;
a(2*L+j,2*L+j+1)=-t;
a(2*L+j+1,2*L+j)=-t;
a(2*L+L,2*L+1)=-t;
a(2*L+1,2*L+L)=-t;
a(j,L+j)=Rx*cos(2*pi*time/T)*exp(-1i*gamma*j);
a(L+j,j)=Rx*cos(2*pi*time/T)*exp(1i*gamma*j);
a(L+j,2*L+j)=Rx*cos(2*pi*time/T)*exp(-1i*gamma*j);
a(2*L+j,L+j)=Rx*cos(2*pi*time/T)*exp(1i*gamma*j);
a(2*L+j,j)=Ry*sin(2*pi*time/T)*exp(-1i*gamma*j);
a(j,2*L+j)=Ry*sin(2*pi*time/T)*exp(1i*gamma*j);
end
timedepf=a*y;
(请不要关心A的实际形式,它只是一个3 * L X 3 * L方阵),然后调用求解器
time_span=[0 T];
[time,V]=ode45(@(time,V)timedep(time,V,L,t,gamma,Rx,Ry,T),time_span,V0);
其中V0是合适的3 * L X 3 * L初始条件。然后我收到了错误
Error using *
Inner matrix dimensions must agree.
Error in timedep (line 23)
timedepf=a*y;
Error in @(time,V)timedep(time,V,L,t,gamma,Rx,Ry,T)
Error in odearguments (line 88)
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode45 (line 114)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
Error in Pumping (line 65)
[time,V]=ode45(@(time,V)timedep(time,V,L,t,gamma,Rx,Ry,T),time_span,V0);
我无法找出错误的地方。你能帮我吗?
非常感谢!