MATLBA计算方法和应用141多项式.docx

上传人:b****8 文档编号:28090333 上传时间:2023-07-08 格式:DOCX 页数:20 大小:66.06KB
下载 相关 举报
MATLBA计算方法和应用141多项式.docx_第1页
第1页 / 共20页
MATLBA计算方法和应用141多项式.docx_第2页
第2页 / 共20页
MATLBA计算方法和应用141多项式.docx_第3页
第3页 / 共20页
MATLBA计算方法和应用141多项式.docx_第4页
第4页 / 共20页
MATLBA计算方法和应用141多项式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

MATLBA计算方法和应用141多项式.docx

《MATLBA计算方法和应用141多项式.docx》由会员分享,可在线阅读,更多相关《MATLBA计算方法和应用141多项式.docx(20页珍藏版)》请在冰豆网上搜索。

MATLBA计算方法和应用141多项式.docx

MATLBA计算方法和应用141多项式

多项式的运算

院系XX专业XX姓名XX

MATLAB多项式运算函数如表所示。

多项式运算函数

指令

功能

p=poly(r)

根据多项式的根形成系数向量

p=poly(A)

根据方阵形成系数向量

px=polyval(p,x)

计算多项式的值

r=roots(p)

根据系数向量求多项式的根

p=conv(p1,p2)

根据两个多项式的系数求乘积的多项式系数

[q,r]=deconv(p1,p2)

p1除以p2的商多项式系数q,余数多项式系数r

pd=polyder(p)

求多项式导数的系数

pd=polyder(p1,p2)

求多项式乘积的导数的系数

[n,d]=polyder(p1,p2)

p1除以p2的导数多项式的分子系数n和分母系数d

p=polyfit(x,y,n)

对向量x和y的n阶拟合多项式系数

[r,p,k]=residue(p1,p2)

p1/p2的多项式展开,r是残数,p是极点,k的直项

1.降幂多项式的形成之一

设多项式的根为r1,r2,…,rn,则用根表达的多项式为

P(x)=(x-r1)(x–r2)…(x-rn)

展开并将多项式按降幂排列

P(x)=a1xn+a2xn-1+…+anx+an+1

系数向量为

p=[a1,a2,…+an+an+1]

[程序]P14_1_1poly.m

%多项式的形成之一(请设置断点)

clear%清除变量

r=[1,2,3]%多项式的根

p=poly(r)%求多项式的系数

poly2str(p,'x')%显示多项式

rr=roots(p)%求多项式的根

symsx%定义符号变量

ys=(x-1)*(x-2)*(x-3)%用根表示的符号多项式

expand(ys)%展开多项式

xx=0:

0.1:

4;%自变量向量

y=polyval(p,xx);%多项式的值

ys=subs(ys,x,xx);%替换多项式的值

figure%创建图形窗口

plot(xx,y,xx,ys,'r.')%画曲线

gridon%加网格

fs=16;%字体大小

title('多项式曲线之一','fontsize',fs)%显示标题

xlabel('\itx','fontsize',fs)%x标签

ylabel('\ity','fontsize',fs)%y标签

legend('数值多项式的值','符号多项式的值',2)%图例

[结果]

r=

123

p=

1-611-6

ans=

x^3-6x^2+11x-6

rr=

3.0000

2.0000

1.0000

ys=

(x-1)*(x-2)*(x-3)

ans=

x^3-6*x^2+11*x-6

[图示]

2.降幂多项式的形成之二

设一方阵

则行列式表示的多项式为

将根表达式和行列表达式展开为降幂多项式。

[程序]P14_1_2poly.m

%多项式的形成之二(请设置断点)

clear%清除变量

n=3;%方阵阶数

%A=pascal(n)%帕斯卡矩阵

A=magic(n)%魔方

p=poly(A)%方阵的特征多项式的系数

poly2str(p,'x')%显示多项式

symsx%定义符号变量

X=diag(repmat(x,n,1))%对角矩阵

P=X-A%矩阵表达式

ys=det(P)%求行列式的值形成符号多项式

xx=-5:

0.1:

15;%自变量向量

y=polyval(p,xx);%多项式的值

ys=subs(ys,x,xx);%替换多项式的值

figure%创建图形窗口

plot(xx,y,xx,ys,'r.')%画曲线

gridon%加网格

fs=16;%字体大小

title('多项式曲线之二','fontsize',fs)%显示标题

xlabel('\itx','fontsize',fs)%x标签

ylabel('\ity','fontsize',fs)%y标签

legend('数值多项式的值','符号多项式的值')%图例

[结果]

A=

816

357

492

p=

1.0000-15.0000-24.0000360.0000

ans=

x^3-15x^2-24x+360

X=

[x,0,0]

[0,x,0]

[0,0,x]

P=

[x-8,-1,-6]

[-3,x-5,-7]

[-4,-9,x-2]

ys=

x^3-15*x^2-24*x+360

[图片]

3.多项式的乘积

设第1个多项式的根为r11,r12,…,r1n,则用根表达的多项式为

P1(x)=(x-r11)(x–r12)…(x-r1n)

设第1个多项式的根为r21,r22,…,r2m,则用根表达的多项式为

P2(x)=(x–r21)(x–r22)…(x–r2m)

则两个多项式的乘积为

P(x)=P1(x)P2(x)=(x-r11)(x–r12)…(x-r1n)(x–r21)(x–r22)…(x–r2m)

[程序]P14_1_3conv.m

%多项式的乘积(请设置断点)

clear%清除变量

r1=[1,-2,3]%第1个多项式的根

r2=[2,4]%第2个多项式的根

p1=poly(r1)%第1个多项式的系数

p2=poly(r2)%第2个多项式的系数

p=conv(p1,p2)%两个多项式乘积的系数

r=roots(p)%多项式的根

xx=-2:

0.1:

4;%自变量向量

y1=polyval(p1,xx);%第1个多项式的值

y2=polyval(p2,xx);%第2个多项式的值

y=polyval(p,xx);%两个多项式乘积的值

figure%创建图形窗口

plot(xx,y1,xx,y2,xx,y)%画三条曲线

legend('\ity\rm_1','\ity\rm_2','\ity')%图例

gridon%加网格

fs=16;%字体大小

title('多项式的乘积','fontsize',fs)%显示标题

xlabel('\itx','fontsize',fs)%x标签

ylabel('\ity','fontsize',fs)%y标签

symsx%定义符号变量

y1=(x-1)*(x+2)*(x-3)%用根表示的第1个符号多项式

y2=(x-2)*(x-4)%用根表示的第2个符号多项式

y=y1*y2%两个多项式的乘积

expand(y)%展开多项式

y1=subs(y1,x,xx);%符号替换成数值

y2=subs(y2,x,xx);%符号替换成数值

y=subs(y,x,xx);%符号替换成数值

holdon%保持图像

plot(xx,y1,'.',xx,y2,'.',xx,y,'.')%画点

[结果]

r1=

1-23

r2=

24

p1=

1-2-56

p2=

1-68

p=

1-81520-7648

r=

-2.0000

4.0000

3.0000

2.0000

1.0000

y1=

(x-1)*(x+2)*(x-3)

y2=

(x-2)*(x-4)

y=

(x-1)*(x+2)*(x-3)*(x-2)*(x-4)

ans=

x^5-8*x^4+15*x^3+20*x^2-76*x+48

[图示]

4.多项式的商和余项

两个多项式相除可得

其中Q(x)是商多项式,R(x)余项多项式,R(x)的阶数小于P2(x)的阶数。

商和余项的系数分别为

q=[q1,q2,…+qs],r=[r1,r2,…+rt]

[程序]P14_1_4deconv.m

%多项式的商(请设置断点)

clear%清除变量

r1=[1,-2,3]%第1个多项式的根

r2=[2,4]%第2个多项式的根

p1=poly(r1)%第1个多项式的系数

poly2str(p1,'x')%显示多项式

p2=poly(r2)%第2个多项式的系数

poly2str(p2,'x')%显示多项式

[q,r]=deconv(p1,p2)%两个多项式商的系数和余项的系数

poly2str(r,'x')%显示多项式

poly2str(q,'x')%显示多项式

xx=-2:

0.1:

4;%自变量向量

y1=polyval(p1,xx);%第1个多项式的值

y2=polyval(p2,xx);%第2个多项式的值

yq=polyval(q,xx);%两个多项式商的值

yr=polyval(r,xx);%两个多项式余项的值

yy1=y2.*yq+yr;

figure%创建图形窗口

plot(xx,y1,xx,y2,xx,yq,xx,yr,xx,yy1,'.')%画曲线

legend('\ity\rm_1','\ity\rm_2','\itq','\itr')%图例

gridon%加网格

fs=16;%字体大小

title('多项式的商和余项','fontsize',fs)%显示标题

xlabel('\itx','fontsize',fs)%x标签

ylabel('\ity','fontsize',fs)%y标签

[结果]

r1=

1-23

r2=

24

p1=

1-2-56

ans=

x^3-2x^2-5x+6

p2=

1-68

ans=

x^2-6x+8

q=

14

r=

0011-26

ans=

11x-26

ans=

x+4

[图示]

5.多项式的导数

多项式的导数为

dP/dx=na1xn-1+(n-1)a2xn-2+…+an

系数向量为

p=[na1,n-1)a2,…+an]

[程序]P14_1_5polyder.m

%多项式的导数(请设置断点)

clear%清除变量

r=[1,2,3]%多项式的根

p=poly(r)%求多项式的系数

pd=polyder(p)%求多项式的导数

poly2str(pd,'x')%显示多项式

rr=roots(pd)%求多项式的根

symsx%定义符号变量

ys=(x-1)*(x-2)*(x-3)%用根表示的符号多项式

ysd=diff(ys)%求多项式的符号导数

expand(ys)%展开多项式

xx=0:

0.1:

4;%自变量向量

yd=polyval(pd,xx);%多项式的值

ysd=subs(ysd,x,xx);%替换多项式的值

figure%创建图形窗口

plot(xx,yd,xx,ysd,'r.')%画曲线

gridon%加网格

fs=16;%字体大小

title('多项式的导数','fontsize',fs)%显示标题

xlabel('\itx','fontsize',fs)%x标签

ylabel('\ity','fontsize',fs)%y标签

legend('数值多项式的导数','符号多项式的导数')%图例

[结果]

r=

123

p=

1-611-6

pd=

3-1211

ans=

3x^2-12x+11

rr=

2.5774

1.4226

ys=

(x-1)*(x-2)*(x-3)

ysd=

(x-2)*(x-3)+(x-1)*(x-3)+(x-1)*(x-2)

ans=

x^3-6*x^2+11*x-6

[图片]

6.多项式乘积的导数

多项式乘积的导数为

dP/dx=(dP1/dx)P2+(dP2/dx)P1

[程序]P14_1_6polyder.m

%多项式乘积的导数(请设置断点)

clear%清除变量

r1=[1,-2,3]%第1个多项式的根

r2=[2,4]%第2个多项式的根

p1=poly(r1)%第1个多项式的系数

p2=poly(r2)%第2个多项式的系数

pd=polyder(p1,p2)%两个多项式乘积导数的系数

r=roots(pd)%多项式的根

xx=-2:

0.1:

4;%自变量向量

dfy=polyval(pd,xx);%两个多项式乘积导数的值

symsx%定义符号变量

y1=(x-1)*(x+2)*(x-3)%用根表示的第1个符号多项式

y2=(x-2)*(x-4)%用根表示的第2个符号多项式

ys=y1*y2%两个多项式的乘积

expand(ys)%展开多项式

dys=diff(ys)

dy=subs(dys,x,xx);%符号替换成数值

figure%创建图形窗口

plot(xx,dfy,xx,dy,'.')%画曲线

gridon%加网格

fs=16;%字体大小

title('多项式乘积的导数','fontsize',fs)%显示标题

xlabel('\itx','fontsize',fs)%x标签

ylabel('d\ity\rmd/\itx','fontsize',fs)%y标签

legend('数值多项式乘积的导数','符号多项式乘积的导数')%图例

[结果]

r1=

1-23

r2=

24

p1=

1-2-56

p2=

1-68

pd=

5-324540-76

r=

3.6353

-1.1725

2.5248

1.4124

y1=

(x-1)*(x+2)*(x-3)

y2=

(x-2)*(x-4)

ys=

(x-1)*(x+2)*(x-3)*(x-2)*(x-4)

ans=

x^5-8*x^4+15*x^3+20*x^2-76*x+48

dys=

(x+2)*(x-3)*(x-2)*(x-4)+(x-1)*(x-3)*(x-2)*(x-4)+(x-1)*(x+2)*(x-2)*(x-4)+(x-1)*(x+2)*(x-3)*(x-4)+(x-1)*(x+2)*(x-3)*(x-2)

[图片]

7.多项式商的导数

多项式商的导数为

[程序]P14_1_7polyder.m

%多项式商的导数(请设置断点)

clear%清除变量

r1=[1,-2,3]%第1个多项式的根

r2=[2,4]%第2个多项式的根

p1=poly(r1)%第1个多项式的系数

p2=poly(r2)%第2个多项式的系数

[n,d]=polyder(p1,p2)%两个多项式商导数的系数

%r=roots(pd)%多项式的根

xx=-2:

0.1:

4;%自变量向量

yn=polyval(n,xx);%两个多项式商导数分子的值

yd=polyval(d,xx);%两个多项式商导数分母的值

symsx%定义符号变量

y1=(x-1)*(x+2)*(x-3)%用根表示的第1个符号多项式

y2=(x-2)*(x-4)%用根表示的第2个符号多项式

ys=y1/y2%两个多项式的商

expand(ys)%展开多项式

dys=diff(ys)%求符号导数

dy=subs(dys,x,xx);%符号替换成数值

figure%创建图形窗口

plot(xx,yn./yd,xx,dy,'.')%画曲线

gridon%加网格

fs=16;%字体大小

title('多项式商的导数','fontsize',fs)%显示标题

xlabel('\itx','fontsize',fs)%x标签

ylabel('d\ity\rmd/\itx','fontsize',fs)%y标签

legend('数值多项式商的导数','符号多项式商的导数',3)%图例

axis([-2,4,-50,5])%坐标范围

[结果]

r1=

1-23

r2=

24

p1=

1-2-56

p2=

1-68

n=

1-1241-44-4

d=

1-1252-9664

y1=

(x-1)*(x+2)*(x-3)

y2=

(x-2)*(x-4)

ys=

(x-1)*(x+2)*(x-3)/(x-2)/(x-4)

ans=

1/(x-2)/(x-4)*x^3-2/(x-2)/(x-4)*x^2-5/(x-2)/(x-4)*x+6/(x-2)/(x-4)

dys=

(x+2)*(x-3)/(x-2)/(x-4)+(x-1)*(x-3)/(x-2)/(x-4)+(x-1)*(x+2)/(x-2)/(x-4)-(x-1)*(x+2)*(x-3)/(x-2)^2/(x-4)-(x-1)*(x+2)*(x-3)/(x-2)/(x-4)^2

[图片]

7.多项式的拟合

[程序]P14_1_8polyfit.m

%多项式拟合(请设置断点)

clear%清除变量

x=linspace(0,2*pi);%自变量向量

y=sin(x);%正弦函数

figure%创建图形窗口

plot(x,y)%画正弦曲线

holdon%保持图像

cc='bgrcmyk';%颜色字符

n=length(cc);%字符个数

fori=1:

n%按字符循环

p=polyfit(x,y,i);%拟合多项式系数

yv=polyval(p,x);%多项式的值

plot(x,yv,['.',cc(i)])%画拟合曲线

end%结束循环

legend(char('sin\itx',num2str((1:

n)')))%图例

gridon%加网格

fs=16;%字体大小

title('正弦函数的多项式拟合','fontsize',fs)%显示标题

xlabel('\itx','fontsize',fs)%x标签

ylabel('\ity','fontsize',fs)%y标签

[图片]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1