数学建模社区-数学中国

标题: fprintf函数问题 [打印本页]

作者: 欧阳嫦娥    时间: 2015-7-23 09:56
标题: fprintf函数问题
syms x y
8 u4 m* `+ P) F5 w% R8 if=x^3-y^3+3*x^2+3*y^2-9*x;
! o9 `/ [9 `, e7 s+ u& _, Idf=jacobian(f);  %求一阶偏导数  b; L! n' t8 ~7 e! {) a
d2f=jacobian(df); %求Hessian阵
8 x" z# q) [; X+ i9 P) N# b9 o# I+ b[xx,yy]=solve(df)  %求驻点
% F4 d% C1 a# J+ X6 d4 S6 @; vxx=double(xx);yy=double(yy); %转化成双精度浮点型数据,下面判断特征值的正负,必须是数值型数据" ?# S+ }3 b7 K7 ]
for i=1:length(xx)) Q- ~. V. M3 a) \
    a=subs(d2f,{x,y},{xx(i),yy(i)});  2 P( p; _1 Y7 O
    b=eig(a);  %求矩阵的特征值0 D' r" m9 k: [$ l4 o
    f=subs(f,{x,y},{xx(i),yy(i)});
0 T, @6 |1 ]6 M0 ~' a    if all(b>0), w* y' M. n" k/ L  L" B) V
        fprintf('(%f,%f)是极小值点,对应的极小值为%f\n',xx(i),yy(i),f);
) N0 j% Z' v2 ~; {% y. J* b' ?    elseif all(b<0)
6 E- S0 x! w( Z. d7 }        fprintf('(%f,%f)是极大值点,对应的极大值为%f\n',xx(i),yy(i),f);9 {/ S. \! M5 @$ g
    elseif any(b>0) & any(b<0)
2 e* `2 i9 k+ C! b) d. S        fprintf('(%f,%f)不是极值点\n',xx(i),yy(i));
' i) e1 `  _% n3 |/ a" ]- [" n    else
' K" e# e( ~. P; m$ X$ M; U        fprintf('无法判断(%f,%f)是否是极值点\n',xx(i),yy(i));  . r7 b8 t% J$ r( f
    end
4 @+ Z) Y* N  t+ L  {6 q6 \end3 f, V! [: h: [' M/ e5 T' C
3 t5 j6 Q0 Y: i' e& @8 O

" n6 I+ Y! q/ c4 K) R: L$ W# Q0 z, jxx =
: B6 g# {0 F) o6 ~3 j
1 J) ^* \' L- |) D1 R  1/ a+ d* {% U( C+ E  r
-3
) c( ]; a3 E9 r  10 s; X# j$ D9 w) l: I; T! q
-3  M4 ~1 W- k& U9 ?
2 f7 Q& j) p% K7 O! ]

/ l4 q3 e4 I  A8 iyy =
" F- a9 H- [/ {! x
  N- u2 W8 q: {9 i8 u3 u3 @ 0
' a( q( ?8 ?" U% h9 f: h 0
1 {3 ]+ j0 I+ x 2
# v/ ~) \8 h" _" G 2
: M; ~; v0 c! H2 q
+ _* x& Q8 W. U: L: q错误使用 fprintf
  I8 G, O* B* i8 y7 b# g7 X没有为 'sym' 输入定义函数。
6 q" k6 G$ k; y6 {3 g5 x
/ t- r5 |4 |' Z- D能告诉我哪里出问题了吗?
+ j% }, h- a& v3 s) p- c5 D我用的是2014aMATLAB
* C$ ^4 c: _5 u& w8 t
作者: 士心之约    时间: 2015-8-23 09:20
  1. syms x y
    * {) T8 }4 v* Q7 l) ]/ y. F
  2. f=x^3-y^3+3*x^2+3*y^2-9*x;; B7 x& |$ O, m2 P7 w" G
  3. df=jacobian(f);  %求一阶偏导数2 K5 Z- x1 Q! U( I8 K  K9 Z- z9 `$ r+ e3 T  c  C. t8 j
  4. d2f=jacobian(df); %求Hessian阵- E# P2 t' Z/ f) D
  5. [xx,yy]=solve(df)  %求驻点
    ' A& }4 E- s7 T" O
  6. xx=double(xx);yy=double(yy); %转化成双精度浮点型数据,下面判断特征值的正负,必须是数值型数据  d+ C1 y" F/ b+ b  L5 ^# K$ D7 y1 l/ Y
  7. for i=1:length(xx)% ^# x+ f0 h$ I& E" N1 Y
  8.     a=subs(d2f,{x,y},{xx(i),yy(i)}); - n) t$ [% b* [8 B
  9.     b=eig(a);  %求矩阵的特征值0 7 ^2 J$ h" W+ z  G* U# N2 O7 O
  10.     f=subs(f,{x,y},{xx(i),yy(i)});
      W4 \& W: K0 j
  11.     if all(b>0)
    ; w3 L8 W; l2 ~$ `4 s1 k: ?; w
  12.         fprintf('(%f,%f)是极小值点,对应的极小值为%f\n',xx(i),yy(i),double(f));# o( ?* T1 w$ ]& B0 [& I
  13.     elseif all(b<0)
    # B  |$ x2 O: U/ w7 A- f: m
  14.         fprintf('(%f,%f)是极大值点,对应的极大值为%f\n',xx(i),yy(i),double(f));! |& y& }2 Y' c1 J4 Y* n7 Q+ N
  15.     elseif any(b>0) & any(b<0)1 B2 L9 R9 T; O; l% S. S# ?
  16.         fprintf('(%f,%f)不是极值点\n',xx(i),yy(i));
    # ^8 `! ?# z3 P/ H, \" V+ ]
  17.     else0 I3 M5 [) }7 @) c
  18.         fprintf('无法判断(%f,%f)是否是极值点\n',xx(i),yy(i));  3 q, `3 N0 w2 K
  19.     end8 a; S! J( N; T* G& z5 N
  20. end
复制代码

+ _: V& E: K. Y/ z% C% @% S




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5