曲线拟合在matlab中

a d*_*a d 6 matlab octave curve-fitting

例如我有这样的5点,

(1,1) (2,-1) (3,2) (4,-2) (5,2)
Run Code Online (Sandbox Code Playgroud)

现在,

  • 1)我想要一个函数在Matlab中插入这些点.
  • 2)我想绘制这个函数.
  • 3)从输入读取一个数字并将F(x)写入输出.

我怎样才能做到这一点??

Nic*_*las 7

为了适应一个多项式给定的数据点,您可以使用polyfit(x,y,n)那里x是与点的载体x,y是y的点的载体,n是多项式的程度.请参阅Mathworks polyfit文档中的示例

在你的情况下:

x=[1,2,3,4,5];
y=[1,-1,-2,-2,2];
n=3;
p = polyfit(x,y,n)
Run Code Online (Sandbox Code Playgroud)

然后绘制,从示例中获取

f = polyval(p,x);
plot(x,y,'o',x,f,'-')
Run Code Online (Sandbox Code Playgroud)

或者,制作一个更漂亮的多项式图(而不是上图)

xx=0:0.1:5;
yy = erf(xx);
f = polyval(p,xx);
plot(x,y,'o',xx,f,'-')
Run Code Online (Sandbox Code Playgroud)