zk1985 发表于 2007-4-5 12:46

求助,关于龙格库塔法的应用

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

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

xjzuo 发表于 2007-4-6 08:41

请将你的代码先贴一下.

zandy 发表于 2007-4-6 10:57

=ode45('f',,    ——) 中'f'为定义的函数,,[0,0.04】为变量t的范围,后面一个是初始值,然后是传递给函数f的参数
本人也是初学Matlab有很多问题啊,

zk1985 发表于 2007-4-6 14:30

原帖由 xjzuo 于 2007-4-6 08:41 发表
请将你的代码先贴一下.
我有9个微分方程组,以其中一个微分方程组的龙格库塔开始,初始值均为0,然后每一个步长,对求出的离散值进行判断,判断得到相应的条件后进入另外一个对应的微分方程组,以上次得到的离散值为初始值,取下一个步长(此时时间已经为t=0+t步长了),接着再对此微分方程解出来的微分值进行判断(它的大小),最后进入对应的威风方程组,再以上次得到的离散值为初始值,不断循环,直到走完整个时间区域。


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


懂的高手请指教,不胜感激。。。

zk1985 发表于 2007-4-6 14:32

单点敲击4种情况以下是,上面是自由状态(没碰到缸体)。

zk1985 发表于 2007-4-6 14:32

。。。。。。。。

zk1985 发表于 2007-4-6 14:33

。。。。。。。。。

zk1985 发表于 2007-4-6 14:33

。。。。。。。

zk1985 发表于 2007-4-6 14:34

下面是2点敲击4种情况。

zk1985 发表于 2007-4-6 14:35

。。。。。。。。。。。

zk1985 发表于 2007-4-6 14:35

。。。。。。。。。。。。。

zk1985 发表于 2007-4-6 14:35

。。。。

zk1985 发表于 2007-4-6 14:41

代码只有关于微分方程组的,至于整个循环编程的思路如上,但不知道怎么写代码,初学者,见谅/。

zk1985 发表于 2007-4-6 14:42

而且哪位大虾,如果有相关资料的话 供我参考下的话,真是感激不尽。

xjzuo 发表于 2007-4-6 15:32

请将"微分方程组及相应参数值"给出,以便别人帮你调试.
页: [1] 2
查看完整版本: 求助,关于龙格库塔法的应用