失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > matlab曲线拟合工具箱出故障 MATLAB曲线拟合工具箱的输出与生成的函数不匹配

matlab曲线拟合工具箱出故障 MATLAB曲线拟合工具箱的输出与生成的函数不匹配

时间:2020-06-27 18:07:19

相关推荐

matlab曲线拟合工具箱出故障 MATLAB曲线拟合工具箱的输出与生成的函数不匹配

我有一组数据点,旨在显示我正在研究的机制的“理想”曲线 .

当我要求Matlab中的曲线拟合工具箱找到一个2项指数时,我得到了一个很好的拟合(R平方:0.9998,调整后的R平方:0.9997) . 但是,当我为此拟合生成代码时,它会更改系数a,b,c和d .

在工具箱中,它显示:

一般模型Exp2:f(x)= a * exp(b * x)c * exp(d * x)

系数(95%置信区间):a = 4.698e 04(-1.477e 13,1.477e 13)

b = 0.4381(-1200,1201)

c = -4.698e 04(-1.477e 13,1.477e 13)

d = 0.4381(-1200,1201)

拟合优度:SSE:0.002979 R-square:0.9998调整后的R平方:0.9997 RMSE:0.006823

曲线拟合工具箱生成的函数:

function [fitresult, gof] = createFit1(bgSt, testSt)

%CREATEFIT1(BGST,TESTST)

% Create a fit.

%

% Data for 'standard mechanism' fit:

% X Input : bgSt

% Y Output: testSt

% Output:

% fitresult : a fit object representing the fit.

% gof : structure with goodness-of fit info.

%

% See also FIT, CFIT, SFIT.

% Auto-generated by MATLAB on 29-Apr- 15:54:07

%% Fit: 'standard mechanism'.

[xData, yData] = prepareCurveData( bgSt, testSt );

% Set up fittype and options.

ft = fittype( 'exp2' );

opts = fitoptions( 'Method', 'NonlinearLeastSquares' );

opts.Display = 'Off';

opts.StartPoint = [0.935605768794225 0.667093185616236 0 0.667093185616236];

% Fit model to data.

[fitresult, gof] = fit( xData, yData, ft, opts );

% Plot fit with data.

figure( 'Name', 'standard mechanism' );

h = plot( fitresult, xData, yData );

legend( h, 'testSt vs. bgSt', 'standard mechanism', 'Location', 'NorthEast' );

% Label axes

xlabel bgSt

ylabel testSt

grid on

请注意,系数完全不同,生成的曲线也是如此 .

另请注意,对于曲线拟合工具箱中显示的系数,c = -a和d = b,因此对于x的任何值,y应该等于零,这是荒谬的 .

但是当我编辑生成的函数以使用工具箱中的系数替换函数的系数时,我得到了一个很好的曲线 .

编辑代码:

function [fitresult, gof] = standardFit(bgSt, testSt)

%STANDARDFIT(BGST,TESTST)

% Create a fit.

%

% Data for 'standard mechanism' fit:

% X Input : bgSt

% Y Output: testSt

% Output:

% fitresult : a fit object representing the fit.

% gof : structure with goodness-of fit info.

%

% See also FIT, CFIT, SFIT.

% Auto-generated by MATLAB on 29-Apr- 15:54:07

%FROM CURVE FITTING TOOLBOX:

%General model Exp2:

% f(x) = a*exp(b*x) + c*exp(d*x)

%Coefficients (with 95% confidence bounds):

% a = 4.698e+04 (-1.477e+13, 1.477e+13)

% b = 0.4381 (-1200, 1201)

% c = -4.698e+04 (-1.477e+13, 1.477e+13)

% d = 0.4381 (-1200, 1201)

%Goodness of fit:

% SSE: 0.002979

% R-square: 0.9998

% Adjusted R-square: 0.9997

% RMSE: 0.006823

%% Fit: 'standard mechanism'.

[xData, yData] = prepareCurveData( bgSt, testSt );

% Set up fittype and options.

ft = fittype( 'exp2' );

opts = fitoptions( 'Method', 'NonlinearLeastSquares' );

opts.Display = 'Off';

opts.StartPoint = [4.698e+04 0.4381 -4.698e+04 0.4381];

% Fit model to data.

[fitresult, gof] = fit( xData, yData, ft, opts );

% Plot fit with data.

figure( 'Name', 'standard mechanism' );

h = plot( fitresult, xData, yData );

legend( h, 'testSt vs. bgSt', 'standard mechanism', 'Location', 'NorthEast' );

% Label axes

xlabel bgSt

ylabel testSt

grid on

我没有足够的声誉来发布曲线的图像,但在工具箱中它看起来很完美,而且函数中的那个看起来很糟糕 - 翻译方式与链接海报相同 .

这是变量bgSt:

-2.85 -2.8 -2.75 -2.7 -2.65 -2.6 -2.55 -2.5 -2.45 -2.4 -2.35 -2.3 -2.25 -2.2 -2.15 -2.1 -2.05 -2 -1.95 -1.9 -1.85 -1.8 -1.75 -1.7 -1.65 -1.6 -1.55 -1.5 -1.45 -1.4 -1.35 -1.3 -1.25 -1.2 -1.15 -1.1 -1.05 -1 -0.95 -0.9 -0.85 -0.8 -0.75 -0.7 -0.65 -0.6 -0.55

-0.5 -0.45 -0.4 -0.35 -0.3 -0.25 -0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5

这是变量testSt:

0 0.01 0.01 0.02 0.02 0.02 0.03 0.04 0.04 0.05 0.06 0.06 0.07 0.08 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.2 0.21 0.23 0.24 0.26 0.28 0.3 0.31 0.33 0.35 0.37 0.39 0.41 0.43 0.45 0.48 0.5 0.52 0.55 0.57 0.6 0.63 0.66 0.68 0.72 0.74 0.78

0.81 0.85 0.88 0.92 0.96 1 1.04 1.08 1.12 1.17 1.21 1.26 1.3 1.35 1.39 1.44

Edit: I now have enough reputation to add images.

曲线拟合工具箱生成的图:

由自动生成的函数生成的图:

如果觉得《matlab曲线拟合工具箱出故障 MATLAB曲线拟合工具箱的输出与生成的函数不匹配》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。