声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4448|回复: 22

[编程技巧] 求助,关于龙格库塔法的应用

[复制链接]
发表于 2007-4-5 12:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我现在要对自己function定义的f函数y进行龙格库塔运算,命令如下
[t,y]=ode45('f',[0,0.04],[0,0,0,0])   这样能求出数值解,不过我现在要对y(1)进行控制,当y(:,1)>0.2时,我要终止这个函数f的龙格库塔,进入下一个函数k的龙格库塔,初始值是跳出f函数时的y(:,1),y(:,2),y(:3),y(:,4).不知道该如何调用,大虾指教。

ps  [t,y]=ode45('f',[0,0.04],[0,0,0,0]    ——)     ——所指出设立的参数是对应龙格库塔的什么内容的,help上看的不是很懂。(就是定义初始值以后的参数,一般都不定义的。)

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2007-4-6 08:41 | 显示全部楼层
请将你的代码先贴一下.
发表于 2007-4-6 10:57 | 显示全部楼层
[t,y]=ode45('f',[0,0.04],[0,0,0,0]    ——) 中'f'为定义的函数,  ,[0,0.04】为变量t的范围,后面一个是初始值,然后是传递给函数f的参数
本人也是初学Matlab有很多问题啊,
 楼主| 发表于 2007-4-6 14:30 | 显示全部楼层
原帖由 xjzuo 于 2007-4-6 08:41 发表
请将你的代码先贴一下.

我有9个微分方程组,以其中一个微分方程组的龙格库塔开始,初始值均为0,然后每一个步长,对求出的离散值进行判断,判断得到相应的条件后进入另外一个对应的微分方程组,以上次得到的离散值为初始值,取下一个步长(此时时间已经为t=0+t步长了),接着再对此微分方程解出来的微分值进行判断(它的大小),最后进入对应的威风方程组,再以上次得到的离散值为初始值,不断循环,直到走完整个时间区域。


我是机械的本科生,其实就是研究发动机活塞的2阶(横向)运动,活塞在缸体里的状态有九种,每一种都可以进行受力分析,列出响应的微分方程,而那个判断就是判断它的位移有没超过间隙值。不知道有没有高手可以指教,大概就是这样个过程,最终要拟合出它的横向位移曲线和敲击力曲线,现在最不懂的是龙格库塔怎么反复循环,且初市时间和初始值都会相应的改变。


懂的高手请指教,不胜感激。。。
22.jpg
 楼主| 发表于 2007-4-6 14:32 | 显示全部楼层
单点敲击4种情况以下是,上面是自由状态(没碰到缸体)。
33.JPG
 楼主| 发表于 2007-4-6 14:32 | 显示全部楼层
。。。。。。。。
44.JPG
 楼主| 发表于 2007-4-6 14:33 | 显示全部楼层
。。。。。。。。。
88.JPG
 楼主| 发表于 2007-4-6 14:33 | 显示全部楼层
。。。。。。。
99.JPG
 楼主| 发表于 2007-4-6 14:34 | 显示全部楼层
下面是2点敲击4种情况。
55.JPG
 楼主| 发表于 2007-4-6 14:35 | 显示全部楼层
。。。。。。。。。。。
1010.JPG
 楼主| 发表于 2007-4-6 14:35 | 显示全部楼层
。。。。。。。。。。。。。
1111.jpg
 楼主| 发表于 2007-4-6 14:35 | 显示全部楼层
。。。。
1212.JPG
 楼主| 发表于 2007-4-6 14:41 | 显示全部楼层
代码只有关于微分方程组的,至于整个循环编程的思路如上,但不知道怎么写代码,初学者,见谅/。
 楼主| 发表于 2007-4-6 14:42 | 显示全部楼层
而且哪位大虾,如果有相关资料的话 供我参考下的话,真是感激不尽。
发表于 2007-4-6 15:32 | 显示全部楼层
请将"微分方程组及相应参数值"给出,以便别人帮你调试.
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-19 10:34 , Processed in 0.064747 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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