matlab拟合曲线并输出公式,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=@(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等