EDA365电子论坛网

标题: 貌似第一种写法的解是正确的,第二种写法的解是错误的。 [打印本页]

作者: henri    时间: 2020-6-29 13:29
标题: 貌似第一种写法的解是正确的,第二种写法的解是错误的。
原方程为:
6 D( b9 H3 r- K% _/ b4 ^
, e/ k% {0 s, @+ }在用ode45解的时候,第一种写法/ U" [& n) K7 J
function dy=t1(t,y)8 H) }, J1 E2 L8 [7 Y
dy=zeros(2,1);
8 o( s8 K3 u8 f3 U0 w6 [y(2)=dy(1);   
0 V) h5 G; ^4 s2 b+ D& Q; I6 cdy(2)=1;8 `! s- N$ N% q  p/ j
$ Z* E% ?4 `9 O) _" P

* a5 s. m- I6 R( ], m5 B当我把第三行等式交换位置后,即第三行改为dy(1)=y(2)
- N) J( u( P, s* N) N) P1 h6 {0 ^6 E/ r& @" M* v
最后两种写法得到的结果完全不一样,貌似第一种写法的解是正确的,第二种写法的解是错误的。请教大神,感谢!
作者: Ferrya    时间: 2020-6-29 13:59
本帖最后由 Ferrya 于 2020-6-29 14:01 编辑 , n# E0 C; Q) I+ I8 J- P. w; G

8 z; V) @1 t1 G, p. `
$ u! S# l" v3 F! r8 e, F. X' j先去搞清楚“赋值”的含义,等号在matlab里面是赋值,不是相等,不能左右互换9 L( R* K, t$ j5 T. M
a = 1; b = 2; c = 3;
8 h& R+ X2 F9 R! wa = b;
0 T) K1 x% f8 k- Adisp([a b c])& Y* o7 m( J6 o9 U
% u* h# F9 M5 R( H. C
: c4 n: w0 M8 p
结果是     2     2     3
作者: Ferrya    时间: 2020-6-29 14:01
a = 1; b = 2; c = 3;8 D  W" x, m2 t! N5 q6 o1 n! Z/ P& g! ^
b = a;5 m5 H' Q- K$ A) Z
disp([a b c])8 u$ U' K; ?1 J6 Y( K& A( ^8 e; J: O
9 h7 ^4 r# F7 P  W9 M
结果是     1     1     32 e; |2 G4 g$ [; A7 _" K8 h5 X" ~

作者: Ferrya    时间: 2020-6-29 14:01
正确的应当是! L; S4 k5 ^! E6 ]1 s# p2 a
function dy=t1(t,y)
5 _: |" t* S0 Z" u! N5 ]6 ^dy=zeros(2,1);
) ]% N4 S. Z3 j5 C4 Bdy(1)=y(2);/ Y8 K& _/ V! U2 q
dy(2)=1;




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2