数学建模社区-数学中国

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

作者: 欧阳嫦娥    时间: 2015-7-23 09:56
标题: fprintf函数问题
syms x y
9 m0 B* g* s% Z' `: o) af=x^3-y^3+3*x^2+3*y^2-9*x;/ e' B# ^( P$ D2 h4 T+ i! K
df=jacobian(f);  %求一阶偏导数1 Q2 |4 R- a% Q9 i# W/ c
d2f=jacobian(df); %求Hessian阵7 d- y. }5 o" P9 B5 l- A: G, ?6 k
[xx,yy]=solve(df)  %求驻点
1 d* B6 y  }# Axx=double(xx);yy=double(yy); %转化成双精度浮点型数据,下面判断特征值的正负,必须是数值型数据) Q) {9 G$ Z3 y' O6 a7 ^1 [
for i=1:length(xx)  o" Y8 r3 O' J* [" `2 n  h# Q
    a=subs(d2f,{x,y},{xx(i),yy(i)});  * B9 @/ i" T4 ^
    b=eig(a);  %求矩阵的特征值! c! k1 m: m/ {. X+ X
    f=subs(f,{x,y},{xx(i),yy(i)});7 c4 r9 r+ D7 o) }1 N
    if all(b>0)
' C* `+ J  Q5 J7 V$ G; u        fprintf('(%f,%f)是极小值点,对应的极小值为%f\n',xx(i),yy(i),f);
  J: x& j# N- X1 a2 [    elseif all(b<0)
9 U& u3 V8 b6 _7 l- M1 x        fprintf('(%f,%f)是极大值点,对应的极大值为%f\n',xx(i),yy(i),f);9 {- B) P" c4 J; F$ M9 u
    elseif any(b>0) & any(b<0)
* y0 _4 O2 ~2 w6 S        fprintf('(%f,%f)不是极值点\n',xx(i),yy(i));
" i1 t  R6 |$ p; k/ I1 N' r    else
3 b4 v# D$ l8 V$ `9 @        fprintf('无法判断(%f,%f)是否是极值点\n',xx(i),yy(i));  1 g. Y5 W, h! g* V2 h: w* S/ W6 D( ]
    end) v; [' o; ^$ {3 W2 C9 N" J8 f3 H
end
, D0 b) s1 X2 o/ e! m# Q
$ M9 t3 P( I7 _$ Z' @% W1 Q# L - A% w8 ^$ p! N' J9 L9 a, M" V
xx =" J# c2 X4 D$ s3 `$ f  r

4 Q; \' t2 W5 _. Y  1
& H/ Y0 O* \. x1 |8 c# }5 H -3
8 C) X5 ^! S  y! Y  1
: Q' O! F4 o# ?" w* t -3
5 w( T' [- e) _( j) U* V $ X" \$ D2 f. C) B3 Q
, x( B( Q2 L" S
yy =
1 S. Z& C: a1 Y
1 ?  J2 o& t1 ~! H9 E* X" h 0
' N" X2 J) [; ~/ l! {* ? 0
: y5 n: d  t: P 2
6 ]: V' R$ i$ R; v7 w. l 20 r& w! _1 x. j/ @' V3 N
8 j: n) Z. ]) C! o+ y! [
错误使用 fprintf" a% K+ S. _$ N3 y. o5 t& a
没有为 'sym' 输入定义函数。
6 H$ e- b, |6 c# b4 h. l
+ ~+ u% A3 C: a能告诉我哪里出问题了吗?, {9 R. Y2 v0 J- ^2 Z
我用的是2014aMATLAB
- A) o6 s- I, C
作者: 士心之约    时间: 2015-8-23 09:20
  1. syms x y
    1 d5 B! A* X0 q% X' q5 u/ \! B
  2. f=x^3-y^3+3*x^2+3*y^2-9*x;
    # `5 }' V0 s) M1 c
  3. df=jacobian(f);  %求一阶偏导数2 K5 Z- x1 Q! U( I8 K  K9 Z- z9 `
    ; W9 v# c, i/ m
  4. d2f=jacobian(df); %求Hessian阵& Z* ~% D/ Q; s2 e* O
  5. [xx,yy]=solve(df)  %求驻点
    # K# I9 M6 b2 C. g% _, N* E$ e9 X
  6. xx=double(xx);yy=double(yy); %转化成双精度浮点型数据,下面判断特征值的正负,必须是数值型数据  d+ C1 y" F/ b+ b
    ; a1 a; }% T4 [8 J% X
  7. for i=1:length(xx)$ ]1 v/ Q2 m$ {' C* d2 Q6 \
  8.     a=subs(d2f,{x,y},{xx(i),yy(i)});
    6 {* Q6 O  S8 }5 R+ A; H
  9.     b=eig(a);  %求矩阵的特征值0
    6 Y/ S8 I0 L$ m/ a1 E
  10.     f=subs(f,{x,y},{xx(i),yy(i)});; d# A2 B# U" R2 l0 J
  11.     if all(b>0)0 I0 s6 w! E6 p7 G' B0 ?9 Q
  12.         fprintf('(%f,%f)是极小值点,对应的极小值为%f\n',xx(i),yy(i),double(f));
    : G/ n) {: Z/ J* {
  13.     elseif all(b<0)
    8 a$ i( k* r! d0 v6 z6 @
  14.         fprintf('(%f,%f)是极大值点,对应的极大值为%f\n',xx(i),yy(i),double(f));
    5 i$ g  m' B- B0 q7 L. L6 N
  15.     elseif any(b>0) & any(b<0)
    3 W! |* f3 ^; t7 L& ^
  16.         fprintf('(%f,%f)不是极值点\n',xx(i),yy(i));$ ^; `) I( a% C$ S
  17.     else3 P0 D8 t" v0 ?8 ~3 ^' X
  18.         fprintf('无法判断(%f,%f)是否是极值点\n',xx(i),yy(i));  
    2 y0 x9 u5 @' s
  19.     end
    & R; t6 n  Z# ~% ^6 n0 Q, n+ g
  20. end
复制代码
" {- i! _. }( N" ~& \/ d4 O





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