|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我通过for循环求解一个带有变系数微分方程后,plot出各个方程的曲线,想将各个曲线对应legend打印出来,但是始终无法成功,不知道哪里出了问题,代码如下:' m! W/ [3 `, `0 m0 X
c = (4-19.2/2)*pi/180;
2 E+ _- u, Z; x1 t) wR1 = 38;
7 M1 s m4 w5 N) ~4 O* mt1 = 5*pi/180;1 o8 _! | ?6 Z6 p7 O
t2 = pi/2;( ^- p1 b$ q9 U9 g$ Y0 T, p3 d
A=R1.^2 * sin(t1) * tan(t1) * tan(t2/2);
9 B- U0 l8 E p! _7 w+ J: Z, I, a9 e& w% |2 ^/ `! }; G" B& Z) x# {) O! F
S={'aaa'};% 定义一个元胞数组,并随意存储一个字符串
7 \' l/ W7 [$ A; m" z" k+ Dfor KB = [0, 0.2, 0.4, 0.6, 0.8, 1]
' B- I I) v1 U- @" @ a1 = (2*1500*9*0.8*10^6/20)/(1500*9*13888.2*(2*1.313+KB+1)/60);5 z( l4 @3 n. ]+ W
b1 = 1500/(2*1.313+KB+1);7 n. }5 v: y1 u, y6 |, I6 j- I
y0 = 0.1;2 a) c0 B& f. t
yp0 = b1*sin(c);% N% y4 X- u5 c* Y
[x,y] = ode15i(@(x,y,yp)yp - a1*(A*x.^2)*sqrt(abs(35-y))*sign(35-y) - b1*sin(c+x) , [0, 19.2*pi/180], y0, yp0);
: Y, s/ E% e1 q h = plot(x,y);5 `8 u% ?" g$ r3 C
kb = sprintf('KB=%.1f',KB);%将KB的转化为字符串存在一个变量中
9 D- [1 ^2 n6 V' U; o9 L S(i) = cellstr(kb);%将变量kb存储在S元胞数组中
. C" u, u+ U& W0 k' ?* f hold on/ \) l# A i+ Q1 D! p' X$ W% @# l
end
- E+ w: h6 l! plegend(S);8 ?) O: a. o( n5 e( ?+ q* S
grid% c0 K0 R m" h- \
4 V. H# Z+ P- F; n8 u0 T m# L此外,能否在for循环中使每个plot出来的曲线的线型不一样,比如说KB=0时是虚线,KB=1时是实线等等. U1 ?# \$ A9 V2 a% T! C0 S
请教大神,非常感谢!
: W* g: S/ e: u3 i出现的问题如下图
( M/ P( c, q/ l# E% T
2 t# R7 t. ]" i* J1 b0 h9 _3 J5 ^
+ d7 z |6 N' c/ ]' y$ N
4 e; y; L5 n2 t4 T1 G0 E |
|