本站分享:AI、大数据、数据分析师培训认证考试,包括:Python培训Excel培训Matlab培训SPSS培训SAS培训R语言培训Hadoop培训Amos培训Stata培训Eviews培训

用matlab实现非线性曲线拟合_matlab非线性曲线拟合

matlab培训 cdadata 6425℃

用matlab实现非线性曲线拟合

关键词:matlab非线性曲线拟合 matlab 非线性拟合 matlab多元非线性拟合 matlab非线性拟合函数

用matlab实现非线性曲线拟合,步骤如下:

(1)考虑以下的试验数据点:(第一列为x坐标,第二列为y坐标)

Data=[
0.0045 102.9128
0.0245 43.0681
0.0445 21.0126
0.0645 12.4918
0.0845 9.0246
0.1045 7.5404
0.1245 6.8773
0.1445 6.5724
0.1645 6.4311
0.1845 6.3674
0.2045 6.3316
0.2245 6.3346
0.2445 6.3371
0.2645 6.3444
0.2845 6.3543
0.3045 6.3655
0.3245 6.3774
0.3445 6.3897];

(2)为了观察试验数据点的形状,首先,绘制试验数据的散点图:

>> xData=Data(:,1);
yData=Data(:,2);
plot(xData,yData,’bo’);
title(‘original data’)
(3)运行后,得到如下所示的散点图:

用matlab实现非线性曲线拟合_matlab非线性曲线拟合

(4)建立非线性曲线拟合函数lsqcurvefit().

(4.1)首先,建立非线性曲线拟合曲线的M文件:

function [feval]=curvefit_fun(x,Data)
%nonlinear curve fit function:c(1)*exp(c(2)*x)+c(3)*exp(c(4)*x)+c(5)
feval=x(1)*exp(x(2)*Data)+x(3)*exp(x(4)*Data)+x(5);

(4.2)然后,在matlab的命令行窗口输入:

x0=[10;-50;5;-0.5;5];
>> xData=xData’; yData=yData’;
[x,resnorm,residual]=lsqcurvefit(@(x,xData)curvefit_fun(x,xData),x0,xData,yData)
x1=linspace(min(xData),max(xData),1000);
y1=curvefit_fun(x,x1);
hold on
plot(x1,y1,’k-‘)
legend(‘data points’,’fitting curve’)

(4.3)得到如下所示的拟合曲线:

用matlab实现非线性曲线拟合_matlab非线性曲线拟合

转载请注明:数据分析 » 用matlab实现非线性曲线拟合_matlab非线性曲线拟合

喜欢 (5)or分享 (0)