数学建模社区-数学中国

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

作者: 欧阳嫦娥    时间: 2015-7-23 09:56
标题: fprintf函数问题
syms x y3 w8 t5 `( H' i- e2 t
f=x^3-y^3+3*x^2+3*y^2-9*x;5 Z$ y6 `) E( H3 Q% X
df=jacobian(f);  %求一阶偏导数! I/ b% L" I. @$ a8 T
d2f=jacobian(df); %求Hessian阵
7 {% z0 \/ t; u. r[xx,yy]=solve(df)  %求驻点0 y: ^& t# @# A5 c+ j
xx=double(xx);yy=double(yy); %转化成双精度浮点型数据,下面判断特征值的正负,必须是数值型数据. S% Z3 |9 s6 k& j0 T5 j3 V
for i=1:length(xx)
, l( i& B3 d5 E; x% c1 d    a=subs(d2f,{x,y},{xx(i),yy(i)});  : [, H# x9 S( E1 H- z+ n" g; _& |! r
    b=eig(a);  %求矩阵的特征值. W; j0 O8 @( U$ r! C
    f=subs(f,{x,y},{xx(i),yy(i)});
" f. \. `* @3 ~5 [1 t+ x$ n( L' d    if all(b>0)$ T( B: E8 \9 U1 t7 Q  X5 D
        fprintf('(%f,%f)是极小值点,对应的极小值为%f\n',xx(i),yy(i),f);
$ o4 s+ F4 W, v# _, ^    elseif all(b<0)3 g* C2 f- q& L3 T4 F. U/ i
        fprintf('(%f,%f)是极大值点,对应的极大值为%f\n',xx(i),yy(i),f);0 N$ {+ J( N5 U0 |% B. j+ [& e* m
    elseif any(b>0) & any(b<0)
9 n! Y5 o' Q3 E4 C+ e' F9 S        fprintf('(%f,%f)不是极值点\n',xx(i),yy(i));
4 w* P# O9 h: v: G# ]- v) y/ M, m: L    else
% R, L- Y# B: b. {. R        fprintf('无法判断(%f,%f)是否是极值点\n',xx(i),yy(i));  
" M0 A. ~" Q/ h    end
7 q0 K) G* S! ^- j/ Bend5 ?3 p: `. Y$ ^8 p9 h
9 v% r' H+ m. n& B
0 m( e& A# s; }( m
xx =* F, V/ T. K) L& G8 S, c# N) a+ u
1 W/ s- p: g- c8 Y0 m9 A
  18 j, ^0 x* ~; U; z: o* R+ F% Y
-3" \8 D4 o) g8 K+ H- u! z
  12 b3 g- i. \* X" _0 z" v& Y3 \
-3' r4 p: p, }  D  }1 o! g1 O' e

2 J4 c6 s- ?" O8 w4 g4 Y' l6 c- `5 G 6 c! K1 p. z$ o# {" H  ~. [( D
yy =( b& U9 u' h* F* k

$ K4 I) ]# s# D8 o0 A0 O* X* Y 06 V4 P- u) G2 W! h( s. u- x
03 c  [2 K4 S9 I/ ?* o: `
2
+ G' i8 ]! u) a9 N( E 2
2 }2 p9 z* ^5 S8 H  @2 Z" v" b" V
3 [+ q6 \2 ?0 w# i& c3 j* j' X& S错误使用 fprintf. }0 W( r# V3 ?8 Z) ]) m
没有为 'sym' 输入定义函数。
5 W% g$ Q- G- |, [6 v2 W 7 F, h* h) C0 N, h
能告诉我哪里出问题了吗?! G' N6 E3 g$ i. W# @4 f$ T9 C
我用的是2014aMATLAB
- d/ {7 |& U5 b% ~1 Z" ^! Z) o
作者: 士心之约    时间: 2015-8-23 09:20
  1. syms x y' ]) H+ r; m- z( t' V, F
  2. f=x^3-y^3+3*x^2+3*y^2-9*x;' {0 P' F' h5 g& s/ _
  3. df=jacobian(f);  %求一阶偏导数2 K5 Z- x1 Q! U( I8 K  K9 Z- z9 `" O3 I9 \* {/ o' @. n& ~9 U' P
  4. d2f=jacobian(df); %求Hessian阵
    0 {( G- k8 f1 v( m/ A
  5. [xx,yy]=solve(df)  %求驻点& A. Q1 d. |" |, b" E5 }
  6. xx=double(xx);yy=double(yy); %转化成双精度浮点型数据,下面判断特征值的正负,必须是数值型数据  d+ C1 y" F/ b+ b
    ' G' n8 W) N% E+ Z
  7. for i=1:length(xx)
    3 Z9 e, Z( i$ ^# ?
  8.     a=subs(d2f,{x,y},{xx(i),yy(i)}); ; m' B) U; F, G/ X
  9.     b=eig(a);  %求矩阵的特征值0 ! v! g! L2 P) u" {3 P1 B9 H+ [
  10.     f=subs(f,{x,y},{xx(i),yy(i)});- H8 p/ y  E% J/ C: d
  11.     if all(b>0)* [/ M/ k9 T1 ^3 ~* H  K8 \. g
  12.         fprintf('(%f,%f)是极小值点,对应的极小值为%f\n',xx(i),yy(i),double(f));
    3 y& y2 b7 N5 t- m  [3 E' O& y
  13.     elseif all(b<0)
    5 z5 o8 I. G: F( V% s
  14.         fprintf('(%f,%f)是极大值点,对应的极大值为%f\n',xx(i),yy(i),double(f));$ ^3 U) G9 G! l% y
  15.     elseif any(b>0) & any(b<0)
    ! P! P+ k- L9 C! d  {. l9 h! {
  16.         fprintf('(%f,%f)不是极值点\n',xx(i),yy(i));
    ) R; C0 j- O/ g
  17.     else# V# S' z1 ~# _. q: Z. M
  18.         fprintf('无法判断(%f,%f)是否是极值点\n',xx(i),yy(i));  ' M$ `+ x9 r, q0 q. T) B
  19.     end
    ; ^% x6 r6 H! Q% c3 {5 |
  20. end
复制代码

7 O" n& V/ a8 m




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