Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2010-01-10, 09:59   #1
wangwei058043
初级会员
 
注册日期: 2009-12-01
帖子: 5
声望力: 0
wangwei058043 正向着好的方向发展
默认 求解微分方程组中出来的问题。

代码:
function main2
[t,y]=ode45(@exam,[0,2],[1;0;1]);
plot(t,y(:,1));
xlabel('t');ylabel('E(t)');
figure
plot(t,y(:,2));
xlabel('t');ylabel('相角');
figure
plot(t,y(:,3))
xlabel('t');ylabel('N(t)');
figure
plot(y(:,1),y(:,3))
xlabel('E(t)');ylabel('N(t)');

function dydt=exam(t,y)
L=3.5*10^(-4);
W=2*10^(-6);
D=0.15*10^(-6);
T=0.29;
Ng=3.8;
Am=2.9*10^3;
Aint=2.0*10^3;
nth=1.2*10^24;
Anr=1.0*10^8;
B=1.2*10^(-16);
C=3.5*10^(-41);
Es=1.6619*10^11;
A=2.3*10^(-20);
Bc=6;
I=2.5*10^(-2);
Wm=2*pi*10^9;
c=3.0*10^8;
q=1.602*10^(-19);
k=0.0356;
f=2.55*10^9;
O=pi*sin(2*pi*f);
Em=0.126*Es;
V=L*W*D;
Vg=c/Ng;
Nth=nth*V;
Vp=Vg*(Am+Aint);
Tl=2*Ng*L/c;
VP=V/T;
dydt=zeros(3,1);
dydt=[0.5*((T*Vg*A/V)*(y(3)-Nth)/sqrt(1+y(1)^2/Es^2)-Vp)*y(1)+k*Em*cos(O-y(2))/Tl;
      0.5*Bc*((T*Vg*A/V)*(y(3)-Nth)/sqrt(1+y(1)^2/Es^2)-Vp)+k*Em*sin(O-y(2))/(Tl*y(1))-Wm;
      I/q-(Anr+B*(y(3)/V)+C*(y(3)/V)^2)*y(3)-((T*Vg*A/V)*(y(3)-Nth)/sqrt(1+y(1)^2/Es^2))*VP*y(1)^2];
引用:
上面是编写的代码,运行很久之后提示Out of memory 。现在想知道有没有什么解决的方法
上传的图像
文件类型: jpg 微分方程组.JPG (15.7 KB, 1 次查看)
wangwei058043 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 23:46


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.