
如何用matlab程序对数据进行二次拟合?
2个回答
展开全部
matlab是一个很强大的数据处理软件,是人们进行数据分析的得力助手。一般我们做社会调研或科学研究时,会得到很多实验数据。当需要研究两个变量之间的关系时,经常要用到曲线拟合。曲线拟合不仅能给出拟合后的关系式,还能用图形直观的展现出变量之间的关系。
其实用matlab做曲线拟合很便捷,下面将以两个变量(y=f(x))为例详细介绍:
运行matlab软件。
在工作空间中存入变量的实验数据。具体如下:
可以直接用矩阵来存放数据,直接在命令窗口输入
x=[数据x1,数据x2,...,数据xn];
y=[数据y1,数据y2,...,数据yn];
当数据较多时,可以从excel,txt等文件中导入。
把数据存入工作空间后,在命令窗口中输入cftool,回车运行。
在这个拟合工具窗口的左边,选择变量,即分别选择x,y。
选择拟合的曲线类型,一般是线性拟合,高斯曲线,平滑曲线等,根据需要选择。
选择完后会自动完成拟合,并且给出拟合函数表达式。
其实用matlab做曲线拟合很便捷,下面将以两个变量(y=f(x))为例详细介绍:
运行matlab软件。
在工作空间中存入变量的实验数据。具体如下:
可以直接用矩阵来存放数据,直接在命令窗口输入
x=[数据x1,数据x2,...,数据xn];
y=[数据y1,数据y2,...,数据yn];
当数据较多时,可以从excel,txt等文件中导入。
把数据存入工作空间后,在命令窗口中输入cftool,回车运行。
在这个拟合工具窗口的左边,选择变量,即分别选择x,y。
选择拟合的曲线类型,一般是线性拟合,高斯曲线,平滑曲线等,根据需要选择。
选择完后会自动完成拟合,并且给出拟合函数表达式。
展开全部
function
parameter=customfit(f,x,y,startpoint)
%用最小二乘法求曲线拟合的程序。
%f是待求函数,x和y是取样点坐标,parameter是待求系数,startpoint是系数初值
f2=@(p)(sum((f(x,p)-y).^2));
parameter=fminsearch(f2,startpoint);
例子
x=[0.01
0.1
0.5
0.75
1
1.25
1.5
1.75
2
2.25
2.5];
y=[2.4
3.3
13.5
18.9
24
27
35
37
41
47
58];
f=@(x,p)(p(1)*x.^2+p(2)*x);%p是待求系数,x是自变量
p=customfit(f,x,y,[1
1]);%这里取[1
1]为初值,你也可以尝试其它值
%p(1)就是p1,p(2)就是p2
%%%%%%%%
%画图
plot(x,y,'o');hold
on;
fplot(@(x)(f(x,p)),[-.5,3]);
parameter=customfit(f,x,y,startpoint)
%用最小二乘法求曲线拟合的程序。
%f是待求函数,x和y是取样点坐标,parameter是待求系数,startpoint是系数初值
f2=@(p)(sum((f(x,p)-y).^2));
parameter=fminsearch(f2,startpoint);
例子
x=[0.01
0.1
0.5
0.75
1
1.25
1.5
1.75
2
2.25
2.5];
y=[2.4
3.3
13.5
18.9
24
27
35
37
41
47
58];
f=@(x,p)(p(1)*x.^2+p(2)*x);%p是待求系数,x是自变量
p=customfit(f,x,y,[1
1]);%这里取[1
1]为初值,你也可以尝试其它值
%p(1)就是p1,p(2)就是p2
%%%%%%%%
%画图
plot(x,y,'o');hold
on;
fplot(@(x)(f(x,p)),[-.5,3]);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |