数学建模社区-数学中国

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

作者: 欧阳嫦娥    时间: 2015-7-23 09:56
标题: fprintf函数问题
syms x y
/ Y/ m6 F0 Y1 k" j- tf=x^3-y^3+3*x^2+3*y^2-9*x;
8 }7 z9 r  s2 f. e/ s5 Xdf=jacobian(f);  %求一阶偏导数# {9 \  q" c: I' L$ `
d2f=jacobian(df); %求Hessian阵4 S6 _* s2 J/ U1 z% b' A5 a
[xx,yy]=solve(df)  %求驻点& `' o6 K4 j: l- V9 A! U3 k5 @( M+ p
xx=double(xx);yy=double(yy); %转化成双精度浮点型数据,下面判断特征值的正负,必须是数值型数据
6 r6 [: u7 n% ~  ]for i=1:length(xx)
  o2 p: n0 n+ Y  |    a=subs(d2f,{x,y},{xx(i),yy(i)});  
6 s: p' w! [# e. }! i( s0 b; ?    b=eig(a);  %求矩阵的特征值9 Q, f0 W& L5 @& P7 b
    f=subs(f,{x,y},{xx(i),yy(i)});
% }, c) \" `6 z$ Y0 f+ {9 o9 e    if all(b>0)
* R; L! x3 `  r; X+ ~2 e5 N        fprintf('(%f,%f)是极小值点,对应的极小值为%f\n',xx(i),yy(i),f);5 q, k2 A5 _+ m& c" A( \' U9 X
    elseif all(b<0)
4 [( _* y# w) u  P        fprintf('(%f,%f)是极大值点,对应的极大值为%f\n',xx(i),yy(i),f);
# S8 x" h. k! L! N' D* \6 h    elseif any(b>0) & any(b<0)
" m! K) _0 w1 E# {0 u7 V        fprintf('(%f,%f)不是极值点\n',xx(i),yy(i));2 `, e+ n; K$ I4 B1 H
    else3 i6 R9 w6 [$ R, \: @- w6 e; D
        fprintf('无法判断(%f,%f)是否是极值点\n',xx(i),yy(i));  
8 E" ]+ Q4 j+ q5 |3 I    end
; D" K1 `; Z" B1 t( x' O  kend
! ^1 k7 P, y' S( _$ S( ~5 @% @9 K1 w1 q
6 a/ h5 [- H5 _5 u' D0 |7 Q / x9 r" ^/ P- @& d! k4 Q
xx =
' F& t% W* b7 Y+ }) s # \* y9 ^% P# ^  E1 J0 ^
  1
: B+ G( S! P. L9 A( P. V -3
: J3 ^: @. I( E  1
& }, l- h' t; P( K1 d; x9 I; F -3
) z0 E1 n6 F( ?% R! a' d 8 _* m7 Y1 B& Q6 i$ [7 b

2 n2 n$ @6 J" I0 t5 B8 Fyy =
9 g4 u- [+ J, l# V+ `
3 B/ f# c0 P% W$ m  x$ s. U 0" {7 |0 s) i$ s
05 B; q, O, @- \& U* T; V& |$ Y8 z
2
: y- }: k' A4 i6 D$ M 2* Q! J8 p+ k% \3 \8 j9 V' V4 _7 Y+ g
8 t$ j4 O; p* m% o# N2 L! X  Q, m# U+ m
错误使用 fprintf
* V: [* r& Z" ^8 e) S) h5 Y没有为 'sym' 输入定义函数。
' A0 y5 }. r% M0 J$ `& A6 @
+ r9 y+ r* y. q7 `能告诉我哪里出问题了吗?
0 U  Y; V' O4 o) a' X  r我用的是2014aMATLAB" R; F0 j7 p% `; F: ?

作者: 士心之约    时间: 2015-8-23 09:20
  1. syms x y# P. T0 E. k# _/ d) \* ^/ {7 y3 K
  2. f=x^3-y^3+3*x^2+3*y^2-9*x;
    8 @2 \" a. |% n, U, R. Z
  3. df=jacobian(f);  %求一阶偏导数2 K5 Z- x1 Q! U( I8 K  K9 Z- z9 `' u, k4 @; E5 _1 m- s
  4. d2f=jacobian(df); %求Hessian阵
    8 R% H5 Q; t2 ~8 `1 G* _
  5. [xx,yy]=solve(df)  %求驻点
    % a2 j6 z4 {/ m
  6. xx=double(xx);yy=double(yy); %转化成双精度浮点型数据,下面判断特征值的正负,必须是数值型数据  d+ C1 y" F/ b+ b
    - ^: g0 z! Y: f% C
  7. for i=1:length(xx)5 w" M* d4 K5 {5 Y6 p
  8.     a=subs(d2f,{x,y},{xx(i),yy(i)});
    . @0 z( ?$ K0 I
  9.     b=eig(a);  %求矩阵的特征值0
    ! o$ g" w6 p, i+ S0 K
  10.     f=subs(f,{x,y},{xx(i),yy(i)});! y# X3 T/ J0 C; T
  11.     if all(b>0)
    3 W5 U/ q, ?1 a/ l
  12.         fprintf('(%f,%f)是极小值点,对应的极小值为%f\n',xx(i),yy(i),double(f));. O- w! i4 @! m% @
  13.     elseif all(b<0)
    ; c0 w8 j  f+ O; D0 N
  14.         fprintf('(%f,%f)是极大值点,对应的极大值为%f\n',xx(i),yy(i),double(f));7 \- d( b9 b( F3 B" k, U; w
  15.     elseif any(b>0) & any(b<0); W( x: {6 Z9 e9 N
  16.         fprintf('(%f,%f)不是极值点\n',xx(i),yy(i));0 \# @) H8 ^, Y/ t. s0 k
  17.     else
    : r# M% g) n' }: c; n
  18.         fprintf('无法判断(%f,%f)是否是极值点\n',xx(i),yy(i));  * I) J0 q5 J1 ]0 k9 K- u' Y
  19.     end' S. Z8 y2 G3 A2 j+ z
  20. end
复制代码
9 V# _( P+ B# d& I5 w: a# C





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