为什么用matlab解这个微分方程组解不了?
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/17 18:44:31
为什么用matlab解这个微分方程组解不了?
function matlab secondprogram
options = odeset('RelTol',1e-4,'AbsTol',[1e-5 1e-5]);
[Z,Y] = ode45(@factor2,[0 2],[1 0],options);
plot(Z,real(Y(:,1)),'-r',Z,real(Y(:,2)),'-.g');
h = legend('y1','y2',3);
function dy = factor2(t,y)
dy = zeros(2,1); % a column vector
k=[1 1 1 1];
b=[0.7 1];
dy = [ -i*k(1)*y(1) -i*k(2)*y(2)*exp(-i*(b(1)-b(2))*z);
-i*k(3)*y(2) -i*k(4)*y(1)*exp(-i*(b(2)-b(1))*z);]
求大虾们帮一下,就是普通的ode问题,跑不出来。
function matlab secondprogram
options = odeset('RelTol',1e-4,'AbsTol',[1e-5 1e-5]);
[Z,Y] = ode45(@factor2,[0 2],[1 0],options);
plot(Z,real(Y(:,1)),'-r',Z,real(Y(:,2)),'-.g');
h = legend('y1','y2',3);
function dy = factor2(t,y)
dy = zeros(2,1); % a column vector
k=[1 1 1 1];
b=[0.7 1];
dy = [ -i*k(1)*y(1) -i*k(2)*y(2)*exp(-i*(b(1)-b(2))*z);
-i*k(3)*y(2) -i*k(4)*y(1)*exp(-i*(b(2)-b(1))*z);]
求大虾们帮一下,就是普通的ode问题,跑不出来。
![为什么用matlab解这个微分方程组解不了?](/uploads/image/z/15094702-46-2.jpg?t=%E4%B8%BA%E4%BB%80%E4%B9%88%E7%94%A8matlab%E8%A7%A3%E8%BF%99%E4%B8%AA%E5%BE%AE%E5%88%86%E6%96%B9%E7%A8%8B%E7%BB%84%E8%A7%A3%E4%B8%8D%E4%BA%86%3F)
dy = [ -i*k(1)*y(1) -i*k(2)*y(2)*exp(-i*(b(1)-b(2))*z);
-i*k(3)*y(2) -i*k(4)*y(1)*exp(-i*(b(2)-b(1))*z);]
其中的z 是什么啊
再问: 把function dy = factor2(t,y) 改成function dy = factor2(z,y) 也不行啊。。。
再答: function dy = factor2(z,y) % t 改成 z dy = zeros(2,1); % a column vector k=[1 1 1 1]; b=[0.7 1]; dy = [ -i*k(1)*y(1)-i*k(2)*y(2)*exp(-i*(b(1)-b(2))*z); %y(1)后的空格要去了 -i*k(3)*y(2)-i*k(4)*y(1)*exp(-i*(b(2)-b(1))*z)]; %y(2)后的空格要去了 ---------------------------- 运行结果
-i*k(3)*y(2) -i*k(4)*y(1)*exp(-i*(b(2)-b(1))*z);]
其中的z 是什么啊
再问: 把function dy = factor2(t,y) 改成function dy = factor2(z,y) 也不行啊。。。
再答: function dy = factor2(z,y) % t 改成 z dy = zeros(2,1); % a column vector k=[1 1 1 1]; b=[0.7 1]; dy = [ -i*k(1)*y(1)-i*k(2)*y(2)*exp(-i*(b(1)-b(2))*z); %y(1)后的空格要去了 -i*k(3)*y(2)-i*k(4)*y(1)*exp(-i*(b(2)-b(1))*z)]; %y(2)后的空格要去了 ---------------------------- 运行结果