matlab用多项式函数拟合曲线,且使这个函数要过一定点(x0,y0)

来源:百度知道 编辑:UC知道 时间:2024/06/10 22:20:21
matlab用多项式函数拟合曲线,且使这个函数要过一定点(x0,y0),matlab中有现成的函数,还是需要编写程序,请高手指点
包含不能保证一定经过啊,必须精确经过(x0,y0),其余的可以拟合

假如说你要求的函数的形式如y=a*x.^2+b*x+c
若要保证过(7,9)这点,你就可把函数的形式改为y-9=a*(x-7).^2+b*(x-7)
即y=a*(x-7).^2+b*(x-7)+9
把这函数编入m文件(function文件)

function [y]=f(aa,x)
y=aa(1)*(x-7).^2+aa(2)*(x-7)+9;

另外编个文件输入
x=rand(1,10)
y=rand(1,10)
aa=[1 2]
F=f(aa,x)
[A,res]=lsqcurvefit('f',ones(1,2),[x],F)
这里只是举个例子,你只要把x,y以及(7,9)以及多项式的形式改成你的数据就可以了。
lsqcurvefit的用法可参照help lsqcurvefit.
完毕。

x=[x0 x1 x2 ...];
y=[y0 y1 y2 ...];
p=polyfit(x,y,n)

这里面n表示要拟合曲线的次数,上面数据点的多少可以根据自己需要取,只要包含(x0,y0)就可以了