24小时热门版块排行榜    

查看: 312  |  回复: 2

wyjjf

新虫 (正式写手)

[交流] 如何设置使程序运行下去呢?

【 Failure at t=5.422028e-006.  Unable to meet integration tolerances without reducing the step size below the smallest value allowed (1.355253e-020) at time t.】针对这一句,可否人为的设置,使程序能够继续运行下去呢?
比如减小step size?
或增大integration tolerances?


我要t知道360,现在连0.1都不到啊!!!!!

如何设置使程序运行下去呢?
步长太小.jpg
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wyjjf

新虫 (正式写手)

程序
ODE45_main:

clc;clear
tspan=[0,180];
y0=[1e-5;0;0;0;0];
[t,y]=ode45('ODE45_fun',tspan,y0);

[m,n]=size(y);
for i=1:m
    y(i,6)=-178075801.6*y(i,4)*y(i,5)+490910.1296*y(i,3)*y

(i,2)+1128974.05+7481.104004*sin(2.047*t(i));
    %sin(2.047*t);
%    y(i,4)=-3*y(i,2)*y(i,3)-4*y(i,1)*y(i,3)+8*y(i,1)*y(i,3);
end
data=[t,y];
save ODE45_data.txt data -ascii
subplot(2,3,1),plot(t,y(:,1)),title('y(1)')
Xlabel('t');Ylabel('y');
subplot(2,3,2),plot(t,y(:,2)),title('y(2)')
Xlabel('t');Ylabel('y');
subplot(2,3,3),plot(t,y(:,3)),title('y(3)')
Xlabel('t');Ylabel('y');
subplot(2,3,4),plot(t,y(:,4)),title('y(4)')
Xlabel('t');Ylabel('y');
subplot(2,3,5),plot(t,y(:,5)),title('y(5)')
Xlabel('t');Ylabel('y');
subplot(2,3,6),plot(t,y(:,6)),title('y(6)')
Xlabel('t');Ylabel('y');
% plot(t,y(:,1),'bo',t,y(:,2),'rx',t,y(:,3),'gv',t,y(:,4),'r-');
grid on


ODE45_fun:

function  dy=ODE45_fun(t,y)
dy(1)=-1.918298553*y(3)*y(4)-121.6697369*y(5)*y(2)+0.006472085*y(2)*y

(2)+15.25250926*y(5)*y(5)-0.518363603*sin(2.047*t)+0.001124759;

dy(2)=0.007229182*y(5)*y(1)-0.013867729*y(3)-0.005151943*sin

(2.047*t)+33.43424564*y(4)*y(5)-0.092169794*y(3)*y(2)-0.698266828;

dy(3)=72.10986245*y(2)+0.52129529*y(4)*y(1)+0.025471074*y(3)+921.886526*y(4)/y(1)-

0.47870471*y(4)+0.025471074*y(1)*t-0.38220722*cos(2.047*t)-4.62279911;

dy(4)=-57.37263009*y(5)+0.001053501*y(3)*y(1)+20.28825016/y(1)-0.001053501*y

(3)+0.064741605*y(4)+20.28825016*t-0.006201915*sin(2.047*t)-3651.904822;
  
dy(5)=0.017284293*y(4)+0.00278644*y(1)*y(2)-0.551218454*y(2)*y(5)*y

(5)+0.010839281*y(2)*y(2)*y(5)+0.020353114*cos(2.047*t)+0.110594984;

dy=[dy(1);dy(2);dy(3);dy(4);dy(5)];
2楼2015-04-13 16:33:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wyjjf

新虫 (正式写手)

ode23
ode45
ode113
ode15s
ode23s
ode23t
ode23tb
以上都不行
3楼2015-04-14 08:24:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wyjjf 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见