查看: 148|回复: 1|关注: 0

[未答复] 在 t=1.665213e-05 处失败。在时间 t 处,若不将步长降至允许的最小值(5.421011e-20)以下,积分公差要求无法满足。

[复制链接]

新手

11 麦片

财富积分


050


9

主题

15

帖子

0

最佳答案
发表于 2020-6-30 21:35:46 | 显示全部楼层 |阅读模式
利用ODE45解微分方程,报错
在 t=1.665213e-05 处失败。在时间 t 处,若不将步长降至允许的最小值(5.421011e-20)以下,积分公差要求无法满足。
请问前辈们这个怎么解决?
clear ;
clc;
f=0.02*10^6;
time=1./f;
ttime=6.*time;
R0=5*10^(-5);
Pv=1.23*10^3;
Pa=2.41*10^5;
sigma=7.42*10^(-2);
rho=1000;
Ki=1.33;
mu=1.31*10^(-3);
P0=1.013*10^5;
pi=3.1415926;
w=2*pi*f;
[t,y]=ode45(@(t,y)qi1( t,y,R0,P0,Pa,rho,sigma,mu,w,Pv,Ki),[0,ttime],[R0,0]);
plot(t,y(:,1)/R0,'r-');
xlabel('t=Time/T');ylabel('Solution R(t)/RO');legend('R=R(t)/RO')


function dydt= qi1( t,y,R0,P0,Pa,rho,sigma,mu,w,Pv,Ki)
%UNTITLED4 此处显示有关此函数的摘要
%   此处显示详细说明
dydt = zeros(2,1);
dydt(1) = y(2);
dydt(2)=((P0+2*sigma/R0)*(R0/y(1))^(3*Ki)-2*sigma/y(1)-4*mu*y(2)/y(1)+......
Pv-(P0-Pa*sin(w*t))/rho/y(1)-(3/2*(y(2)^2)/y(1)));
end

回复主题 已获打赏: 0 积分

举报

新手

11 麦片

财富积分


050


9

主题

15

帖子

0

最佳答案
 楼主| 发表于 2020-6-30 21:58:00 | 显示全部楼层
希望有前辈帮解决一下,小红包备上,感谢
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表