|
9 t9 O" m3 c Q* }7 G- c( @& F+ T: S
在test.m中的循环里面把绘图语句改成% r3 {, f1 ?+ k" j, E# ]
plot(T,x(7)-(T/2000)^2,'o');
[8 M. G7 x$ R4 V' B( d+ Z0 t6 l. j
: E4 l Y! j ^5 B/ d就是了
2 Y$ j+ S$ b) z( y因为plot默认是画相邻点之间的直线,但循环每一步只计算出了一个点,不能与相邻的点连接起来,数据点本身没有图示进行绘制,导致看不到整体曲线,使用'o'等命令令其将每一个数据点的图示都绘制出来,就能看见了
! S) Y7 t t2 x1 S9 m1 l. J8 \% q( r* E0 L; ]; z/ [
更一般的做法是将循环计算的数值存入向量,最后对向量进行绘图
% u# t6 v# i! Q' r+ J; W2 KDraw_X = []; Draw_Y = [];
: i& X7 r9 J, Z( `( Gfor T=600:5:1600
2 L4 e0 y1 J% u- K+ p v: m& l5 O fun = @(n)GibbsEnergy(T,n);5 V. E1 ? k# y- f7 }) [
x=fmincon(fun,n0,A,B,C,C_i);) s {" i# D& m% X% G4 @% Q
Draw_X = [Draw_X;T];
/ i _" E" j" F) j" t Draw_Y = [Draw_Y;x(7)-(T/2000)^2];
& ?% E* B0 @& }( g% Lend: x/ v3 \2 c9 b) j3 ^
figure7 c. S2 n& N _) l5 R! v A2 l' y2 ?
plot(Draw_X,Draw_Y);! K& g* c/ ]7 S7 _$ Y% F
hold on;* f1 g& k6 a7 u8 m+ s7 U
xlabel('T');
3 e! `: b/ f( Vylabel('payoff'); |
|