数学建模社区-数学中国
标题:
fprintf函数问题
[打印本页]
作者:
欧阳嫦娥
时间:
2015-7-23 09:56
标题:
fprintf函数问题
syms x y
8 u4 m* `+ P) F5 w% R8 i
f=x^3-y^3+3*x^2+3*y^2-9*x;
! o9 `/ [9 `, e7 s+ u& _, I
df=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 @; v
xx=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 \
end
3 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, j
xx =
: B6 g# {0 F) o6 ~3 j
1 J) ^* \' L- |) D1 R
1
/ a+ d* {% U( C+ E r
-3
) c( ]; a3 E9 r
1
0 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 i
yy =
" 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
syms x y
* {) T8 }4 v* Q7 l) ]/ y. F
f=x^3-y^3+3*x^2+3*y^2-9*x;
; B7 x& |$ O, m2 P7 w" G
df=jacobian(f); %求一阶偏导数2 K5 Z- x1 Q! U( I8 K K9 Z- z9 `
$ r+ e3 T c C. t8 j
d2f=jacobian(df); %求Hessian阵
- E# P2 t' Z/ f) D
[xx,yy]=solve(df) %求驻点
' A& }4 E- s7 T" O
xx=double(xx);yy=double(yy); %转化成双精度浮点型数据,下面判断特征值的正负,必须是数值型数据 d+ C1 y" F/ b+ b
L5 ^# K$ D7 y1 l/ Y
for i=1:length(xx)
% ^# x+ f0 h$ I& E" N1 Y
a=subs(d2f,{x,y},{xx(i),yy(i)});
- n) t$ [% b* [8 B
b=eig(a); %求矩阵的特征值0
7 ^2 J$ h" W+ z G* U# N2 O7 O
f=subs(f,{x,y},{xx(i),yy(i)});
W4 \& W: K0 j
if all(b>0)
; w3 L8 W; l2 ~$ `4 s1 k: ?; w
fprintf('(%f,%f)是极小值点,对应的极小值为%f\n',xx(i),yy(i),double(f));
# o( ?* T1 w$ ]& B0 [& I
elseif all(b<0)
# B |$ x2 O: U/ w7 A- f: m
fprintf('(%f,%f)是极大值点,对应的极大值为%f\n',xx(i),yy(i),double(f));
! |& y& }2 Y' c1 J4 Y* n7 Q+ N
elseif any(b>0) & any(b<0)
1 B2 L9 R9 T; O; l% S. S# ?
fprintf('(%f,%f)不是极值点\n',xx(i),yy(i));
# ^8 `! ?# z3 P/ H, \" V+ ]
else
0 I3 M5 [) }7 @) c
fprintf('无法判断(%f,%f)是否是极值点\n',xx(i),yy(i));
3 q, `3 N0 w2 K
end
8 a; S! J( N; T* G& z5 N
end
复制代码
+ _: V& E: K. Y/ z% C% @% S
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5