数学建模社区-数学中国
标题:
求高手指教啊
[打印本页]
作者:
青枫林霰
时间:
2012-8-6 09:35
标题:
求高手指教啊
matlab中遇到ode45(,)是什么意思啊,可以举出例子吗?
作者:
shaox
时间:
2012-8-6 09:47
本帖最后由 shaox 于 2012-8-6 09:53 编辑
5 P( Y8 _5 U% Z# C9 a
6 p; |0 R2 G, ^$ I% N
ode45表示五分之四阶的龙格库塔芬尔格算法
* f3 G( M2 i9 o4 R4 C) d
例2-45 求解描述振荡器的经典的Ver der Pol微分方程
7 v, D$ L5 W: N9 j G, c, r* y/ L
y(0)=1,y’(0)=0
7 w- d( Q! s9 c5 r; |( b5 z: I* h; Q
令x1=y,x2=dy/dt,则
( \: g- Q3 A3 Q
dx1/dt = x2
! M+ _0 w4 G, A3 p( D, Z
dx2/dt = μ(1-(x1)^2)*x2-x1
* m; V2 Q B2 f7 g1 J5 k, U
编写函数文件verderpol.m:
) I; s1 F% s* D3 G4 x/ l) P
function xprime = verderpol(t,x)
- E, T, o0 `; V- i! o+ s |% J
global MU
. A, g/ E9 H- o* ~' Q2 ] l9 ~
xprime = [x(2);MU*(1-x(1)^2)*x(2)-x(1)];
% F2 Z% [8 h4 h
再在命令窗口中执行:
( i' `* k9 B% E" x/ `, ~
>>global MU
! ~2 ~% m6 h8 Q; i5 A
>>MU = 7;
J. N# @& ]" e! J
>>Y0=[1;0]
& f! y( I _8 ^( A) c+ x7 P
>>[t,x] = ode45(‘verderpol’,0,40,Y0);
+ X8 v8 n+ r9 P! ]# ?" E/ x8 g
>>x1=x(:,1);x2=x(:,2);
# v! k; e" m6 R; n2 C7 l
>>plot(t,x1,t,x2)
, ~9 y- J7 `% k- M% M% j
图形结果为图2-20。
h+ \' s2 G; s/ b7 m
. K7 L& p9 F" {0 Y, m
图2-20 Ver der Pol微分方程图
' P9 V# Y" T% s! n
作者:
青枫林霰
时间:
2012-8-6 09:55
有参考书吗?推荐一下啊。我看得有2,3,4阶,没有看到5分之4阶啊。
作者:
shaox
时间:
2012-8-6 10:14
青枫林霰 发表于 2012-8-6 09:55
2 E0 X4 I( x$ O1 x8 s3 w. c: K; o
有参考书吗?推荐一下啊。我看得有2,3,4阶,没有看到5分之4阶啊。
) ]- w$ e6 B9 g0 ]/ D
就是运用组合的4/5阶龙格库塔芬尔格算法
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5