ode45本身是变步长的呀,怎么设置最小步长?我改用其它ode函数计算都会出现这个警告Warning: Failure at t=5.373174e-001.  Unable to meet integration tolerances without reducing the step size below the smallest value allowed (1.908935e-015) at time t.,用ode4函数算了也出现这个问题,缩小tspan也不行,现贴上我的程序请高手指点。

clear

clc

miu=0.0178;

L=201.6e-3;

R=210e-3;

LD=L/(2*R);

C=0.699e-3;

pofai=C/R;

mg=104860;

m=mg/9.8;

ome=450;

pa=2*miu*ome/(pofai.^2);

Kxx =    6.453356740612708;

Kxy =   -4.133413328965316;

Kyx =1.146014052781378; Kyy = 7.846056548809618;

Dxx =1.145752328144106;Dxy =1.200350375824454;

Dyx =1.200350375824454;Dyy = 2.277131377326176;

KXxx = 4.310137875942596;KXxy =1.621686159880267;KXyy=-32.99946362265302;

DXxx = 84.83808962692011;DXxy =178.9053867925529;DXyy =122.8157676818844;

KYxx = 59.88546585149381;KYxy = 77.19598357923496;KYyy =18.20529335915087;

DYxx = 96.394530935465;DYxy = 237.0037140824726;DYyy = 222.0296129664884;

kxx=(pa*R*L/C)*Kxx*(C/(m*C*ome.^2));

kxy=(pa*R*L/C)*Kxy*(C/(m*C*ome.^2));

kyx=(pa*R*L/C)*Kyx*(C/(m*C*ome.^2));

kyy=(pa*R*L/C)*Kyy*(C/(m*C*ome.^2));

dxx=(pa*R*L/(C*ome))*Dxx*(C*ome/(m*C*ome.^2));

dxy=(pa*R*L/(C*ome))*Dxy*(C*ome/(m*C*ome.^2));

dyx=(pa*R*L/(C*ome))*Dyx*(C*ome/(m*C*ome.^2));

dyy=(pa*R*L/(C*ome))*Dyy*(C*ome/(m*C*ome.^2));

kxxx=(pa*R*L/(C*C))*KXxx*(C*C/(m*C*ome.^2));

kxxy=(pa*R*L/(C*C))*KXxy*(C*C/(m*C*ome.^2));

kxyy=(pa*R*L/(C*C))*KXyy*(C*C/(m*C*ome.^2));

dxxx=(pa*R*L/(C*C*ome))*DXxx*(C*C*ome/(m*C*ome.^2));

dxxy=(pa*R*L/(C*C*ome))*DXxy*(C*C*ome/(m*C*ome.^2));

dxyy=(pa*R*L/(C*C*ome))*DXyy*(C*C*ome/(m*C*ome.^2));

kyxx=(pa*R*L/(C*C))*KYxx*(C*C/(m*C*ome.^2));

kyxy=(pa*R*L/(C*C))*KYxy*(C*C/(m*C*ome.^2));

kyyy=(pa*R*L/(C*C))*KYyy*(C*C/(m*C*ome.^2));

dyxx=(pa*R*L/(C*C*ome))*DYxx*(C*C*ome/(m*C*ome.^2));

dyxy=(pa*R*L/(C*C*ome))*DYxy*(C*C*ome/(m*C*ome.^2));

dyyy=(pa*R*L/(C*C*ome))*DYyy*(C*C*ome/(m*C*ome.^2));

K=[kxx,kxy,kyx,kyy];

D=[dxx,dxy,dyx,dyy];

KX=[kxxx,dxxx,kxxy,dxxy,kxyy,dxyy];

KY=[kyxx,dyxx,kyxy,dyxy,kyyy,dyyy];

exy=0.02;

t_final=10000;

h_opt=odeset;

z0=zeros(4,1);

for i=1:4

z0(i)=1e-6;

end

[t,y]=ode45('Finite_Jeffcott_trance_unbalance',[0,t_final],z0,h_opt,K,D,KX,KY,exy);

function y=Finite_Jeffcott_trance_unbalance(t,z,flag,K,D,KX,KY,rou)

fx=D(1)*z(3)+D(2)*z(4)+K(1)*z(1)+K(2)*z(2)+KX(1)*z(1).^2+2*KX(2)*z(1)*z(3)+KX(3)*z(1)*z(2)+KX(4)*(z(3)*z(2)+z(1)*z(4))+KX(5)*z(2).^2+2*KX(6)*z(2)*z(4);

fy=D(3)*z(3)+D(4)*z(4)+K(3)*z(1)+K(4)*z(2)+KY(1)*z(1).^2+2*KY(2)*z(1)*z(3)+KY(3)*z(1)*z(2)+KY(4)*(z(3)*z(2)+z(1)*z(4))+KY(5)*z(2).^2+2*KY(6)*z(2)*z(4);

Tao=t;

y=[z(3);z(4);

-fx+rou*sin(Tao);

-fy+rou*cos(Tao)];

t

其中,z矩阵为所要求的未知数x和y组成的矩阵z=[x,y,x',y'];

急求高手指点,已经郁闷很久了。

matlab ode45三体问题,小白急求~~关于ode45不能解的问题相关推荐

  1. matlab 旅行商遗传算法,急求蚁群混合遗传算法在matlab上的实现以解决TSP旅行商的问? 爱问知识人...

    建立m文件 function [R_best,L_best,L_ave,Shortest_Route,Shortest_Length]=ACATSP(C,NC_max,m,Alpha,Beta,Rho ...

  2. matlab求解拉普拉斯方程,急求用matlab编写解拉普拉斯方程的程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这么处理狄拉克边界条件,我的精确解和数值解的误差很大部只哪错了 附程序 % examp1a2.m clear all clc N=5;M=5;n=N*M; ...

  3. matlab 不允许函数定义,MATLAB中此上下文中不允许出现函数定义,急求~

    点击查看MATLAB中此上下文中不允许出现函数定义,急求~具体信息 答:从你讲的问题,虽然没讲太清楚,但我推测,你可能写了个脚本程序文件,其中定义了子函数,在运行时就弹出了这个提示.一般情况下,在函数 ...

  4. matlab 数据白化,“matlab对Excel表格数据预处理“急求FastICA 的源程序 matlab,包括数据的预处理(中心化和白化),注释详细点,谢谢!...

    急求FastICA 的源程序 matlab,包括数据的预处理(中心化和白化),注释详细点,谢谢! % function [Ahat2, shat, n_iteration Test] = nc_fas ...

  5. Matlab实现连通域标记算法求图像连通域

    Matlab实现连通域标记算法求图像连通域 连通域 连通域标记算法 连通域 连通区域(Connected Component)一般是指图像中具有相同像素值且位置相邻的前景像素点组成的图像区域(Regi ...

  6. c语言fac函数求n的阶乘,急求C语言编辑题:Cnm=n!/m!(n-m)!其中n,m 由键盘输入。要求设计一个函数fac(n)求某个正整数n 的阶乘。...

    急求C语言编辑题:Cnm=n!/m!(n-m)!其中n,m 由键盘输入.要求设计一个函数fac(n)求某个正整数n 的阶乘. 來源:互聯網  2010-05-29 01:44:10  評論 分類: 電 ...

  7. c语言链表容易犯的错误,急求大牛啊这个容易的链表到底在哪出错了

    急求大牛啊,这个简单的链表到底在哪出错了 #include #include struct list { char str; struct list * next; }; int main() { s ...

  8. c语言编程矩阵主对角线相同,急求!c语言 求N*N矩阵中主对角线和次对角线的元素之和...

    急求!c语言 求N*N矩阵中主对角线和次对角线的元素之和 來源:互聯網  2010-02-24 23:29:06  評論 分類: 電腦/網絡 >> 程序設計 >> 其他編程語言 ...

  9. mysql游标遍历修改_mysql使用游标遍历数据进行批量针对性更新数据,急求mysql大神解答...

    我现在有个数据表ud18,里面有图片上的ID,parentid,objname,现在要针对objname的这些号码进行针对性更新,写存储过程进行父子关系转换,做成树形,就是根据objname将父的id ...

最新文章

  1. 代码工具 | 数据清洗,试试这 8套Python代码
  2. 关于session为什么要持久化?
  3. 好看的按钮组件_一个能决定命运的按钮,你敢来挑战吗?
  4. 访问云服务器储存的mp4_服务器如何存储视频文件格式
  5. SUSE 开启ssh、telnet
  6. Java基础学习总结(72)——提升 java 代码的运行效率
  7. 一次ORACLE启动报错修复的记录
  8. linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(修改配置文件)
  9. windows mysql 自动备份_windows mysql 自动备份的几种方法总结--岁月博客提供
  10. Linux开发_快速定位关键字与变量
  11. Nginx源码阅读 --- http模块 --- TCP连接过程
  12. bigemap地图下载器优势分析
  13. WPS JS宏入门案例集锦
  14. 手把手教你如何删除病毒木马(转)
  15. 【自定义搜索引擎】Google Chrome管理搜索引擎和网站搜索
  16. 深入浅出 SSL/TLS 协议
  17. 魔兽各服务器位置,魔兽世界怀旧服矿点分布位置介绍 全地图采矿位置一览
  18. 【力扣】714. 买卖股票的最好时机含手续费
  19. Proxifier v3.15
  20. 【集成】网络技术的学习-刘俊平

热门文章

  1. 如何成功打jar 包以及运行
  2. 阿蒙:不如回家养猪?
  3. OPPO开放平台上架APP
  4. 8小时8分:2018年天猫双11交易额破1207亿元 已超2016年全天
  5. html看优酷总是加载中,优酷总提示浏览器版本低,看不了视频怎么处理
  6. JAVA计算机毕业设计网上花店(附源码、数据库)
  7. 两点之间最短的距离并不一定是直线(改变一生财运的五句话)
  8. Number([])与Number({})
  9. FTP服务器:如何创建FTP服务器(一)
  10. 追踪IP地址你需要这几款工具加持