|
|
$ N+ s! y! {% s/ K在test.m中的循环里面把绘图语句改成
u2 u- ~( D. u/ k4 }) {4 N" xplot(T,x(7)-(T/2000)^2,'o');
4 O0 V, L: `2 m) a- f) S0 ]' r" @1 B' ?0 I
+ |& v+ n! B8 R. y& J4 `
就是了
" i; P" V4 U$ d7 T7 B1 u/ ]因为plot默认是画相邻点之间的直线,但循环每一步只计算出了一个点,不能与相邻的点连接起来,数据点本身没有图示进行绘制,导致看不到整体曲线,使用'o'等命令令其将每一个数据点的图示都绘制出来,就能看见了
. i) l& X, w; @7 x
1 n" K2 x* k" x2 Q( U更一般的做法是将循环计算的数值存入向量,最后对向量进行绘图
, `, o6 U* T/ y0 n9 g$ j6 T uDraw_X = []; Draw_Y = [];
; ]3 V+ z Z8 |; afor T=600:5:1600
7 E9 w2 I1 P" \ fun = @(n)GibbsEnergy(T,n);
. d; _8 t$ |$ F1 M4 r6 L0 l x=fmincon(fun,n0,A,B,C,C_i);. ^+ C) E% r# _1 V
Draw_X = [Draw_X;T];5 O/ k' W( g1 x
Draw_Y = [Draw_Y;x(7)-(T/2000)^2];
; Z) X( i/ \+ ]; V1 O4 W) Tend+ Z* ~$ v. S+ [8 N9 y) Y9 S
figure7 I5 v: J9 r5 d' m
plot(Draw_X,Draw_Y);+ J) r, B( P+ v- c8 L' Y# w
hold on;8 o/ b8 T3 Q f! G
xlabel('T');' O5 n! J* x0 p
ylabel('payoff'); |
|