|
|
) f. N5 p! e5 @: e' u: B% Q
在test.m中的循环里面把绘图语句改成
2 t- o/ u0 G- F7 qplot(T,x(7)-(T/2000)^2,'o');
5 q3 q' p( e( E0 |% `4 `
# z, |1 Q, X1 l$ g, U3 G [
, f: S& ?9 I8 y! @ p3 W就是了
: D" y8 h4 Q" i% e因为plot默认是画相邻点之间的直线,但循环每一步只计算出了一个点,不能与相邻的点连接起来,数据点本身没有图示进行绘制,导致看不到整体曲线,使用'o'等命令令其将每一个数据点的图示都绘制出来,就能看见了4 t8 h, ]( S4 s! M) c1 r' W. |
+ G6 }% e6 H5 o+ n
更一般的做法是将循环计算的数值存入向量,最后对向量进行绘图, i2 e$ q$ q- ~3 C" l( N
Draw_X = []; Draw_Y = [];
# O3 w3 R) U' x3 }) p0 Z/ Rfor T=600:5:1600
7 u/ H a' l0 c) a% \# a fun = @(n)GibbsEnergy(T,n);
/ j, K- k; b8 R* M) y7 J x=fmincon(fun,n0,A,B,C,C_i);. x+ r2 v' Q6 C& U
Draw_X = [Draw_X;T];
/ c: P7 Z3 B4 T0 h7 Q& } Draw_Y = [Draw_Y;x(7)-(T/2000)^2];
: Z0 b: I% L% Y9 H" e" u5 `) ^2 mend
- Y7 T* k. ]( \; |$ e3 e ofigure" A3 W8 ]( f" M. d# e, a2 P
plot(Draw_X,Draw_Y);$ x3 t/ ^9 o7 `$ x2 {9 }
hold on;
8 `3 y0 R2 D: m2 O! ?xlabel('T');
7 v: |, r3 m4 {7 l$ iylabel('payoff'); |
|