急等,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.的错误,这又是为什么呢?
展开
 我来答
1A541
2012-09-27 · TA获得超过821个赞
知道小有建树答主
回答量:409
采纳率:100%
帮助的人:329万
展开全部
首先有两点错误
n(2)=P-n(1)-n(3);后面的逗号要用英文的逗号
此外
n你一开始是一个常量 后面又有出现 n(2)=P-n(1)-n(3) 这个真没看懂

错误是在Vp=c/n;这里,这里n你还没说明白取什么值,所以出错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大奕忠1Q
2012-09-27 · TA获得超过1.6万个赞
知道大有可为答主
回答量:5494
采纳率:75%
帮助的人:4173万
展开全部
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的初值,你有三个值只给了俩

即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuliangsxd
2012-09-27 · TA获得超过1423个赞
知道小有建树答主
回答量:1174
采纳率:100%
帮助的人:734万
展开全部
正解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式