如何在matlab中展开多项式
发布网友
发布时间:2022-04-21 19:28
我来回答
共3个回答
热心网友
时间:2023-09-08 15:24
1、电脑上打开软件。
2、首先评估一下多项式P(x)=x4次幂+7x3次幂-5x+9,这里可以表示成p = [1 7 0 -5 9];然后使用polyval评估计算。
3、在命令行窗口按回车键可以看到语句返回的结果如下图所示。
4、也可以创建一个方阵X,评估计算多项式P,按回车键,返回结果。
5、开始计算多项式的根,通过roots函数求根,具体代码如下图所示。
6、也可以使用poly函数返回多项式系数,它是roots函数的逆,按回车键。
7、最后进行多项式的曲线拟合,使用polyfit函数查找系数,x,y拟合n度多项式,实现拟合数据多项式,按回车键返回结果和输出图形。
热心网友
时间:2023-09-08 15:24
1.多项式的表达
(1) 多项式的向量表达
i)形如 的多项式,可以用向量来表示:
例如:就 可以表示为P=[1 0 -2 3 -4]。
ii)已知多项式的根为 ,则该多项式为:poly(A)
(2) 多项式的形式表达
i) 直接以符号的形式输出多项式,例如:
>> f1=sym('x^4-2*x^2+3*x-4')
f1 =
x^4-2*x^2+3*x-4
ii) 定义符号变量,再输出多项式的表达式,例如:
>> syms x
>> f1=x^4-2*x^2+3*x-4
f1 =
x^4-2*x^2+3*x-4
iii)已知多项式的向量表达形式,则多项式为:poly2str(A,’x’),例如:
>> A=[1 0 -2 3 -4]; %多项式的向量表达式
>> f1=poly2str(A,'x') %多项式的形式表达式
f1 =
x^4 - 2 x^2 + 3 x - 4
2.多项式的运算
(1)向量表达的多项式运算
在进行加法与减法运算时,参加运算的多项式必须具有相同的阶数,如果阶数不同,则低阶的多项式必须补零。例如:
>> a=[1 0 2];b=[1 2 3 5 0]; %两个多项式
>> f1=poly2str(a,'x')
f1 =
x^2 + 2
>> f2=poly2str(b,'x')
f2 =
x^4 + 2 x^3 + 3 x^2 + 5 x
>> c=[0 0 a] + b %求和
c =
1 2 4 5 2
>> poly2str(c,'x')
ans =
x^4 + 2 x^3 + 4 x^2 + 5 x + 2
>> d=[0 0 ,a]-b %求差
d =
-1 -2 -2 -5 2
>> poly2str(d,'x')
ans =
-1 x^4 - 2 x^3 - 2 x^2 - 5 x + 2
多项式乘法:conv(x,y) 多项式x与y的乘积。例如:
>> e=conv(a,b) %求积
e =
1 2 5 9 6 10 0
>> poly2str(e,'x')
ans =
x^6 + 2 x^5 + 5 x^4 + 9 x^3 + 6 x^2 + 10 x
多项式带余除法:[q,r]=deconv(x,y) 多项式y被x除,q是商式,r是余式。
例如:
>> [q,r]=deconv(b,a) %带余除法
q =
1 2 1
r =
0 0 0 1 -2
>> q=poly2str(q,'x') %商式
q =
x^2 + 2 x + 1
>> r=poly2str(r,'x') %余式
r =
x - 2
多项式的根:roots(x)。例如matlab代码:
>> roots(a) %求多项式的根
运算结果为:
ans =
0 + 1.4142i
0 - 1.4142i
多项式的值:polyval(f,x) f(x)的值。例如:
>> polyval(a,-3) %计算f1(-3)
ans =
11
多项式函数求导运算:polyder(x) 多项式x的导函数。例如:
>> g=polyder(a) %求多项式f1的导函数
g =
2 0
>> poly2str(g,'x')
ans =
2 x
(2)符号形式的多项式运算
多项式的加法,减法,乘法,除法。例如:
>> clear
>> syms x
>> f1=x^2-1;f2=x^3+x^2-2; %输出多项式f1与f2
>> f1+f2 %求和
ans =
2*x^2-3+x^3
>> f2-f1 %求差
ans =
x^3-1
>> f1*f2 %求积
ans =
(x^2-1)*(x^3+x^2-2)
>> f1/f2 %求商
ans =
(x^2-1)/(x^3+x^2-2)
多项式的幂:x^p或power(x,p) 其中x是多项式,p是正整数。
多项式展开:expand(x) 展开多项式x。
多项式因式分解:factor(x) 在有理数域上因式分解开多项式x。例如:
>> f3=f1^3 %多项式f1的三次方
f3 =
(x^2-1)^3
>> f4=power(f1,3) %多项式f1的三次方
f4 =
(x^2-1)^3
>> expand(f3) %展开多项式f3
ans =
x^6-3*x^4+3*x^2-1
>> f5=factor(f2) %将多项式f2因式分解
f5 =
(x-1)*(x^2+2*x+2)
最大公因式:*(x,y) x与y的最大公因式。
[g,c,d]=*(x,y) 其中g=cx+dy.
最小公倍式:lcm(x,y) x与y的最小公倍式。例如:
>> *(f1,f2) %求多项式f1与f2的最大公因式
ans =
x-1
>> [g,c,d]=*(f1,f2) %最大公因式的组合
g =
x-1
c =
-1-x
d =
1
>> lcm(f1,f2) %求多项式f1与f2的最小公倍式
ans =
(x+1)*(x^3+x^2-2)
多项式的根:solve(x) 例如:
>> solve(f2) %求多项式f2的根
ans =
1
-1+i
-1-i
多项式函数求导运算:diff(x) 多项式x的导函数。例如:
>> g=diff(f2) %求多项式f2的导函数
g =
3*x^2+2*x
热心网友
时间:2023-09-08 15:25
syms s
ps=((s^2+1))^3*(s+5)^2*(s^4+4*s^2+7)
ps1=expand(ps)
结果:
ps =
(s^2+1)^3*(s+5)^2*(s^4+4*s^2+7)
ps1 =
175+70*s+632*s^2+875*s^4+584*s^6+197*s^8+220*s^7+340*s^5+250*s^3+s^12+32*s^10+10*s^11+70*s^9