欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Matlab函数Polyfit_Valve:多项式拟合,输出多项式表达式并求值

程序员文章站 2022-04-01 09:55:26
...
function yy=Polyfit_Valve(x,y,n,xx)
%%
%功能:本程序为多项式拟合,输出多项式表达式并求值
%说明:x,y为插值节点和节点上的函数值,n是多项式最高项次数,xx是所求函数值的x值
%说明:x,y,xx都可以是向量,n是数字
%实例:在命令行键入:Polyfit_Valve([-2,0,2],[0,4,0],2,[1,2,3]) 
%      输出如下:fx=-1.000000*x^2 +4.000000*x^0
%               ans =

%                   -1.7500    0.0000    4.1786
%Edited by qjx,2018.04.01
%%
c=zeros(1,n+1);  %储存多项式系数
b='x^';
c=polyfit(x,y,n);
poly2sym(c);    %可以将数组C中的系数转化为多项式
fprintf('\nfx='); %打印多项式
for i=1:(n+1)
    if c(i)>0
        fprintf('+%f*%s%d',c(i),b,n+1-i);
    else if c(i)<0
        fprintf('%f*%s%d',c(i),b,n+1-i);
        else if c(i)==0
           fprintf(' ');
            end
        end
    end
end
fprintf('\n');
polyval(c,xx)   %求多项式的值
end