多项式及其函数
多项式及其函数
Matlab用一维向量表示多项式
例:创建一个通用的一维向量转化为字符串格式的表达式
function s = pprintf(p)
%pprintf 该函数可将一维向量转变为字符串格式的数学表达式 % p:输入参数,格式为一维向量 % s:输出参数,格式为字符串
if nargin>1 %输入参数过多时的判断
error("Too much input arguements");
end
while(p(1)==0) %输入向量的元素全为0
p(1)=[];
end
L=length(p); %计算向量长度
s='';
for v=1:L
if p(v)==0 %当常数项为0
continue;
elseif L==1 %当向量长度为1
s=strcat(num2str(p(v)));
elseif v==L %当v为向量最后一个值
s=strcat(s,'+',num2str(p(v)));
elseif v==1 %当v为向量第一个值
s=strcat(num2str(p(v)),'x^{',num2str(L-v),'}');
elseif p(v)==1 当向量元素的值为1
s=strcat(s,'+','x^{',num2str(L-v),'}');
else
s=strcat(s,'+',num2str(p(v)),'x^{',num2str(L-v),'}');
end
end
end
执行以下脚本(创建一个图形窗口把该函数表达式字符串设置为标题):
p=[5 4 6 1 0 8 7 6];
figure;
title(pprintf(p));
运行结果:

求解多项式的根,对方程 求解
p=[3 -2 -4];
r=roots(p)
解得:
r =
1.5352
-0.8685
r = roots(p) 以列向量的形式返回 p 表示的多项式的根。输入 p 是一个包含 n+1 多项式系数的向量,以 xn 系数开头。0 系数表示方程中不存在的中间幂。例如:p = [3 2 -2] 代表多项式 3x2+2x−2。
