我是靠谱客的博主 饱满热狗,最近开发中收集的这篇文章主要介绍《MATLAB与系统仿真》 多项式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

【转载请注明出处:http://blog.csdn.net/leytton/article/details/40380753

%功能:多项式求解 
%建立向量X,各元素为多项式按降幂排列时系数,默认项为0,不得省略 
% 如 y=x^3+4*x+12 表示为X=[1 0 4 12]; 
% y=x^2-9 表示为 X=[1 0 -9]; y=3x+6 表示为 X=[3 6];
% roots(X) 即为 y=0 的解
X=[1 0 -9];
roots(X)
X=[3 6];
roots(X)

%功能:多项式乘积
%y1=2*x^2+3x+1   y2=x+6
y1=[2 3 1];
y2=[1 6];
y=conv(y1,y2)   %y=y1*y2
polyval(y,4)    %当x=4时求y的值

%功能:多项式拟合
clear all;
x=[0 1 2 3 4 5];
y=[2 1 3 2 5 8];

P2=polyfit(x,y,2);
P8=polyfit(x,y,8);

%y2=polyval(P2,x(1):0.01:x(end));
y2=polyval(P2,x);
y8=polyval(P8,x);

plot(x,y,'*');
hold on
%plot(x(1):0.01:x(end),y2,'x');
%plot画图的颜色线型 http://blog.sina.com.cn/s/blog_4d8716e401000apg.html
plot(x,y2,'r:');
plot(x,y8,'c-');
ylim([0,8]);

clear all;
t=0:pi/50:5*pi;
y0=exp(-t/4);
y=exp[(-t/4).*sin(4*t)];
plot(t,y,'-r')


摘自 http://blog.csdn.net/wenqisun/article/details/7952476

多项式拟合

polyfit(X,Y,N):多项式拟合,返回降幂排列的多项式系数。

polyval(P,xi):计算多项式的值。

其中,X,Y是数据点的值;N是拟合的最高次幂;P是返回的多项式系数;xi是要求的点的横坐标。

x=[1 2 3 4 5 6 7 8 9]
y=[9 7 6 3 -1 2 5 7 20]
P=polyfit(x,y,3);
xi=0:.2:10;
yi=polyval(P,xi);
plot(xi,yi,x,y,'r*');


摘自 http://jingyan.baidu.com/article/6c67b1d6eee2dc2787bb1eb5.html

poly---特征多项式

格式:poly(a)

(1)如果a是一个n阶矩阵,poly(a)是一个有n+1个元素的行向量,这n+1个元素是特征多项式的系数(降幂排列).
(2)如果a是一个n维向量,则poly(a)是多项式(x-a(1))*(x-a(2))*..(x-a(n)),即该多项式以向量a的元素为根。


摘自 http://jingyan.baidu.com/article/a3aad71aaff6edb1fb009684.html

特定点数值求解

对于给定的多项式表达式,比如f(x),求特定点(x0)值,可以采用polyval函数。

% polyval

% y = x^5 + 4*x^3 + 2*x^2 + x + 1

p = [1 0 4 2 1 1];

y1 = polyval(p,1)

其中,在表达多项式时,其实只需要表示出各项系数。计算结果如下所示:



多项式相乘

对于给定的多项式p1与p2,可以利用conv函数快速求解其乘积值:

% conv

% y1 = x^5 + 4*x^3 + 2*x^2 + x + 1

% y2 = x^2 + 4*x + 2

p1 = [1 0 4 2 1 1];

p2 = [1 4 2];

p = conv(p1,p2)

其中输出结果如下:


参数化显示多项式

在数学分析与书写时,我们习惯于参数化多项式,也就是含有变量的式子,可利用poly2str函数。

% poly2str

% y = 5*x^3 + 2*x + 3

p = [5 0 2 3];

ps = poly2str(p,'x')

根(零点)求解

在多项式分析时,常需要求解根,可使用roots指令。

% roots

% y = 5*x^4 + 4*x^2 + 2*x + 4

p = [5 0 4 2 4];

r = roots(p)

由于方程系数为4阶,可以求得4个实根。如下图所示:


多项式相除

有时候需要进行多项式之间除法,例如 p = p1 / p2 ,其中p1,p2为两个多项式,可以借助于deconv函数实现。

% roots

% y1 = 3*x^4 + 4*x^2 + 2*x + 6

% y2 = 5*x^2 + x + 3

p1 = [3 0 4 2 6];

p2 = [5 1 3];

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

其中,p是相除后的商,而r为余数。




转载于:https://www.cnblogs.com/leytton/p/8253347.html

最后

以上就是饱满热狗为你收集整理的《MATLAB与系统仿真》 多项式的全部内容,希望文章能够帮你解决《MATLAB与系统仿真》 多项式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部