
急等,Matlab解微分方程的问题 20
求解微分方程:functiondn=Dy_4(t,n)dn=zeros(3,1);c=3e8;h=6.6256e-34;n=1.48;Vp=c/n;H=h*Vp;Ip=4...
求解微分方程:
function dn=Dy_4(t,n)
dn=zeros(3,1);
c=3e8;
h=6.6256e-34;
n=1.48;
Vp=c/n;
H=h*Vp;
Ip=484e7;
B32=0.052;
B31=0.948;
Wt=55.7;
W21=1563;
W32=8e5;
tr2=46.8e-3;
tr3=13.7e-3;
t3=1.25e-6;
o26=4.68e-24;
o14=3.1e-25;
Rp=o14*(Ip/H);
Resa2=o26*(Ip/H);
P=1;
n(2)=P-n(1)-n(3);
dn(1)=-Rp*n(1)+n(2)/tr2+W21*n(2)+B31/tr3*n(3)+Wt*n(2);
dn(2)=-Resa2*n(2)-n(2)/tr2-W21*n(2)+B32/tr3*n(3)+W32*n(3)-Wt*n2;
dn(3)=Rp*n(1)+Resa2*n(2)-n(3)/t3;
利用ode15s,
[t,n]=ode15s(@Dy_4,[0,800e-6],[0,0.6]);
plot(t,n)
出现错误Attempted to access n(2); index out of bounds because numel(n)=1.请问该如何解决,同时求大神帮忙把结果做成图~
将上面的n改为N后,出现Input argument "n" is undefined.的错误,这又是为什么呢? 展开
function dn=Dy_4(t,n)
dn=zeros(3,1);
c=3e8;
h=6.6256e-34;
n=1.48;
Vp=c/n;
H=h*Vp;
Ip=484e7;
B32=0.052;
B31=0.948;
Wt=55.7;
W21=1563;
W32=8e5;
tr2=46.8e-3;
tr3=13.7e-3;
t3=1.25e-6;
o26=4.68e-24;
o14=3.1e-25;
Rp=o14*(Ip/H);
Resa2=o26*(Ip/H);
P=1;
n(2)=P-n(1)-n(3);
dn(1)=-Rp*n(1)+n(2)/tr2+W21*n(2)+B31/tr3*n(3)+Wt*n(2);
dn(2)=-Resa2*n(2)-n(2)/tr2-W21*n(2)+B32/tr3*n(3)+W32*n(3)-Wt*n2;
dn(3)=Rp*n(1)+Resa2*n(2)-n(3)/t3;
利用ode15s,
[t,n]=ode15s(@Dy_4,[0,800e-6],[0,0.6]);
plot(t,n)
出现错误Attempted to access n(2); index out of bounds because numel(n)=1.请问该如何解决,同时求大神帮忙把结果做成图~
将上面的n改为N后,出现Input argument "n" is undefined.的错误,这又是为什么呢? 展开
展开全部
首先有两点错误
n(2)=P-n(1)-n(3);后面的逗号要用英文的逗号
此外
n你一开始是一个常量 后面又有出现 n(2)=P-n(1)-n(3) 这个真没看懂
错误是在Vp=c/n;这里,这里n你还没说明白取什么值,所以出错了
n(2)=P-n(1)-n(3);后面的逗号要用英文的逗号
此外
n你一开始是一个常量 后面又有出现 n(2)=P-n(1)-n(3) 这个真没看懂
错误是在Vp=c/n;这里,这里n你还没说明白取什么值,所以出错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
n=1.48;
Vp=c/n;
改成N=1.48;
Vp=c/N;
n(2)=P-n(1)-n(3);最后一个改成英文分号
dn(2)=-Resa2*n(2)-n(2)/tr2-W21*n(2)+B32/tr3*n(3)+W32*n(3)-Wt*n2;
改成
dn(2)=-Resa2*n(2)-n(2)/tr2-W21*n(2)+B32/tr3*n(3)+W32*n(3)-Wt*n(2);
调用时,你的u少给了一个初值
[t,n]=ode15s(@Dy_4,[0,800e-6],[0,0.6,0.8]);前面一个是t的范围,后面是u的初值,你有三个值只给了俩
即可
Vp=c/n;
改成N=1.48;
Vp=c/N;
n(2)=P-n(1)-n(3);最后一个改成英文分号
dn(2)=-Resa2*n(2)-n(2)/tr2-W21*n(2)+B32/tr3*n(3)+W32*n(3)-Wt*n2;
改成
dn(2)=-Resa2*n(2)-n(2)/tr2-W21*n(2)+B32/tr3*n(3)+W32*n(3)-Wt*n(2);
调用时,你的u少给了一个初值
[t,n]=ode15s(@Dy_4,[0,800e-6],[0,0.6,0.8]);前面一个是t的范围,后面是u的初值,你有三个值只给了俩
即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
正解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询