打印

分享一个MATLAB求多项式的系数

[复制链接]
561|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cooldog123pp|  楼主 | 2019-9-15 15:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
matlab求多项式的系数:

单变量:

syms x y
f1=x^4+2*x+1;
f2=y^6+5*y^3+3;
f3=x^5+2*x^3*y^4+x*y^2+4;
c = sym2poly(f1)
c =
    1     0     0     2     1
>> c = sym2poly(f2)
c =
    1     0     0     5     0     0     3

多变量:

unction coef=poly_coef(f,var)
%提取多项式f中指定变量var的系数,将结果赋给数组coef
%f可以是含多变量的多项式
%var是多项式中指定的变量,可选,默认是x
%要用到函数poly_degree()来获得f中指定变量var的最高次幂
IF nargin==1
var=sym('x');
end
degree=poly_degree(f,var);
temp_f=f;
coef(degree+1)=subs(temp_f,var,0);
for n=1:degree
temp_f=simple((temp_f-coef(degree+2-n))/var);
coef(degree+1-n)=subs(temp_f,var,0);
end
end
举几个例子:
复制内容到剪贴板
代码:

>> syms x y
>> f1=x^4+2*x+1;
>> f2=y^6+5*y^3+3;
>> f3=x^5+2*x^3*y^4+x*y^2+4;
>> poly_coef(f1)

ans =

                               [1, 0, 0, 2, 1]
>> poly_coef(f1,y)

ans =

                               [ 4       ]
                               [x   + 2 x + 1]
>> poly_coef(f2)

ans =

                               [ 6    3 ]
                               [y   + 5 y   + 3]
>> poly_coef(f2,y)

ans =

                            [1, 0, 0, 5, 0, 0, 3]
>> poly_coef(f3)

ans =

                        [       4    2 ]
                        [1, 0, 2 y , 0, y , 4]
>> poly_coef(f3,y)

ans =

                        [ 3          5 ]
                        [2 x , 0, x, 0, x   + 4]

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1880

主题

6518

帖子

30

粉丝