Matlab学习之4——多项式的计算

说明

Matlab的版本为Matlab R2018b;学习的主要内容是Matlab相关的视频网课,可以把这理解为学习的笔记。

1、何为多项式

话不多说,简单理解,以下形式的函数就是多项式:
P ( x ) = a 0 x n + a 1 x n − 1 + . . . + a n − 1 x + a n P(x)=a_{0}{x^{n}}+a_{1}{x^{n-1}}+...+a_{n-1}x+a_{n} P(x)=a0xn+a1xn1+...+an1x+an

2、多项式的创建

观察多项式的表达式可知,在规定对象是的项数之后,只需指定各项前面的系数多项式便完全确定,因此可以通过行向量来完全指定一个多项式。
总的来说创建多项式有以下几种方式:

  1. 手动指定多项式的系数行向量创建
  2. 计算矩阵的特征多项式创建
  3. 由给定的根创建多项式
% 生成多项式的系数行向量p
% 使用符号函数转换函数,将多项式转换为符号函数并输出
p = [1 -5 0 6 -33];
poly2sym(p)

% 创建一个矩阵
% 通过计算矩阵的特征多项式来生成多项式
% 将多项式转变为符号函数并输出
% a = [1 2 3; 2 3 4; 3 4 5];
p1 = poly(a);
poly2sym(p1)

% 指定多项式的根(复数必须共轭)
% 生成多项式
root = [-5 -3+4i -3-4i];
p = ploy(root);
poly2sym(p)

3、多项式的运算

3.1 求多项式的根

  1. 直接用函数求多项式的根
  2. 先生成多项式的泛型矩阵,再求矩阵的特征值
% 直接求
p = [2 -5 6 -1 9];
root(p)

% 通过矩阵特征值求
p = [2 -5 6 -1 9];
q = compan(p);
elg(q)

3.2 多项式的四则运算

所谓的四则运算指的是:

  1. 加法
  2. 减法
  3. 乘法
  4. 除法
% 加减法运算对系数进行加减法即可

% 两个多项式相乘
p = [2 -5 6 -1 9];
d = [3 -90 -18];
pd = conv(p, d);
poly2sym(pd)

% 两个多项式相除
p1 = deconv(pd, d)

3.3 多项式的微分运算

% 求一阶微分
p = [2 -5 6 -1 9];
Dp = polyder(p);
poly2sym(Dp)

3.4 多项式的拟合运算

在这里插入图片描述

% 指定多项式为n阶,对X,Y数据进行拟合
% Polyfit(X, Y, n)
%5阶多项式对[0, Π/2]上的正弦函数进行最小二乘拟合
x = 0 : pi/20 : pi/2;
y = sin(x);
a = polyfit(x, y, 5);
x1 = 0 : pi/20 : 2*pi;
y1 = sin(x1);
y2 = a(1)*x1.^5 + a(2)*x1.^4 + a(3)*x1.^3 + a(4)*x1.^2 + ...
     a(5)*x1 + a(6);
plot(x1, y1, 'b-', x1, y2, 'r*');
legend('原曲线', '拟合曲线')
axis([0 7 -1.2 4])

猜你喜欢

转载自blog.csdn.net/qq_42318112/article/details/107279310
今日推荐