|
|
. f9 |7 q6 r3 B; \在test.m中的循环里面把绘图语句改成
5 U6 r9 X/ `) m& bplot(T,x(7)-(T/2000)^2,'o');( {- h8 v: G8 h: x' \" I, q
5 ?9 |' {6 M) ^( z# p% a' g! Y; V
2 I$ }( J6 X% u, F就是了
: m8 C" _0 m! G: H; {8 [' Q5 h因为plot默认是画相邻点之间的直线,但循环每一步只计算出了一个点,不能与相邻的点连接起来,数据点本身没有图示进行绘制,导致看不到整体曲线,使用'o'等命令令其将每一个数据点的图示都绘制出来,就能看见了2 q' p- b. ]& M) F
: R7 j- \) P$ I, b更一般的做法是将循环计算的数值存入向量,最后对向量进行绘图8 r P2 J0 F+ O4 z9 H
Draw_X = []; Draw_Y = [];, q5 t% s( E$ n) c% d
for T=600:5:1600
w% M. U9 Q5 C$ O2 ~8 K fun = @(n)GibbsEnergy(T,n);1 x! i7 Y7 B6 ]
x=fmincon(fun,n0,A,B,C,C_i);" h1 Q! T) o$ ?; c6 n* W9 v1 u4 l
Draw_X = [Draw_X;T];: _) V3 n, s& }6 N, H- S
Draw_Y = [Draw_Y;x(7)-(T/2000)^2];
1 }4 N8 [8 A+ _2 {7 U$ w3 Eend
0 s( j0 J' L" O+ X/ D# Yfigure
) B' C. n. N- Q/ e, ?1 I8 nplot(Draw_X,Draw_Y);" t" u& O: f' t9 u9 x& O
hold on;
+ U9 U6 E. _/ C5 e! k8 Xxlabel('T');
# ~1 L) ~& p( A9 y' {4 o7 ^ylabel('payoff'); |
|