MATLAB多项式和线性方程组的求解
- 格式:doc
- 大小:597.00 KB
- 文档页数:7
实验报告MATLAB中对线性方程组求解一种方法一.前言MATLAB是一个功能强大的线性方程组求解工具,它特别适合求解大规模的线性方程组。
由于MATLAB是专为矩阵运算而设计的,它的运算效率较高,而且可以使用循环结构,因此用MATLAB可以求解需要千万次运算量的复杂方程组。
下面介绍的求解方法对于小规模方程组也是非常有效的。
二.实验原理迭代法就是用某种极限国采取逐步逼近线性方程组精确解的方法。
方法具有对计算机的存贮单元需求少,程序设计简单、原始系数矩阵在计算过程中不便等优点,是求解大型稀疏矩阵方程组的重要方法。
迭代法不是用有限步运算求精确解,而是通过迭代产生近似逼近精确解。
如Jacobi迭代法、Gauss-Serdel迭代法。
三.实验目的1.熟练MATLAB中运用迭代方法求解线性方程组的原理;2.熟练MATLAB中矩阵的运用和程序设计。
四.实验步骤1.Jacobi迭代法对于线性方程组Ax=b,如果A为非奇异方阵,即aii≠0(i=1,2,…,n),则可将A分解为A=D-L-U,其中D为对角阵,其元素为A的对角元素,L与U为A的下三角阵和上三角阵,于是Ax=b化为:x=D-1(L+U)x+D-1b与之对应的迭代公式为:x(k+1)=D-1(L+U)x(k)+D-1b这就是Jacobi迭代公式。
如果序列{x(k+1)}收敛于x,则x必是方程Ax=b的解。
Jacobi迭代法的MATLAB函数文件Jacobi.m如下:function[x,n]=jacobi(A,b,x0,eps,varargin)format longif nargin==3eps= 1.0e-6; %默认精度M = 200; %参数不足时默认后两个条件elseif nargin<3error('参数不足');returnelseif nargin==5;M=varargin;end[n,m]=size(A);nb=length(b);%当方程组行与列的维数不相等时,停止计算,并输出出错信息if n~=merror('矩阵A行数和列数必须相等!');return;end%当方程组与右端项的维数不匹配时,停止计算,并输出出错信息if n~=nberror('矩阵A的行数必须和b的长度相等!');return;endD =zeros(n,n);for i=1:nif A(i,i)==0error('A对角线元素为零!')return;endD(i,i)=A(i,i); %得到矩阵DendB=inv(D)*(D-A); %B为迭代矩阵g=inv(D)*b; %g为右端项pr=max(abs(eig(B))) %求迭代矩阵谱半径if pr>=1error('迭代矩阵谱半径大于1迭代法不收敛');return;endk=0;tol=1;while tol>=epsx = B*x0+gk = k+1; %迭代步数tol = norm(x-x0);%前后两步迭代结果的误差x0 = x;if(k>=200)disp('Warning: 迭代次数太多,可能不收敛!');return;endend2. 例题用Jacobi迭代法求解下列线性方程组。
matlab求解多项式
在MATLAB中,可以使用polyfit函数来求解多项式。
polyfit函数的基本语法为:
p = polyfit(x, y, n)
其中,x是自变量的向量,y是因变量的向量,n是多项式
的阶数。
polyfit函数会返回一个多项式的系数向量p,p的长度为
n+1,其中p(1)为多项式的常数项系数,p(2)为一次项系数,依此类推。
例如,假设有以下数据点:
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
要求解一个一次多项式,可以使用以下代码:
p = polyfit(x, y, 1)
这样,p就是一个包含两个元素的向量,p(1)为常数项系数,p(2)为一次项系数。
如果要求解一个二次多项式,可以将n参数设置为2:
p = polyfit(x, y, 2)
同样,p就是一个包含三个元素的向量,p(1)为常数项系数,p(2)为一次项系数,p(3)为二次项系数。
通过polyval函数可以使用求解得到的多项式进行预测,
其基本语法为:
y_pred = polyval(p, x_pred)
其中,p为多项式的系数向量,x_pred为待预测的自变量,y_pred为通过多项式预测得到的因变量。
例如,使用上述求解得到的一次多项式进行预测,可以使
用以下代码:
x_pred = [6, 7, 8, 9, 10]
y_pred = polyval(p, x_pred)
这样,y_pred就是通过一次多项式预测得到的因变量值。
二、多项式(1)多项式的表达式和创建MATLAB中使用一维向量来表示多项式,将多项式的系数按照降幂次序存放在向量中。
例如:多项式2X4+3X3+5X2+1可以用向量[2 3 5 0 1]来表示。
例2-1,输入多项式3x4-10x3+15x+1000在命令窗口输入:p=[3 -10 0 15 1000]输出结果如下:(2)多项式求根1、多项式的根找出多项式的根,即使多项式为零的值,MATLAB提供了特定的函数roots求解多项式的根。
例2-2,求解多项式3x4-10x3+15x+1000的根。
在命令窗口输入:输出的结果如下:2、由根创建多项式在MATLAB中,无论是一个多项式,还是它的根,都是以向量形式存储的,按照惯例,多项式是行向量,根是列向量。
因此当我们给出一个多项式时,MATLAB 也可以构造出相应的多项式,这个过程需要使用函数poly。
例2-3输入及结果(3)多项式四则运算1,多项式的加法MATLAB并未提供一个特别的函数,如果两个多项式向量大小相同,那么多项式相加时就和标准的数组加法相同。
例2-4在命令窗口输入:a=[1 3 5 7 9];b=[1 2 4 6 8];c=a+b输出结果:C(x)=2x4+5x3+9x2+13x+172、多项式的乘法运算在MATLAB中,函数conv支持多项式乘法(运算法则为执行两个数组的卷积)。
例2-5在命令窗口输入:a=[1 3 5 7 9]; b=[1 2 4 6 8];c=conv(a,b)输出的结果如下:C(x)=x8+5x7+15x6+35x5+69x4+100x3+118x2+110x+72PS:conv指令只能进行两个多项式的乘法,两个以上的多项式的乘法需要重复使用conv。
3、多项式的除法运算在MATLAB中,由函数deconv完成的。
例2-6在命令窗口输入:c=[1 5 15 35 69 100 118 110 72];b=[1 2 4 6 8]; [a,r]=deconv (c,b)输出的结果:(4)多项式微分1、多项式的导数MATLAB为多项式求导提供了函数polyder。
数组运算及线型方程组的求解1.“:”号的用法。
用“:”号生成行向量a=[1 2 3 4 5 6 7 89 10]、b=[5 3 1 -1 -3 -5];用线性等分命令linspace重新生成上述的a和b向量。
另,在100和10000之间用对数等分命令logspace生成10维的向量c。
linspace(1,10,10) linspace(5,-5,6) ak=logspace(2,4,10)2. 已知多项式a(x)=x2+2x+3,b(x)=4x2+5x+6,求a,b积的微分。
a=[1 2 3];b=[4 5 6];c=polyder(a,b)c=poly2str(c,'x')3.用生成下列矩阵,取出方框内的数组元素a=[1:5;10:-1:6;11:15;16:20;21:25]q=a(2,2:3)m=a(2:4,4)n=a(4:5,1:3)4. 生成一个9×9维的魔方矩阵,提取其中心的3×3维子矩阵M,利用sum函数检验其各行和各列的和是否相等。
并且实现上述中心矩阵左旋90°或右旋90°,左右翻转,上下翻转a=magic(9)a =47 58 69 80 1 12 23 34 45 57 68 79 9 11 22 33 44 46 67 78 8 10 21 32 43 54 56 77 7 18 20 31 42 53 55 66 6 17 19 30 41 52 63 65 76 16 27 29 40 51 62 64 75 5 26 28 39 50 61 72 74 4 1536 38 49 60 71 73 3 14 2537 48 59 70 81 2 13 24 35>> m=a(4:6,4:6)m =20 31 42 30 41 52 40 51 62 >> c=rot90(m)c =42 52 62 31 41 51 20 30 40 >> c=rot90(m,-1)c =40 30 20 51 41 31 62 52 42 >> s=fliplr(m)s =42 31 20 52 41 30 62 51 40 >> w=flipud(m)w =40 51 62 30 41 52 20 31 425.已知a=[1 2 3:4 5 6;7 8 0],求其特征多项式并求其根、特征值和特征多项式6. 计算二重不定积分7.求解微分方程。
matlab解方程组的函数在科学和工程计算中,解方程组是一项非常常见且重要的任务。
方程组是由多个方程组成的集合,其中每个方程都包含有待求解的未知变量。
解方程组的目标是找到一组满足所有方程的未知变量的值。
Matlab是一种功能强大的数值计算软件,它提供了许多用于解方程组的函数。
本文将介绍一些常用的Matlab解方程组函数,并使用实例演示它们的用法。
一、Matlab解方程组的函数概述Matlab提供了多种解方程组的函数,包括直接法和迭代法。
这些函数可以帮助我们高效地求解线性方程组和非线性方程组。
以下是一些常用的Matlab解方程组函数:1.linsolve函数:用于求解线性方程组。
它可以使用直接法(LU分解、Cholesky分解)或迭代法(Jacobi、Gauss-Seidel)来解线性方程组。
2.fsolve函数:用于求解非线性方程组。
它使用迭代法来逐步逼近非线性方程组的解。
3.ode45函数:用于求解常微分方程组。
它使用Runge-Kutta方法来数值求解微分方程组。
4.vpasolve函数:用于求解符号方程组。
它可以求解包含符号未知变量的方程组。
接下来,我们将详细介绍每个函数的用法,并给出相关的实例。
二、linsolve函数2.1 求解线性方程组linsolve函数用于求解线性方程组,语法如下:X = linsolve(A, B)其中,A是系数矩阵,B是常数向量。
函数将返回未知变量的解向量X。
2.2 示例考虑以下线性方程组:2x + 3y = 74x - 5y = 2我们可以使用linsolve函数求解:A = [2, 3; 4, -5];B = [7; 2];X = linsolve(A, B);结果X将包含未知变量x和y的解。
三、fsolve函数3.1 求解非线性方程组fsolve函数用于求解非线性方程组,语法如下:X = fsolve(fun, X0)其中,fun是一个函数句柄,表示非线性方程组的函数,X0是初始解向量。
用matlab进行方程组求解的案例一、背景介绍方程组求解是数学中一个重要的问题,也是许多科学和工程领域中常见的问题。
在过去,人们通常使用手算或者计算器进行方程组求解,但是这种方法效率低下且容易出错。
随着计算机的发展和普及,使用计算机进行方程组求解已经成为了一种主流的方法。
Matlab是一款强大的数值计算软件,它提供了许多用于求解方程组的函数和工具箱。
本文将介绍如何使用Matlab进行方程组求解,并通过一个实例来说明其具体应用。
二、Matlab中的方程组求解函数在Matlab中,有多种函数可以用于求解方程组,包括线性方程组、非线性方程组、常微分方程等。
下面列出一些常用的函数:1. linsolve:用于求解线性方程组;2. fsolve:用于求解非线性方程组;3. ode45:用于求解常微分方程。
三、实例介绍假设有如下非线性方程组:x^2 + y^2 = 1x^3 - y = 0我们需要使用Matlab对其进行求解。
四、代码实现1. 定义函数首先需要定义一个函数,输入为变量向量x=[x,y],输出为方程组的值向量f=[f1,f2]。
代码如下:function f = myfun(x)f(1) = x(1)^2 + x(2)^2 - 1;f(2) = x(1)^3 - x(2);end2. 求解方程组使用fsolve函数求解方程组。
代码如下:x0 = [0,0]; % 初始值[x,fval] = fsolve(@myfun,x0);其中,x为方程组的解向量,fval为方程组的值向量。
3. 结果展示将求解结果输出。
代码如下:fprintf('x=%f, y=%f\n',x(1),x(2));运行程序后,得到如下结果:x=0.682327, y=0.731689五、结论本文介绍了如何使用Matlab进行非线性方程组求解,并通过一个实例进行了说明。
Matlab提供了多种函数和工具箱,可以满足不同类型的方程组求解需求。
利⽤Matlab求解线性⽅程组利⽤⾼斯消元法编写了⼀个能够计算线性⽅程组,⽆解,有唯⼀解,⽆穷多解情况的matlab代码。
程序说明:变量n1表⽰系数矩阵或者增⼴矩阵的列数。
当增⼴矩阵的秩与系数矩阵的秩相等时(⽅程有唯⼀解时),n1表⽰系数矩阵的列数。
当⽅程组⽆解或者有⽆数多解时,n1表⽰增⼴矩阵的列数。
处理办法为:if sum(C)~=num1&&j==n1&&flag1==0%系数矩阵在消元过程中,若出现对⾓线及其⼀下元素均为0时,将n1变为增⼴矩阵的列数。
n1=n1+1;%在j等于系数矩阵的列时,n1增加1,变为增⼴矩阵的列。
flag1=1;%flag1保证if内的语句,只执⾏1次。
end当j执⾏到系数矩阵的列n1,且sum(C)~=num1(即系数消元过程中,出现了对⾓线及其⼀下元素均为0,如图1所⽰)时,将n1+1.图1function x=liner_equ_v2(A,b)%该函数⽤于求解线性⽅程组%输⼊参数,A:⽅程组的系数矩阵,b:⽅程组的常数向量(列向量)%输出参数,x:⽅程组的解%时间,2021.10.3%版权所有⼈,zsy%%使⽤实例% A=[1,1,-3,-1;% 3,-1,-3,4;% 1,5,-9,-8];% b=[1;4;0];B=[A,b];%增⼴矩阵[m,n]=size(B);num1=0;for i=1:mnum1=num1+i;endC=zeros(1,n);i=1;j=1;n1=n-1;%系数矩阵或增⼴矩阵的列数flag1=0;while j<=n1if B(i,j)~=0B(i,:)=B(i,:)/B(i,j);for k=i+1:mB(k,:)=B(k,:)-B(k,j)*B(i,:);endC(1,j)=i;if sum(C)~=num1&&j==n1&&flag1==0%系数矩阵在消元过程中,若出现对⾓线及其⼀下元素均为0时,将n1变为增⼴矩阵的列数。
matlab解方程组方法在MATLAB中,有多种方法可以解方程组。
以下是其中几种常用的方法:1.solve函数:这是最直接的方法,适用于解线性方程组。
假设你有以下线性方程组:(Ax = b)你可以使用solve函数来求解。
例如:2.matlab复制代码A = [1, 2; 3,4];b = [5; 6];x = solve(A,b);3.\和/运算符:这两个运算符也可以用于解线性方程组。
例如:4.matlab复制代码A = [1, 2; 3, 4];b = [5; 6];x = A\b; % 使用左除运算符或者matlab复制代码x = b/A; % 使用右除运算符5.gaussj函数:这个函数使用高斯-约当消元法来解方程组。
使用方法如下:6.matlab复制代码A = [1, 2; 3,4];b = [5; 6];x = gaussj(A,b);7.mldivide函数:这个函数与\运算符相同,也是用于解线性方程组。
例如:8.matlab复制代码A = [1, 2; 3, 4];b = [5; 6];x = mldivide(A, b); % 等价于A\b9.lyap函数:对于非线性方程组,可以使用lyap函数来求解。
这个函数用于解决Lyapunov方程,通常用于控制系统和稳定性分析。
使用方法如下:10.matlab复制代码A = [1, 2; 3, 4];lyap(A); % 对于给定的A矩阵,求解Lyapunov方程。
11.fzero和root函数:这两个函数用于求解非线性方程的根。
例如,如果你有一个非线性方程(f(x) = 0),你可以使用fzero或root来找到这个方程的根。
使用方法如下:12.matlab复制代码f = @(x) x^2 - 4; % 非线性方程 f(x) = x^2 - 4x = fzero(f, [1, 2]); % 在区间[1,2]内寻找方程的根或者:matlab复制代码root(f) % 使用root函数求解非线性方程的根。
matlab求线性方程组的解求解线性方程分为两种方法–直接法和迭代法常见的方法一共有8种直接法Gauss消去法Cholesky分解法迭代法Jacobi迭代法Gauss-Seidel迭代法超松弛迭代法共轭梯度法Bicg迭代法Bicgstab迭代法这里我从计算代码的角度来解释一下,代码按以下顺序给出。
把方程组直接带入已知条件,就可以得到答案。
适用条件Gauss消去法:求解中小规模线性方程(阶数不过1000),一般用于求系数矩阵稠密而且没有任何特殊结构的线性方程组Cholesky分解法:对称正定方程优先使用,系数矩阵A是n 阶对称正定矩阵Jacobi迭代法非奇异线性方程组,分量的计算顺序没有关系Gauss-Seidel迭代法与Jacobi迭代法相似,但计算的分量不能改变超松弛迭代法Jacobi迭代法和Gauss-Seidel迭代法的加速版,由Gauss-Seidel迭代法改进而来,速度较快共轭梯度法需要确定松弛参数w,只有系数矩阵具有较好的性质时才可以找到最佳松弛因子。
但好处是不用确定任何参数,他是对称正定线性方程组的方法也是求解大型稀疏线性方程组最热门的方法Bicg迭代法本质是用双共轭梯度求解线性方程组的方法,对求解的方程没有正定性要求Bicgstab迭代法本质是用稳定双共轭梯度求解线性方程组的方法,对求解的方程没有正定性要求Gauss消去法第一、二个函数ltri、utri是一定要掌握的,后面的几乎每个函数都要用到ltri简单来说,当Ly=bb,L(非奇异下三角矩阵)已知求yfunction y =ltri(L,b)n=size(b,1);y=zeros(n,1);for j =1:n-1y(j)=b(j)/L(j,j);b(j+1:n)=b(j+1:n)-y(j)*L(j+1:n,j); endy(n)=b(n)/L(n,n);utri简单来说,当Ux=yy,U(非奇异上三角矩阵)已知求xfunction x =utri(U,y)n=size(y,1);x=zeros(n,1);for j = n:-1:2x(j)=y(j)/U(j,j);y(1:j-1)=y(1:j-1)-x(j)*U(1:j-1,j);endx(1)=y(1)/U(1,1);gauss算法,计算时粘贴过去就好function[L,U]=gauss(A)n=size(A,1);for k =1:n-1A(k+1:n,k)=A(k+1:n,k)/A(k,k);A(k+1:n,k+1:n)=A(k+1:n,k +1:n)-A(k+1:n,k)*A(k,k+1:n);endL=tril(A,-1)+eye(n);U=triu(A);使用例子已经知道一个线性方程组,这里我就不写出数学形式了,A是系数矩阵,直接把上面写好的函数复制过来在运算就可以。
MATLAB中解方程组1. 引言在科学计算和工程领域,解方程组是一个常见的任务。
MATLAB作为一种强大的数值计算软件,提供了多种方法来解决方程组问题。
本文将介绍MATLAB中解方程组的基本方法和技巧。
2. 方程组的表示在MATLAB中,我们可以使用矩阵和向量的形式表示线性方程组。
例如,考虑以下线性方程组:2x + 3y = 74x - y = -1可以将其表示为矩阵和向量的形式:A = [2, 3; 4, -1]B = [7; -1]其中A是系数矩阵,B是常数向量。
3. 使用反斜杠运算符求解方程组MATLAB提供了一个简单而强大的运算符\来求解线性方程组。
例如,我们可以使用以下代码求解上述方程组:A = [2, 3; 4, -1];B = [7; -1];X = A \ B;运行以上代码后,变量X将包含方程组的解。
通过命令disp(X)可以打印出结果。
4. 解非线性方程组除了线性方程组外,MATLAB还可以用于求解非线性方程组。
非线性方程组的求解更加复杂,通常需要使用数值方法来逼近解。
MATLAB提供了多种函数和工具箱来求解非线性方程组。
其中最常用的是fsolve函数,它可以通过迭代方法求解非线性方程组。
例如,考虑以下非线性方程组:x^2 + y^2 = 1x + y = 1我们可以使用fsolve函数求解该方程组:fun = @(x) [x(1)^2 + x(2)^2 - 1; x(1) + x(2) - 1];x0 = [0; 0];options = optimoptions('fsolve', 'Display', 'iter');[x, fval] = fsolve(fun, x0, options);在以上代码中,fun是一个匿名函数,表示要求解的非线性方程组。
x0是初始猜测值,options是优化选项。
运行以上代码后,变量x将包含方程组的解,fval将包含目标函数的值。
Matlab方程的求解Matlab是一个广泛使用的数学编程环境,它提供了许多强大的数值计算功能,包括求解各种数学方程。
以下是一些关于如何在Matlab中求解方程的基本步骤。
步骤1:启动Matlab首先,你需要打开Matlab。
你可以在Windows、macOS或Linux等操作系统上安装和使用Matlab。
步骤2:创建方程在Matlab中求解方程的第一步是创建方程。
例如,如果你想求解以下线性方程:2x + 3y = 104x - y = 14你可以在Matlab中输入这些方程如下:eq1 = 2x + 3y == 10;eq2 = 4*x - y == 14;步骤3:使用solve函数求解方程接下来,你可以使用Matlab中的solve函数来求解这些方程。
solve函数可以找到使方程为零的变量值。
你可以输入以下命令来求解上述方程:sol = solve([eq1, eq2], [x, y]);在这个例子中,sol是一个包含解的对象,x和y是未知数,eq1和eq2是包含已知数的方程列表。
这个命令会找到满足这两个方程的x和y的值。
步骤4:显示解你可以使用以下命令来查看解:disp(sol)这将显示包含解的对象sol的属性。
例如,它可能会显示以下内容:x = 1.0000 + 2.0000i y = 3.0000 + 2.0000i这表明x的值为1+2i,y的值为3+2i。
如果你需要的是实数解,可以通过以下方法获得:x_real = real(sol.x); y_real = real(sol.y);disp([x_real, y_real])以上就是在Matlab中求解方程的基本步骤。
需要注意的是,对于一些更复杂的方程或者非线性方程,可能需要使用其他的Matlab函数或者额外的工具箱来求解。
在处理复杂的数学问题时,Matlab的文档和帮助功能可以提供更多的信息和帮助。
MatLab解线性方程组一文通当齐次线性方程AX=0,rank(A)=r<n时,该方程有无穷多个解,怎样用MATLAB求它的一个基本解呢?用matlab 中的命令x=null(A, r )即可.其中:r=rank(A)A=[ 1 1 1 1 -3 -1 11 0 0 0 1 1 0-2 0 0 -1 0 -1 -2]用matlab 求解程序为:A=[1 1 1 1 -3 -1 1;1 0 0 0 1 1 0;-2 0 0 -1 0 -1 -2];r=rank(A);y=null(A, r )得到解为:y=[ 0 -1 -1 0-1 2 1 11 0 0 00 2 1 -20 1 0 00 0 1 00 0 0 1]其列向量为Ay=0的一个基本解MatLab解线性方程组一文通!-------------------作者:liguoy(2005-2-3)写在阅读本文前的引子。
一:读者对线性代数与Matlab 要有基本的了解;二:文中的通用exp.m文件,你须把具体的A和b代进去。
一:基本概念1.N级行列式A:|A|等于所有取自不同行不同列的n个元素的积的代数和。
2.矩阵B:矩阵的概念是很直观的,可以说是一张表。
3.线性无关:一向量组(a ,a ,…. a )不线性相关,即没有不全为零的数k ,k ,……kn使得:k1* a +k2* a +…..+kn*an=04. 秩:向量组的极在线性无关组所含向量的个数称为这个向量组的秩。
5.矩阵B的秩:行秩,指矩阵的行向量组的秩;列秩类似。
记:R(B)6.一般线性方程组是指形式: (1)其中x1,x2,…….xn为n个未知数,s为方程个数。
记:A*X=b7.性方程组的增广矩阵:=8. A*X=0 (2)二:基本理论三种基本变换:1,用一非零的数乘某一方程;2,把一个方程的倍数加到另一个方程;3互换两个方程的位置。
以上称初等变换。
消元法(理论上分析解的情况,一切矩阵计算的基础)首先用初等变换化线性方程组为阶梯形方程组,把最后的一些恒等式”0=0”(如果出现的话)去掉,1:如果剩下的方程当中最后的一个等式是零等于一非零数,那么方程组无解;否则有解,在有解的情况下,2:如果阶梯形方程组中方程的个数r等于未知量的个数,那么方程组有唯一的解,3:如果阶梯形方程组中方程的个数r小于是未知量的个数,那么方程组就有无穷个解。
Matlab中多项式的运算1:直接键入p=[ 1 2 3 4]系统就自动建立起多项式y=x3+2x2+3x+42:利用roots(p)命令就可以求解这个多项式的根,例如:>> p=[1 2 3 4 ];>> roots(p)ans = -1.6506-0.1747 + 1.5469i-0.1747 - 1.5469i3:利用poly(a)命令可以由多项式的根求解多项式的系数,其中a=[ 2 3]的表示形式。
例如:>> a=[2 3];>> poly(a)ans = 1 -5 6则这个多项式为x2+5x+6.4:多项式的相加减:若干个多项式相加减时就是把它们的系数数组直接相加减,但是系数数组元素的个数必须相等,若不够,可以补0,例如:a=[1 2 3 4];b=[2 2 1 2];c=a+bc =[ 3 4 4 6]5:利用conv(a,b)命令可以求解a,b两个多项式的乘积。
例如:>> a=[1 2];>> b=[1 -2];>> c=conv(a,b)c = 1 0 -4.因为a=x+2,b=x-2,所以a,b的乘积为c=x2-4.6:利用polyder(a)命令可以去、求多项式的微分(求导数),例如:>> a=[1 2 0 -5 6]; >> b=polyder(a)b =4 6 0 -5,其中a=x4+2x3-5x+6;b=4x3+6x2-5.6;给出x的范围,利用polyval(a)命令可以求出x对应的多项式的值,例如:>> x=-1:0.1:2;>> a=[1 2 0 -5 6];>> y=polyval(a,x);>> plot(x,y)>> grid 绘图结果如下:。