数学建模社区-数学中国
标题:
fprintf函数问题
[打印本页]
作者:
欧阳嫦娥
时间:
2015-7-23 09:56
标题:
fprintf函数问题
syms x y
9 m0 B* g* s% Z' `: o) a
f=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 }# A
xx=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
2
0 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
syms x y
1 d5 B! A* X0 q% X' q5 u/ \! B
f=x^3-y^3+3*x^2+3*y^2-9*x;
# `5 }' V0 s) M1 c
df=jacobian(f); %求一阶偏导数2 K5 Z- x1 Q! U( I8 K K9 Z- z9 `
; W9 v# c, i/ m
d2f=jacobian(df); %求Hessian阵
& Z* ~% D/ Q; s2 e* O
[xx,yy]=solve(df) %求驻点
# K# I9 M6 b2 C. g% _, N* E$ e9 X
xx=double(xx);yy=double(yy); %转化成双精度浮点型数据,下面判断特征值的正负,必须是数值型数据 d+ C1 y" F/ b+ b
; a1 a; }% T4 [8 J% X
for i=1:length(xx)
$ ]1 v/ Q2 m$ {' C* d2 Q6 \
a=subs(d2f,{x,y},{xx(i),yy(i)});
6 {* Q6 O S8 }5 R+ A; H
b=eig(a); %求矩阵的特征值0
6 Y/ S8 I0 L$ m/ a1 E
f=subs(f,{x,y},{xx(i),yy(i)});
; d# A2 B# U" R2 l0 J
if all(b>0)
0 I0 s6 w! E6 p7 G' B0 ?9 Q
fprintf('(%f,%f)是极小值点,对应的极小值为%f\n',xx(i),yy(i),double(f));
: G/ n) {: Z/ J* {
elseif all(b<0)
8 a$ i( k* r! d0 v6 z6 @
fprintf('(%f,%f)是极大值点,对应的极大值为%f\n',xx(i),yy(i),double(f));
5 i$ g m' B- B0 q7 L. L6 N
elseif any(b>0) & any(b<0)
3 W! |* f3 ^; t7 L& ^
fprintf('(%f,%f)不是极值点\n',xx(i),yy(i));
$ ^; `) I( a% C$ S
else
3 P0 D8 t" v0 ?8 ~3 ^' X
fprintf('无法判断(%f,%f)是否是极值点\n',xx(i),yy(i));
2 y0 x9 u5 @' s
end
& R; t6 n Z# ~% ^6 n0 Q, n+ g
end
复制代码
" {- i! _. }( N" ~& \/ d4 O
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5