matlab拟合曲线并输出公式,matlab 有公式的曲线拟合

2022-02-03 13:10:08 推广营销 投稿:一盘搜百科
摘要x=[0 46.01 92.64 187.16 387.53 780.50]; y=[0 0.506 0.887 1.252 1.755 1.981]; f=@(p,x)p(1)*p(2)*x./((

x=[0 46.01 92.64 187.16 387.53 780.50];

matlab拟合曲线并输出公式,matlab 有公式的曲线拟合插图

y=[0 0.506 0.887 1.252 1.755 1.981];

matlab拟合曲线并输出公式,matlab 有公式的曲线拟合插图1

f=@(p,x)p(1)*p(2)*x./((p(3)-x).*(1+(p(2)-1)*x/p(3))) ;

p=nlinfit(x,y,f,[1 1 1])%p=[a b c]

plot(x,y,’ro’)

hold on

ezplot(@(x)f(p,x),[-10 800])

另外你也可以利用可视化工具cftool进行手动拟合

对于matlab7以前版本matlab拟合曲线并输出公式,不支持@定义函数的用下面的程序

x=[0 46.01 92.64 187.16 387.53 780.50];

y=[0 0.506 0.887 1.252 1.755 1.981];

f=inline(‘p(1)*p(2)*x./((p(3)-x).*(1+(p(2)-1)*x/p(3)))’,’p’,’x’);

p=nlinfit(x,y,f,[1 1 1])%p=[a b c]

plot(x,y,’ro’)

hold on

xx=-10:800;

yy=f(p,xx);

plot(xx,yy)

xlim([-10,800])

matlab曲线拟合怎么写

x=[26.3 33.5 39.1 43.1 47.0 50.0 54.5 56.8 64.9 72.0 77.0];

y=[8.85 8.17 7.49 7.16 6.81 6.58 6.21 5.91 5.48 5.11 5.98];

%多项式拟合

n=1;

A=polyfit(x,y,n); %n是给定的多项式的次数,拟合出来的结果A是系数向量

y1=polyval(A,x); %计算出拟合的y值

plot(x,y,’k*’,x,y1,’r-‘); %画出数据对比图,黑点是原始数据,红线是拟合曲线

%指定函数拟合

f=fittype(‘a*e^(b*x)+c’); %引号里的是你的函数模型,默认是以x为自变量,其余为待定参数

fity=fit(x,y,f) %曲线拟合,会给出拟合结果

%再根据给出的结果计算出新的y值,画图神马的

matlab曲线拟合怎么做

matlab曲线拟合怎么做

x=[26.3 33.5 39.1 43.1 47.0 50.0 54.5 56.8 64.9 72.0 77.0];

y=[8.85 8.17 7.49 7.16 6.81 6.58 6.21 5.91 5.48 5.11 5.98];

%多项式拟合

n=1;

A=polyfit(x,y,n); %n是给定的多项式的次数,拟合出来的结果A是系数向量

y1=polyval(A,x); %计算出拟合的y值

plot(x,y,’k*’,x,y1,’r-‘); %画出数据对比图,黑点是原始数据,红线是拟合曲线

%指定函数拟合

f=fittype(‘a*e^(b*x)+c’); %引号里的是你的函数模型,默认是以x为自变量,其余为待定参数

fity=fit(x,y,f) %曲线拟合,会给出拟合结果

matlab曲线拟合函数

x=[1953 1964 1982 1989 2000 2010];

y=[6.02e+08 7.23e+08 1.03e+09 1.16e+09 1.24e+09 1.33e+09];

[xData, yData] = prepareCurveData( x, y );

% Set up fittype and options.

ft = fittype( ‘poly1’ );

opts = fitoptions( ft );

opts.Lower = [-Inf -Inf];

opts.Upper = [Inf Inf];

% Fit model to data.

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

% Plot fit with data.

figure( ‘Name’, ‘linerFit’ );

h = plot( fitresult, xData, yData );

legend( h, ‘y vs. x’, ‘linerFit’, ‘Location’, ‘NorthEast’ );

% Label axes

xlabel( ‘x’ );

ylabel( ‘y’ );

grid on

结果:

Linear model Poly1:

ans(x) = p1*x + p2

Coefficients (with 95% confidence bounds):

p1 = 1.344e+07 (1.075e+07, 1.613e+07)

p2 = -2.563e+10 (-3.097e+10, -2.03e+10)

说明:我这里用的是最小二乘的一阶拟合,如果是二阶可以将poly1改为poly2,以此类推poly3等

TAGS: 拟合  公式  曲线  matlab  输出  187.16  387.53  780.50  
声明:一盘搜百科所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系 88888@qq.com