我是matlab的新手,我正在尝试用数字方式解决以下系统:
我可以解决单个S的问题,但是我需要在N = 1000(我从1到N运行)的情况下解决它,我不知道如何扩展我的代码。
clearvars;
tSpan = [0 10];
S0 = [1/2*sind(45)*cosd(45) 1/2*sind(45)*sind(45) 1/2*cosd(45)];
[t,S] = ode45(@eom,tSpan,S0);
plot(t,S(:,1),t,S(:,2),t,S(:,3))
legend('Sx','Sy','Sz')
%plot(S(:,1),S(:,2));
在文件eom.m中
function dSdt = eom(t,S)
G=5;
k=1;
deltax = -G*k*S(1);
deltay =-G*k*S(2);
B(1) = 2*k*deltax;
B(2) = 2*k*deltay;
B(3) = k*k;
dSdt = [B(2)*S(3)-B(3)*S(2);B(3)*S(1)-B(1)*S(3);B(1)*S(2)-B(2)*S(1)];
end