matlab二元函数拟合怎么设计函数。

如题所述

第1个回答  2019-04-08
非性线拟合一般是根据数据产生的特点来的(就是说数据产生符合什么分布函数)
对你这样的应用,我个人感觉使用线性拟合简单易行:
如下给定数据的拟合曲线:
x=[0.5,1.0,1.5,2.0,2.5,3.0];
y=[1.75,2.45,3.81,4.80,7.00,8.60];
p=polyfit(x,y,2)
plot(x,y)
计算结果为:
p
=0.5614
0.8287
1.1560
即所得多项式为y=0.5614x^2+0.08287x+1.15560
-------------------------------------
如果你要非线性拟合,那么可以:
x=[1.1389
1.0622
0.9822
0.934
0.9251
0.9158];
y=[0.03
1
5.03
15.05
19.97
30.3];
myfunc=inline('-beta(1)*log(x+beta(2))-beta(3)','beta','x');
%非线性函数
beta=nlinfit(x,y,myfunc,[0
0
0]);
%通过这个非线性函数进行拟合
k=beta(1),a=beta(2),b=beta(3)
%测试这个方程
xx=min(x):max(x);
yy=-k*log(x+a)-b;
plot(x,y,'o',x,yy,'r')
------------------------------------------------------------------------------------
以上x,y数据可以任意,就是你所提问的a,b。
相似回答