数学建模社区-数学中国
标题:
fprintf函数问题
[打印本页]
作者:
欧阳嫦娥
时间:
2015-7-23 09:56
标题:
fprintf函数问题
syms x y
$ Q# T m" i9 B1 l& I& Q1 `
f=x^3-y^3+3*x^2+3*y^2-9*x;
# ?$ X" z6 o l5 D5 [
df=jacobian(f); %求一阶偏导数
! x8 b! B# g2 N- j; x4 n$ S
d2f=jacobian(df); %求Hessian阵
4 o* t4 k9 [. ~. A0 V2 F
[xx,yy]=solve(df) %求驻点
8 L* F$ h2 M! E6 f
xx=double(xx);yy=double(yy); %转化成双精度浮点型数据,下面判断特征值的正负,必须是数值型数据
/ L. B. o; O" h; q2 W
for i=1:length(xx)
2 e% i' o$ Q4 u* U, {9 ~
a=subs(d2f,{x,y},{xx(i),yy(i)});
8 j. J# b4 [: @$ v" Q5 k; f
b=eig(a); %求矩阵的特征值
, h$ G* h, E' E3 v- l/ N- Q0 R; S3 T
f=subs(f,{x,y},{xx(i),yy(i)});
( T% f/ Y; r7 @9 L3 M
if all(b>0)
7 B3 ^1 @, R- z% F: f0 G+ W2 s" _
fprintf('(%f,%f)是极小值点,对应的极小值为%f\n',xx(i),yy(i),f);
' }# ?# @; E! w! n% {& a6 W8 z
elseif all(b<0)
- h3 o' P: L3 ]5 L
fprintf('(%f,%f)是极大值点,对应的极大值为%f\n',xx(i),yy(i),f);
& i8 E2 @& d# I
elseif any(b>0) & any(b<0)
$ p1 b' w0 ~# W; y
fprintf('(%f,%f)不是极值点\n',xx(i),yy(i));
$ F4 U. [7 ~: ^5 K2 B/ h
else
0 \& \' P2 j: o5 y, H9 [6 J
fprintf('无法判断(%f,%f)是否是极值点\n',xx(i),yy(i));
2 x3 R9 u7 @( S; M3 k- B
end
0 M+ }$ d0 c! o- ?( z0 V
end
9 d8 y, R( i2 R/ D9 Y/ p6 s
T0 E( e k$ L4 z/ @3 A
7 b' d* q3 g! Q' d
xx =
/ W& [1 C& D; {3 o" x$ m n: Q* I& \
% F G( ?" R+ Y
1
$ d8 |$ ]7 `4 I3 ?+ ?7 a$ e
-3
# O! }# z7 C( g% ~; }6 H# M
1
5 X3 \& T" m3 L2 ^. [* d9 o: T
-3
; N& F0 m/ A0 Q, y
: d5 `7 I$ J1 D/ H) c% v
$ j P! l+ u- w5 I
yy =
! ^0 B& J% I9 q2 A: ^; K# p- [1 {3 V
; M+ H) u; _& s& h/ U
0
0 `4 N. r6 e# G9 R5 f( x
0
, q9 m& J- z J _5 e, B
2
0 k5 ^+ g& I6 r& b1 \) w
2
. }. Z! O! s7 u' [2 ^" `$ @! u
$ V; n0 g7 Q: O+ H
错误使用 fprintf
1 s3 [/ Z+ E8 ?/ f
没有为 'sym' 输入定义函数。
$ G& O+ L' ^/ \& R
) l7 V" }+ N6 Y1 }8 b2 Z
能告诉我哪里出问题了吗?
/ P" Q5 U5 t4 E! ]" j- ]
我用的是2014aMATLAB
, e$ \, P) h* S l
作者:
士心之约
时间:
2015-8-23 09:20
syms x y
2 F0 l1 ]0 y" o* J6 m/ E2 S! E
f=x^3-y^3+3*x^2+3*y^2-9*x;
" P& j( [* o( z* h
df=jacobian(f); %求一阶偏导数2 K5 Z- x1 Q! U( I8 K K9 Z- z9 `
B9 W4 S1 O6 A* S; Z5 ]" A
d2f=jacobian(df); %求Hessian阵
t) X, B& E& c0 t
[xx,yy]=solve(df) %求驻点
: V+ n8 t# y; Q$ z, \
xx=double(xx);yy=double(yy); %转化成双精度浮点型数据,下面判断特征值的正负,必须是数值型数据 d+ C1 y" F/ b+ b
5 ^2 u* z9 O* W( F- b
for i=1:length(xx)
5 @3 O8 c/ E' T. N; O
a=subs(d2f,{x,y},{xx(i),yy(i)});
7 |/ ?0 _, R# v
b=eig(a); %求矩阵的特征值0
- K2 Z- {$ {) t- s" J$ J6 {
f=subs(f,{x,y},{xx(i),yy(i)});
! M S) {7 m* K
if all(b>0)
( H# a! b3 u5 Q
fprintf('(%f,%f)是极小值点,对应的极小值为%f\n',xx(i),yy(i),double(f));
! T8 [) J' R) ]( [
elseif all(b<0)
& J1 {. C, X5 Y% P0 G8 z9 `/ x& {
fprintf('(%f,%f)是极大值点,对应的极大值为%f\n',xx(i),yy(i),double(f));
E1 r1 |$ |2 E- N! H5 L
elseif any(b>0) & any(b<0)
; D5 [ S* K* c; e% R7 I5 t
fprintf('(%f,%f)不是极值点\n',xx(i),yy(i));
, h3 G! {5 ^: o, \7 I' B0 a6 Z
else
% a( u+ E6 _* l
fprintf('无法判断(%f,%f)是否是极值点\n',xx(i),yy(i));
0 n& G$ F" M$ y1 D
end
% @" t# y# t# }0 E
end
复制代码
6 D2 K, d8 a1 H' r" B9 F8 C
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5