精华内容
下载资源
问答
  • Matlab 线性拟合 & 非线性拟合使用Matlab进行拟合是图像处理中线条变换的一个重点内容,本文将详解Matlab中的直线拟合和曲线拟合用法。关键函数:fittypeFit type for curve and surface fittingSyntaxffun = ...

    Matlab 线性拟合 & 非线性拟合

    使用Matlab进行拟合是图像处理中线条变换的一个重点内容,本文将详解Matlab中的直线拟合和曲线拟合用法。

    关键函数:

    fittype

    Fit type for curve and surface fitting

    Syntax

    ffun = fittype(libname)

    ffun = fittype(expr)

    ffun = fittype({expr1,…,exprn})

    ffun = fittype(expr, Name, Value,…)

    ffun= fittype({expr1,…,exprn}, Name, Value,…)

    /***********************************线性拟合***********************************/

    线性拟合公式:

    coeff1 * term1 + coeff2 * term2 + coeff3 * term3 + ...

    其中,coefficient是系数,term都是x的一次项。

    线性拟合Example:

    Example1: y=kx+b;

    法1:

    x=[1,1.5,2,2.5,3];y=[0.9,1.7,2.2,2.6,3];

    p=polyfit(x,y,1);

    x1=linspace(min(x),max(x));

    y1=polyval(p,x1);

    plot(x,y,‘*’,x1,y1);

    结果:p =    1.0200    0.0400

    即y=1.0200 *x+ 0.0400

    法2:

    x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];

    p=fittype(‘poly1’)

    f=fit(x,y,p)

    plot(f,x,y);

    运行结果:

    x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];

    p=fittype(‘poly1’)

    f=fit(x,y,p)

    plot(f,x,y);

    p =

    Linear model Poly1:

    p(p1,p2,x) = p1*x + p2

    f =

    Linear model Poly1:

    f(x) = p1*x + p2

    Coefficients (with 95% confidence bounds):

    p1 =        1.02  (0.7192, 1.321)

    p2 =        0.04  (-0.5981, 0.6781)

    Example2:y=a*x + b*sin(x) + c

    法1:

    x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];

    EXPR = {‘x’,‘sin(x)’,‘1’};

    p=fittype(EXPR)

    f=fit(x,y,p)

    plot(f,x,y);

    运行结果:

    x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];

    EXPR = {‘x’,‘sin(x)’,‘1’};

    p=fittype(EXPR)

    f=fit(x,y,p)

    plot(f,x,y);

    p =

    Linear model:

    p(a,b,c,x) = a*x + b*sin(x) + c

    f =

    Linear model:

    f(x) = a*x + b*sin(x) + c

    Coefficients (with 95% confidence bounds):

    a =       1.249  (0.9856, 1.512)

    b =      0.6357  (0.03185, 1.24)

    c =     -0.8611  (-1.773, 0.05094)

    法2:

    x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];

    p=fittype(‘a*x+b*sin(x)+c’,‘independent’,‘x’)

    f=fit(x,y,p)

    plot(f,x,y);

    运行结果:

    x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];

    p=fittype(‘a*x+b*sin(x)+c’,‘independent’,‘x’)

    f=fit(x,y,p)

    plot(f,x,y);

    p =

    General model:

    p(a,b,c,x) = a*x+b*sin(x)+c

    Warning: Start point not provided, choosing random start

    point.

    > In fit>iCreateWarningFunction/nThrowWarning at 738

    In fit>iFit at 320

    In fit at 109

    f =

    General model:

    f(x) = a*x+b*sin(x)+c

    Coefficients (with 95% confidence bounds):

    a =       1.249  (0.9856, 1.512)

    b =      0.6357  (0.03185, 1.24)

    c =     -0.8611  (-1.773, 0.05094)

    /***********************************非线性拟合***********************************/

    Example:y=a*x^2+b*x+c

    法1:

    x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];

    p=fittype(‘a*x.^2+b*x+c’,‘independent’,‘x’)

    f=fit(x,y,p)

    plot(f,x,y);

    运行结果:

    p =

    General model:

    p(a,b,c,x) = a*x.^2+b*x+c

    Warning: Start point not provided, choosing random start

    point.

    > In fit>iCreateWarningFunction/nThrowWarning at 738

    In fit>iFit at 320

    In fit at 109

    f =

    General model:

    f(x) = a*x.^2+b*x+c

    Coefficients (with 95% confidence bounds):

    a =     -0.2571  (-0.5681, 0.05386)

    b =       2.049  (0.791, 3.306)

    c =       -0.86  (-2.016, 0.2964)

    法2:

    x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];

    %use c=0;

    c=0;

    p1=fittype(@(a,b,x) a*x.^2+b*x+c)

    f1=fit(x,y,p1)

    %use c=1;

    c=1;

    p2=fittype(@(a,b,x) a*x.^2+b*x+c)

    f2=fit(x,y,p2)

    %predict c

    p3=fittype(@(a,b,c,x) a*x.^2+b*x+c)

    f3=fit(x,y,p3)

    %show results

    scatter(x,y);%scatter point

    c1=plot(f1,‘b:*’);%blue

    hold on

    plot(f2,‘g:+’);%green

    hold on

    plot(f3,‘m:*’);%purple

    hold off

    喜欢 (0)or分享 (0)

    展开全文
  • Matlab 线性拟合线性拟合

    千次阅读 2019-01-24 12:04:24
    Matlab 线性拟合线性拟合
                   

    使用Matlab进行拟合是图像处理中线条变换的一个重点内容,本文将详解Matlab中的直线拟合和曲线拟合用法。

    关键函数:

    fittype

    Fit type for curve and surface fitting

    Syntax

    ffun = fittype(libname)
    ffun = fittype(expr)
    ffun = fittype({expr1,...,exprn})
    ffun = fittype(expr, Name, Value,...)
    ffun= fittype({expr1,...,exprn}, Name, Value,...)

    /***********************************线性拟合***********************************/

    线性拟合公式:

    coeff1 * term1 + coeff2 * term2 + coeff3 * term3 + ...
    其中,coefficient是系数,term都是x的一次项。

    线性拟合Example:

    Example1: y=kx+b;

    法1:

    x=[1,1.5,2,2.5,3];y=[0.9,1.7,2.2,2.6,3];p=polyfit(x,y,1);x1=linspace(min(x),max(x));y1=polyval(p,x1);plot(x,y,'*',x1,y1);
    结果:p =    1.0200    0.0400

    即y=1.0200 *x+ 0.0400

    法2:

    x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];p=fittype('poly1')f=fit(x,y,p)plot(f,x,y);
    运行结果:

     x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];p=fittype('poly1')f=fit(x,y,p)plot(f,x,y);p =      Linear model Poly1:     p(p1,p2,x) = p1*x + p2f =      Linear model Poly1:     f(x) = p1*x + p2     Coefficients (with 95% confidence bounds):       p1 =        1.02  (0.7192, 1.321)       p2 =        0.04  (-0.5981, 0.6781)

    Example2:y=a*x + b*sin(x) + c

    法1:

    x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];EXPR = {'x','sin(x)','1'};p=fittype(EXPR)f=fit(x,y,p)plot(f,x,y);

    运行结果:

     x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];EXPR = {'x','sin(x)','1'};p=fittype(EXPR)f=fit(x,y,p)plot(f,x,y);p =      Linear model:     p(a,b,c,x) = a*x + b*sin(x) + cf =      Linear model:     f(x) = a*x + b*sin(x) + c     Coefficients (with 95% confidence bounds):       a =       1.249  (0.9856, 1.512)       b =      0.6357  (0.03185, 1.24)       c =     -0.8611  (-1.773, 0.05094)

    法2:
    x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3]; p=fittype('a*x+b*sin(x)+c','independent','x')f=fit(x,y,p)plot(f,x,y);
    运行结果:
    x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3]; p=fittype('a*x+b*sin(x)+c','independent','x')f=fit(x,y,p)plot(f,x,y);p =      General model:     p(a,b,c,x) = a*x+b*sin(x)+cWarning: Start point not provided, choosing random startpoint. > In fit>iCreateWarningFunction/nThrowWarning at 738  In fit>iFit at 320  In fit at 109 f =      General model:     f(x) = a*x+b*sin(x)+c     Coefficients (with 95% confidence bounds):       a =       1.249  (0.9856, 1.512)       b =      0.6357  (0.03185, 1.24)       c =     -0.8611  (-1.773, 0.05094)


    /***********************************非线性拟合***********************************/

    Example:y=a*x^2+b*x+c

    法1:

    x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3]; p=fittype('a*x.^2+b*x+c','independent','x')f=fit(x,y,p)plot(f,x,y);

    运行结果:

    p =      General model:     p(a,b,c,x) = a*x.^2+b*x+cWarning: Start point not provided, choosing random startpoint. > In fit>iCreateWarningFunction/nThrowWarning at 738  In fit>iFit at 320  In fit at 109 f =      General model:     f(x) = a*x.^2+b*x+c     Coefficients (with 95% confidence bounds):       a =     -0.2571  (-0.5681, 0.05386)       b =       2.049  (0.791, 3.306)       c =       -0.86  (-2.016, 0.2964)



    法2:

    x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];%use c=0;c=0;p1=fittype(@(a,b,x) a*x.^2+b*x+c)f1=fit(x,y,p1)%use c=1;c=1;p2=fittype(@(a,b,x) a*x.^2+b*x+c)f2=fit(x,y,p2)%predict cp3=fittype(@(a,b,c,x) a*x.^2+b*x+c)f3=fit(x,y,p3)%show resultsscatter(x,y);%scatter pointc1=plot(f1,'b:*');%bluehold onplot(f2,'g:+');%greenhold onplot(f3,'m:*');%purplehold off


               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • matlab线性拟合

    千次阅读 2014-06-03 17:14:17
    原文地址:matlab线性拟合作者:Txping7 11.1 曲线拟合 曲线拟合涉及回答两个基本问题:最佳拟合意味着什么?应该用什么样的曲线?可用许多不同的方法定义最佳拟合,并存在无穷数目的曲线。所以,从这里开始,...
    原文地址:matlab线性拟合作者:Txping7
    • 11.1 曲线拟合
    • 曲线拟合涉及回答两个基本问题:最佳拟合意味着什么?应该用什么样的曲线?可用许多不同的方法定义最佳拟合,并存在无穷数目的曲线。所以,从这里开始,我们走向何方?正如它证实的那样,当最佳拟合被解释为在数据点的最小误差平方和,且所用的曲线限定为多项式时,那么曲线拟合是相当简捷的。数学上,称为多项式的最小二乘曲线拟合。如果这种描述使你混淆,再研究图11.1。虚线和标志的数据点之间的垂直距离是在该点的误差。对各数据点距离求平方,并把平方距离全加起来,就是误差平方和。这条虚线是使误差平方和尽可能小的曲线,即是最佳拟合。最小二乘这个术语仅仅是使误差平方和最小的省略说法。
    • 在MATLAB中,函数polyfit求解最小二乘曲线拟合问题。为了阐述这个函数的用法,让我们以上面图11.1中的数据开始。
    • » x=[0.1.2.3.4.5.6.7.8.91];
    • » y=[-.4471.9783.286.167.087.347.669.569.489.3011.2];
    • 为了用polyfit,我们必须给函数赋予上面的数据和我们希望最佳拟合数据的多项式的阶次或度。如果我们选择n=1作为阶次,得到最简单的线性近似。通常称为线性回归。相反,如果我们选择n=2作为阶次,得到一个2阶多项式。现在,我们选择一个2阶多项式。
    • » n=2;%polynomial order
    • » p=polyfit(x, y, n)
    • p =
    • -9.810820.1293-0.0317
    • polyfit的输出是一个多项式系数的行向量。其解是y = -9.8108x2+20.1293x-0.0317。为了将曲线拟合解与数据点比较,让我们把二者都绘成图。
    • » xi=linspace(0, 1, 100);%x-axis data for plotting
    • » z=polyval(p, xi);
    展开全文
  • MATLAB线性拟合测定古田地区 震动持续时间震级 段刚 福建省地震局监测中心 摘要本文介绍了振动持续时间震级并利用MATLAB线性拟合来确定公式中的未知参数讨论振动持续时间震级的优缺点及适用性 主题词 振动持续时间 ...
  • matlab 线性拟合

    2014-06-06 10:32:37
    clear all x=[1 2 3 4 5 6 7 8 9 10]; y=[10.15 5.52 4.08 2.85 2.11 1.65 1.41 1.30 1.21 1.15]; plot(x,y,'*') hold on z=1./x;...legend('数据点','线性值') hold off


    clear all
    x=[1 2 3 4 5 6 7 8 9 10];
    y=[10.15 5.52 4.08 2.85 2.11 1.65 1.41 1.30 1.21 1.15];
    plot(x,y,'*')
    hold on
    z=1./x;
    y1=polyfit(z,y,1);
    y2=poly2str(y1,'1/x')
    x1=linspace(1,10,50);
    z1=1./x1;
    y3=polyval(y1,z1);
    plot(x1,y3,'r')
    legend('数据点','线性值')
    hold off
    


    展开全文
  • Matlab 线性拟合 & 非线性拟合

    万次阅读 2018-07-07 11:45:53
    使用Matlab进行拟合是图像处理中线条变换的一个重点内容,本文将详解Matlab中的直线拟合和曲线拟合用法。 关键函数: fittype Fit type for cu
  • Matlab线性拟合和非线性拟合

    万次阅读 多人点赞 2019-01-23 09:25:36
    线性拟合 已知如下图像的x,y坐标,x = [1.0, 1.5, 2.0, 2.5, 3.0],y = [0.9, 1.7, 2.2, 2.6, 3.0],如何用一条直线去拟合下列散点? 代码: x = [1.0, 1.5, 2.0, 2.5, 3.0]'; y = [0.9, 1.7, 2.2, 2.6, 3.0]'...
  • 展开全部matlab中线性拟合可以使来用多项自式拟合函数polyfit()实现bai,du其调用格式为P=polyfit(X,Y,N)其中zhi,X,Y是需要拟合的数据,N是拟dao合的多项式的最高次数,P是拟合的多项式的系数。实例演示如下:1、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,176
精华内容 470
关键字:

matlab线性拟合

matlab 订阅