MATLAB中用ODE45解两个2阶非线性常微分方程组,Command Window出现警告:写在补充里面

>>[t,y]=ode45(@RK4_shiyan01,[0:0.001:1000],[0,0,0,0])Warning:Failureatt=1.768731e-001... >> [t,y]=ode45(@RK4_shiyan01,[0:0.001:1000],[0,0,0,0])
Warning: Failure at t=1.768731e-001. Unable to meet integration tolerances without reducing the step
size below the smallest value allowed (4.440892e-016) at time t.
> In ode45 at 371

方程如下:
function dx=RK4_shiyan01(t,x)
a1=4.73001;a2=7.85320;b1=0.005;b2=0.2;b3=10;b4=50;b5=7.6;b6=20;b7=0.05;b8=20;b12=0.8355;b21=-0.8355;e=-7.5451;g11=-12.3025;g22=-46.0525;
h11=-6.1513;h12=-8.3806;h21=-6.7096;h22=-23.0263;d=0.083;
dx=[x(3);x(4);
-(a1^4+(b5^2-0.5*b4)*g11)*x(1)-b4*e*x(2)-b1*a1^4*x(3)-2*b2^0.5*b5*b12*x(4)+d*b6^2*sin(b6*t)*(sinh(a1)-sin(a1)-((cosh(a1)-cos(a1))/(sinh(a1)-sin(a1)))*(cos(a1)+cosh(a1)-2)/a1-b7*g11*x(1)*(2*b5*sin(b8*t)+b2^0.5*b8*cos(b8*t))+b2^0.5*b8*b7*(h11*x(1)+h12*x(2))*cos(b8*t)-2*b2^0.5*b7*b12*x(4)*sin(b8*t)-b3*((x(1)^2+2*b1*x(1)*x(3))*g11+((x(2)^2+2*b1*x(2)*x(4))*g22)*x(1)*g11));
-(a2^4+(b5^2-0.5*b4)*g22)*x(2)-b4*e*x(1)-b1*a2^4*x(4)-2*b2^0.5*b5*b21*x(3)+d*b6^2*sin(b6*t)*(sinh(a2)-sin(a2)-((cosh(a2)-cos(a2))/(sinh(a2)-sin(a2)))*(cos(a2)+cosh(a2)-2)/a2-b7*g22*x(2)*(2*b5*sin(b8*t)+b2^0.5*b8*cos(b8*t))+b2^0.5*b8*b7*(h21*x(1)+h22*x(2))*cos(b8*t)-2*b2^0.5*b7*b21*x(3)*sin(b8*t)-b3*((x(1)^2+2*b1*x(1)*x(3))*g11+((x(2)^2+2*b1*x(2)*x(4))*g22)*x(2)*g22))];
展开
liuliangsxd
2013-05-23 · TA获得超过1423个赞
知道小有建树答主
回答量:1174
采纳率:100%
帮助的人:651万
展开全部
警告的翻译:

无法满足积分条件,因此在时间t=1.768731e-001s处无法积分

帮你运行了一下,原因是在1.768731e-001s处,有个值趋于负的无穷大,因此无法积分

可能的原因:
1.方程出错;
2.时间t的范围;
3.初值
更多追问追答
追问
我的方程是两个2阶的非线性常微分方程组,然后降阶转化成了4个一阶的方程组,函数文件是这样编有错吗?
追答
没错,再看看方程的顺序是不是错了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式