EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
matlab求多项式的系数:
$ _8 `! I& k1 K& }# }# O. W* h0 |' ?& E# P
单变量:8 n! z, Z6 S2 j7 u* a$ I
: I) B V. X0 {2 I- _. S# R' hsyms x y
F& }) V, |3 q5 K% J* }f1=x^4+2*x+1;
3 r7 W" J8 x7 U7 E0 y) W' F8 m5 Sf2=y^6+5*y^3+3;; E9 V0 X& u6 E, e% E0 l7 j9 K; P
f3=x^5+2*x^3*y^4+x*y^2+4;
& T# _# {) ~. zc = sym2poly(f1)
: o" g8 E( y+ b+ @3 B* @) sc =
Z( |1 f" U3 T# P7 A' x" y 1 0 0 2 11 r+ c9 s. u9 @( p+ D: a
>> c = sym2poly(f2)
1 z, B' E: a8 r9 w+ L( ic =- G8 ~2 |. d7 B8 x1 x4 G
1 0 0 5 0 0 3
! O+ k2 P6 V; X9 P t
- G/ z" e" T9 Q6 m/ _) n" J多变量:
8 O2 b, A6 L& [5 E! E% B' n5 e) K, j% a( O5 A3 Y# u
unction coef=poly_coef(f,var)$ w) l$ a& P. u
%提取多项式f中指定变量var的系数,将结果赋给数组coef, c" M7 `* @' C3 V' c
%f可以是含多变量的多项式
2 N, G" w5 h8 V7 H' A) e7 T%var是多项式中指定的变量,可选,默认是x: Q+ P6 I# D/ c
%要用到函数poly_degree()来获得f中指定变量var的最高次幂$ I& B1 ]- o) E: ~$ \* z+ T
IF nargin==1
$ W6 K3 L% w/ b0 p5 s9 evar=sym('x');) |3 F( ?: H2 I- l& J4 j7 x
end
- b; h) s6 Q2 F+ Pdegree=poly_degree(f,var);
# v6 X* C1 F$ n1 U3 W) o9 N1 ~0 xtemp_f=f;
7 T' |! l9 g3 c3 F) A3 Pcoef(degree+1)=subs(temp_f,var,0);; S% ^8 g d& X3 x/ i
for n=1:degree
0 R9 T( A, _/ u7 w3 p' Ltemp_f=simple((temp_f-coef(degree+2-n))/var);
# K: j5 f( _2 Q. k% `coef(degree+1-n)=subs(temp_f,var,0);
; Q7 ~0 @! f1 ]5 p7 {7 Z$ h$ xend
6 s' h9 a, l$ r7 _- z3 Cend3 C, g3 p& b/ H: [
举几个例子:
/ t, B' |, f# m" M3 k复制内容到剪贴板7 O6 i, Y( t" k _. r
代码:
! ` L1 ^$ w/ B' E) y. b& ~8 F* A) |9 q- ]- Y& I/ p: [
>> syms x y
3 a& [+ C" P' G% d2 E- S) k" e>> f1=x^4+2*x+1;8 ]' m/ ^9 G; w8 Q O, D" V
>> f2=y^6+5*y^3+3;: H+ I2 _) U0 t3 b5 f
>> f3=x^5+2*x^3*y^4+x*y^2+4;
* k& i4 X' ^) \/ f. k8 v& a>> poly_coef(f1)
2 w4 ^. ^% s0 D' `7 m1 f o2 \" i! C7 t0 n1 [
ans =% l- L7 f8 h3 [. r
4 w, c2 {" I2 q [1, 0, 0, 2, 1]- T2 g3 A+ k3 ?' S9 Z1 m9 Z
>> poly_coef(f1,y)- P& z7 |* M; O% g2 `2 r
1 q& C( {6 R" n* l! g$ l1 Wans = I9 \% X' u3 _! \
3 _6 v' H6 [/ o& \+ b4 q$ `
[ 4 ]0 M& h; c+ z/ G
[x + 2 x + 1] C9 g& y/ H. z2 e# q
>> poly_coef(f2)
" F4 W# A! O* V: z6 c0 v4 }& l2 Z" F: w/ u) u7 M3 M5 b' ~' D
ans =
* s" x: }' M" Y. E9 @
) u( S7 I4 J8 b J0 P [ 6 3 ]( [; p, T) Y+ i* X' ^# w
[y + 5 y + 3]
& b" S5 e$ _% v5 z>> poly_coef(f2,y)" E8 s0 G8 W5 n
* Y& m4 j( h4 f5 U( \% h
ans =
, Q; x( j* h8 D7 P P* R: X- m" q+ b, e& u _7 i% b3 D
[1, 0, 0, 5, 0, 0, 3]# B8 A2 O$ w( B
>> poly_coef(f3): v1 G+ H! w9 q! B6 c% e
# r# e( [( w4 V/ n2 `
ans =& ?4 f& @% H7 A3 t
# j6 ^* E6 c9 [! g
[ 4 2 ]
7 m; |& [7 {( U [1, 0, 2 y , 0, y , 4]
, j, Q0 ?; B5 j! H0 ^- l>> poly_coef(f3,y)2 K: d. i5 A# a" v( `, f# W
7 X, ]8 E9 g& c$ aans =
8 Z8 }2 I& E. E; h" E8 T1 R
- S6 R- l+ r; s8 h/ |2 T [ 3 5 ]+ S" u# ~0 A z
[2 x , 0, x, 0, x + 4] |