MATLAB如何把计算出来的多项式输出?

在做一个拉格朗日插值多项式的程序,最后不是算出结果,而是把计算出来的多项式显示出来,不知道怎么输出
中间有这么一段程序:
for i=1:n
t=1;
for j=1:n
if j~=i
t=t*(x-xx(j))/(xx(i)-xx(j));
end
end
s=s+t*yy(i);
end
这里循环出来的公式是我想要显示的

比如我们输出一个函数f=A*sin(x)-B*exp(C*x)这种表达式,A,B,C是你输入的任何参数.
(1)你写上如下代码的M文件
function f=dispf(A,B,C)
syms x;
f=A*sin(x)-B*exp(C*x);
end
(2)现在你直接在命令窗口输入命令dispf就可以了,比如
>> dispf(12,36,78)
ans =
12*sin(x) - 36*exp(78*x)追问

试了一下,还在做调试,确实能输出

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-03-09
function s = poly_printf(p)
if nargin > 1
    error('too much input arguments !');
end
while p(1) == 0
    p(1)=[];
end
l = length(p);
if l == 0
    s = '0';
elseif l == 1
    s = num2str(p(1));
elseif l == 2
    if p(1) == 1
        s = strcat('x+(',num2str(p(2)),')');
        % 要考虑系数为负的情况,为了减少if嵌套的层数,干脆统一在系数上加括弧
        % 防止出现‘+-’这种错误的表达式
    else
        s = strcat(num2str(p(1)),'*x+(',num2str(p(2)),')');
    end
elseif l > 2;
    for i = 1:l
        if i == 1
            if p(i) == 1
                s = strcat('x.^',num2str(l-i));
                % x一般为向量,故这里一定要使用.^ 否则会识别为矩阵乘法
                % 并返回错误
            else
                s = strcat(num2str(p(i)),'*x.^',num2str(l-i));
            end
        elseif i == l
            s = strcat(s,'+(',num2str(p(i)),')');
        elseif i == l-1
            if p(i) == 0;
                s = s; %此行无用,仅为提高代码可读性
            else
                s = strcat(s,'+(',num2str(p(i)),')','*x');
            end % if完之后一定要记得加end啊!
        else
            if p(i) == 0
                s = s; %此行无用,仅为提高代码可读性
            elseif p(i) == 1
                s = strcat(s,'+x.^',num2str(l-i));
            else
                s = strcat(s,'+(',num2str(p(i)),')','*x.^',num2str(l-i));
            end
        end
    end
end

这是我自己写的多项式输出函数,输出格式不太标准,但是这个是可以用eval重载的

MATLAB如何把计算出来的多项式输出?
比如我们输出一个函数f=A*sin(x)-B*exp(C*x)这种表达式,A,B,C是你输入的任何参数.(1)你写上如下代码的M文件 function f=dispf(A,B,C)syms x;f=A*sin(x)-B*exp(C*x);end (2)现在你直接在命令窗口输入命令dispf就可以了,比如 >> dispf(12,36,78)ans = 12*sin(x) - 36*e...

如何在matlab中展开多项式
1、电脑上打开软件。2、首先评估一下多项式P(x)=x4次幂+7x3次幂-5x+9,这里可以表示成p = [1 7 0 -5 9];然后使用polyval评估计算。3、在命令行窗口按回车键可以看到语句返回的结果如下图所示。4、也可以创建一个方阵X,评估计算多项式P,按回车键,返回结果。5、开始计算多项式的根,通过roots...

matlab中如何将多项式输出出来
disp('2*z^2+3z ---=a')

matlab 多项式 显示
可以用pretty函数 ,它就是这个功能,但是显示出来的效果不是很好!举例如下:clear f=sym('x^2*y-3*x+8');pretty(f)运行结果:2 x y - 3 x + 8 这里面显示不好 你可以自己试试

matlab中如何实现已输出了一个多项式,如何提取它的系数?
sym2poly(T)把符号多项式变为可计算的多项式 即以矩阵的形式表示出来

MATLAB 如何提取多项式系数
coeffs函数

matlab怎么将多项式表示出来,多项式的次方为负数?
matlab表达式与数学上的一样,如下式:syms x f=(x^(-3)+2*x^(-1)+3*x+1)\/(2*x^(-3)+x^(-1)+2*x+1)

matlab 三次埃尔米特如何输出差值多项式的系数
可以直接利用MATLAB自带函数利用pp的结果% 如果想要直接利用结构体pp去计算0~10范围内任一点的插值结果,% 用ppval可以直接使用pp的中的系数,举个例子xi = 0:.25:10; yi=ppval(pp,xi);figure,plot(x,y,'o',xi,yi)补充 'nearest'最近项插值 'linear'分段线性插值 'spline'三次样条线插值(...

matlab拟合曲线并输出公式是什么?
要是多项式拟合的就用p是拟合的结果 f=poly2sym(p)f=3*x^5+5*x^4+x^2+12 要是用lsqcurvefit,就在用subs把结果带入函数就好了。在拟合工具箱里面选择需要拟合的目标函数形式,输出就是那个目标函数的待定参数。例如,如果选择和3次多项式ax^3+bx^2+cx+d,则输出a,b,c,d这4个参数。

MATLAB多项式的乘除法和微积分
利用MATLAB对多项式操作进行分析与求解,首先聚焦于多项式的乘法与除法。多项式的乘法利用函数"conv"实现,表示两个多项式的乘积。使用时传入两个多项式的系数向量,输出则是乘积多项式的系数向量。举例计算s(s+1)(s+20)。定义对应多项式的系数向量a1、a2和a3为1,0、1,1和1,20,通过逐次使用函数"conv"...

相似回答