matlab知道数据怎么去拟合ax^2+b这个函数

如题所述

第1个回答  推荐于2016-02-08
就是一个二次拟合
假设数据已知 xy

x=[];
y=[];
xx=-10:.1:10;
p=polyfit(x,y,2);
yy=polyval(p,xx);
plot(xx,yy)

你把xy的数据写进去就行了追问

不要x这一项

追答

什么意思 不明白你说的什么 你拟合出来了一个函数 就是一个确定的函数 确定的函数当然有自变量范围 你想表达什么意思

追问

就是现在您拟合的是ax^2+bx+c
而我要的是ax^2+c

追答

x=[1 2 3 4 5 6 7 8 9 10 ];

y=4*x.^2+7*x+4;

n=length(x);

p=sum(x.^2);

q=sum(y);

w=sum(x.^4);

v=sum(x.^2.*y);

syms a b

[m n]=solve(n*b+p*a==q,p*b+w*a==v);

aa=double([m n]);

xx=1:.1:12;

yy=aa(1)*xx.^2+aa(2);

plot(x,y,'*r',xx,yy,'y');


这是用最小二乘做的,原理我就不讲了,有兴趣你自己看看。

x是随便给的,然后我选了一个二次方程作为y,这就是已知的两组数

然后下边的mn就是求得ab了   但是是自符  再变成数值的    就是aa里边的两个数

然后就是你要的形式可以作图了    这个数据很好所以拟合的结果也很好

本回答被提问者采纳
相似回答