多项式及其函数

多项式及其函数

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 多项式系数的向量,以 x 系数开头。0 系数表示方程中不存在的中间幂。例如:p = [3 2 -2] 代表多项式 3x2+2x−2。

01-15 22:06