精华内容
下载资源
问答
  • 2021-04-21 20:51:41

    出现的问题:提示拟合参数太多。请您指导,谢谢您啦!

    自定义拟合函数:y = k/(1-(x/v)^m);

    自变量:x;

    因变量:y;

    需拟合求的参数:k, v, m; 初始值分别为:0.6, 400, 0.6;

    以下是数据:

    266.86235        1.31743

    220.67675        1.19102

    202.93177        1.08869

    200.17285        1.02352

    186.29441        0.97621

    185.58689        1.02352

    214.26107        0.94542

    207.00444        0.87101

    138.78133        0.72

    192.59403        1.08869

    157.21389        0.77292

    150.50928        0.77292

    86.25214                0.66931

    139.19936        0.65699

    121.8063                0.63275

    62.68215                0.63275

    266.86235        1.51207

    220.67675        1.30747

    202.93177        1.19318

    200.17285        1.0851

    186.29441        0.88712

    185.58689        0.84132

    214.26107        0.87169

    192.1437                1.0851

    241.9557                0.88712

    192.59403        1.05043

    157.21389        0.81159

    150.50928        0.78251

    86.25214                0.5964

    139.19936        0.69903

    121.8063                0.62115

    62.68215                0.57226

    266.86235        1.4114

    220.67675        1.24788

    202.93177        1.13974

    200.17285        1.05386

    186.29441        0.9306

    185.58689        0.92796

    214.26107        0.9078

    192.59403        1.06939

    157.21389        0.79202

    150.50928        0.7777

    86.25214                 0.63181

    139.19936        0.67768

    121.8063                0.62692

    62.68215                0.60174

    234.89964        1.26232

    241.97025        1.20861

    227.78148        1.15629

    209.97758        1.12219

    195.83285        1.0558

    192.34325        1.0076

    196.14109        0.97621

    185.8807                0.90033

    161.8753                   0.77292

    192.2004                 1.0558

    177.9684                0.8141

    153.67586        0.80023

    160.91012        0.77292

    103.2452                 0.5859

    131.67216        0.59741

    125.58693        0.59741

    65.67832                  0.55217

    234.89964        1.28798

    241.97025        1.30747

    227.78148        1.17474

    209.97758        1.17474

    195.83285        1.05043

    192.34325        0.9997

    196.14109        0.95046

    221.97933        1.06768

    242.04403        0.88712

    192.2004                1.06768

    177.9684                 0.7682

    153.67586        0.72623

    160.91012        0.69903

    103.2452                 0.6594

    131.67216        0.75405

    125.58693        0.6465

    65.67832                 0.5145

    234.89964        1.27509

    241.97025        1.25707

    227.78148        1.16548

    209.97758        1.14816

    195.83285        1.05311

    192.34325        1.00364

    196.14109        0.96325

    192.2004                1.06173

    177.9684                0.79082

    153.67586        0.76233

    160.91012        0.73505

    103.2452               0.62156

    131.67216        0.67117

    125.58693        0.62147

    65.67832            0.533

    更多相关内容
  • matlab三个自变量一个因变量拟合

    千次阅读 2022-04-28 18:26:50
    % Input: X 自变量数据(N, D), Y 因变量(N, 1),choose 1-regress, 2-nlinfit 3-lsqcurvefit if choose==1 X1=[ones(length(X(:, 1)), 1), X]; [beta, bint, r, rint, states]=regress(Y, X1) %

    fit_nonlinear_data.m

    function [beta, r]=fit_nonlinear_data(X, Y, choose)
    % Input: X 自变量数据(N, D), Y 因变量(N, 1),choose 1-regress, 2-nlinfit 3-lsqcurvefit
    if choose==1
        X1=[ones(length(X(:, 1)), 1), X];
        [beta, bint, r, rint, states]=regress(Y, X1)
        % 多元线性回归
        % y=beta(1)+beta(2)*x1+beta(3)*x2+beta(4)*x3+...
        % beta—系数估计
        % bint—系数估计的上下置信界
        % r—残差
        % rint—诊断异常值的区间
        % states—模型统计信息
        rcoplot(r, rint)
        saveas(gcf,sprintf('线性曲线拟合_残差图.jpg'),'bmp');
    elseif choose==2
        beta0=ones(7, 1);
        % 初始值的选取可能会导致结果具有较大的误差。
        [beta, r, J]=nlinfit(X, Y, @myfun, beta0)
        % 非线性回归
        % beta—系数估计
        % r—残差
        % J—雅可比矩阵
        [Ypred,delta]=nlpredci(@myfun, X, beta, r, 'Jacobian', J)
        % 非线性回归预测置信区间
        % Ypred—预测响应
        % delta—置信区间半角
        plot(X(:, 1), Y, 'k.', X(:, 1), Ypred, 'r');
        saveas(gcf,sprintf('非线性曲线拟合_1.jpg'),'bmp');
    elseif choose==3
        beta0=ones(7, 1);
        % 初始值的选取可能会导致结果具有较大的误差。
        [beta,resnorm,r, ~, ~, ~, J]=lsqcurvefit(@myfun,beta0,X,Y)
        % 在最小二乘意义上解决非线性曲线拟合(数据拟合)问题
        % beta—系数估计
        % resnorm—残差的平方范数 sum((fun(x,xdata)-ydata).^2)
        % r—残差 r=fun(x,xdata)-ydata
        % J—雅可比矩阵
        [Ypred,delta]=nlpredci(@myfun, X, beta, r, 'Jacobian', J)
        plot(X(:, 1), Y, 'k.', X(:, 1), Ypred, 'r');
        saveas(gcf,sprintf('非线性曲线拟合_2.jpg'),'bmp');
    end
    end
     
     
    function yy=myfun(beta,x) %自定义拟合函数
    yy=beta(1)+beta(2)*x(:, 1)+beta(3)*x(:, 2)+beta(4)*x(:, 3)+beta(5)*(x(:, 1).^2)+beta(6)*(x(:, 2).^2)+beta(7)*(x(:, 3).^2);
    end
    

    demo.m

    %x,y为离散点横纵坐标
    clear
    clc
    X=[ 63.50 73.60 30.90 ;
        67.90 77.90 33.20;
        61.90 74.10 31.20;
        64.20 76.50 32.50;
        66.70 76.50 32.50];
    Y=[64.00;73.80 ;65.60;70.30;69.50];
    choose=1;
    fit_nonlinear_data(X, Y, choose)
    
    

    在这里插入图片描述

    拟合羊的体重

    #重量估计,输入体高,体长,体宽,输出估计重量
    #公式:y = beta(1) + beta(2) * x1 + beta(3) * x2 + beta(4) * x3
    def sheep_weight_estimation(body_length,body_height,body_width):
        #matlab多项式拟合
        k1 =-288.7822
        k2 =  -0.4094
        k3 = 14.2552
        k4 = -21.6917
        sheep_weight=k1 + k2*body_height  + k3*body_length + k4*body_width
    
        return sheep_weight
    

    参考:https://www.cnblogs.com/kailugaji/p/13086180.html

    展开全文
  • Matlab regress函数拟合个变量分析

    千次阅读 2021-04-18 04:16:43
    简介拟合曲线,在matlab中有polyfit函数,有cftool工具,对于多项式,指数,对数都有很好的拟合,但是对于多参数的拟合,比如x1,x2……用什么函数呢?就会用到今天介绍的regress函数。regress函数调用格式b = ...

    声明

    本文系本人原创,转载请注明出处。

    简介

    拟合曲线,在matlab中有polyfit函数,有cftool工具,对于多项式,指数,对数都有很好的拟合,但是对于多个参数的拟合,比如x1,x2……用什么函数呢?

    就会用到今天介绍的regress函数。

    regress函数

    调用格式

    b = regress(y,X)

    [b,bint] = regress(y,X)

    [b,bint,r] = regress(y,X)

    [b,bint,r,rint] = regress(y,X)

    [b,bint,r,rint,stats] = regress(y,X)

    [...] = regress(y,X,alpha)

    参数解释

    B:回归系数,是个向量(“the vector B of regression coefficients in the linear model Y = X*B”)。

    BINT:回归系数的区间估计(“a matrix BINT of 95% confidence intervals for B”)。

    R:残差( “a vector R of residuals”)。

    RINT:置信区间(“a matrix RINT of intervals that can be used to diagnose outliers”)。

    STATS:用于检验回归模型的统计量。有4个数值:判定系数R^2,F统计量观测值,检验的p的值,误差方差的估计。

    ALPHA:显著性水平(缺少时为默认值0.05)。

    函数示例

    参数都是matlab自带变量,放进去即可运行。

    clc;clear all;

    load carsmall

    x1 = Weight;

    x2 = Horsepower; % Contains NaN data

    y = MPG;

    X = [ones(size(x1)) x1 x2 x1.*x2];%创建常数,创建x1*x2矩阵

    [b,bint,r,rint,stats] = regress(y,X)%拟合

    scatter3(x1,x2,y,'filled')%散点图

    hold on

    x1fit = min(x1):100:max(x1);%网格范围

    x2fit = min(x2):10:max(x2);

    [X1FIT,X2FIT] = meshgrid(x1fit,x2fit);%创建网格

    YFIT = b(1) + b(2)*X1FIT + b(3)*X2FIT + b(4)*X1FIT.*X2FIT;%%代入已经求得的参数,拟合函数式

    mesh(X1FIT,X2FIT,YFIT);%画图

    xlabel('Weight')

    ylabel('Horsepower')

    zlabel('MPG')

    view(50,10)%改变角度

    结果

    系数b:

    60.7103608050491

    -0.0101535475890010

    -0.188206440954575

    3.84948273160185e-05

    bint:

    51.389844577376670.0308770327216

    -0.0132913573307914-0.00701573784721061

    -0.292829970434399-0.0835829114747502

    1.25893736802855e-056.44002809517514e-05

    stats:

    0.774173440544747

    101.702587411461

    1.17235917863432e-28

    15.2363354389984

    分析

    b分别为各参量的系数

    即A*x1+B*x2+C中的A,B,C

    stats中,第一个为相关系数,越大说明相关性越大,第三个为P值,值越小,模型可靠性越大。p值很小(P<0.001),说明拟合模型有效。

    结果图

    e546146c55223a9b2a6b8fc0071bd6ee.png

    注意

    Y与[X]行数相同,列数不同。

    可拟合多个变量,原理是最小二乘法。

    参考文章

    xxin blog , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Matlab regress函数拟合多个变量分析!

    展开全文
  • matlab四维数据拟合函数代码 棱镜:具有正则化,降维和特征选择的多重样条回归 Prism使用统计方法的组合进行基于样条的多元回归。 Prism通过平滑样条回归,PCA和RVR / LASSO的组合,使用正则化,降维和特征选择进行...
  • 就看做是非线性拟合吧,仿照下面的例子:function shiyan2x1 = linspace( 0.5, 10, 15 );x2 = linspace( 10, 20, 15 );y = 2.5 * x1.^0.5 .* x2.^0.3; % 假设公式是这样的% 利用已知数据进行非线性拟合,根据...

    这个就看做是非线性拟合吧,仿照下面的例子:

    function shiyan2

    x1 = linspace( 0.5, 10, 15 );

    x2 = linspace( 10, 20, 15 );

    y = 2.5 * x1.^0.5 .* x2.^0.3; % 假设公式是这样的

    % 利用已知数据进行非线性拟合,根据经验给abc一个初始值1, 1, 1,初始值不一定非要很准确

    p = lsqcurvefit( @subfun, [ 1, 1, 1 ], [ x1', x2' ], y' );

    disp( '拟合参数结果如下:' )

    disp( [ 'a = ', num2str( p( 1 ) ), ', b = ', num2str( p( 2 ) ), ...

    ', c = ', num2str( p( 3 ) ) ] );

    function ydata = subfun( p, xdata )

    ydata = p( 1 ) * xdata( :, 1 ).^p( 2 ) .* xdata( :, 2 ).^p( 3 );

    6681169ce8c131fdf6354f280fc544ab.png

    展开全文
  • matlab拟合函数种方法

    万次阅读 多人点赞 2020-02-14 12:07:39
    方法一:多项式拟合polyfit x=[1 2 3 4 5 6 7 8 9];...P= polyfit(x, y, 3) %阶多项式拟合 xi=0:.2:10; yi= polyval(P, xi); %求对应y值 plot(xi,yi,x,y,'r*'); 运行结果: 多项式系数:P =0.1481 -1.4030 ...
  • 变量函数拟合问题

    千次阅读 2021-04-18 16:27:30
    有七组数据(1,50): x=[ 13.4171 5.652496 7.560203 7.005844 11.98577 7.746066 10.69772 8.115705 14.04746 10.89177 8.992618 13.90936 6....请教一下该怎么编程呢,cftool是不是只能做两变量函数拟合
  • 我有三个变量 两个因变量,想分别做X1 X2 X3 与 Y1的关系和X1 X2 X3 与 Y2的关系,用matlab该怎样编程做多元非线性回归拟合函数形式未知。还请哪位大佬帮帮忙,万分感激!数据如下:X1 X2 X3 Y1 Y210 3 0.2 0....
  • matlab变量曲线拟合

    千次阅读 2021-04-18 11:06:01
    大家好,由于初学不知道该怎么入手,希望高手及热心的朋友帮帮忙,一共有8组数据,abcd是自变量,F是因变量,需要利用这些数据用matlab编程拟合成一条曲线,得出一含有abcd变量的F=f(abcd)函数,希望尽量能详细点...
  • 首先,将x、y看成同一变量,即x(1)、x(2) 然后,定义自变量函数,即fun=inline('x(2)-f(x(1),x(2))','a','x')%a是拟合系数 再用Matlab的nlinfit()函数或lsqcurvefit()函数进行拟合另外你也可以利用可视化工具cftool...
  • MATLAB | 快速实现维数据的拟合

    千次阅读 多人点赞 2022-02-03 14:54:46
    MATLAB | 快速实现维数据的拟合 导入维数据,下面举例我们是直接定义,你也可以从文件中读取: 接着 点左上方 APP 就可看到它下方的 Curve Fitting,点进去: 再选择拟合数据的 Method 后,会自动生成拟合结果,...
  • 年份 国民收入(亿元) 工业总产值(亿元) 农业总产值(亿元) 总人口(万人) 就业人口(万人) 固定资产投资(亿元) 财政收入(亿元)1952 598 349 461 57482 20729 44 18...
  • 希望高手及热心的朋友帮帮忙给出拟合方程和拟合曲线,一共有两组数据,X1,X2,X3是自变量,Y是因变量,需要利用这些数据用matlab编程拟合成一条曲线,得出一含有X31,X2,X变量的Y=f(X1,X2,X3)函数,非常感谢!...
  • CODE:Variable x1,x2,y;Function y=a1*a2*x1*exp(x2-3.64)/(1+ (1+a2*x1)*exp(x2-3.64) );Data;9.7134 8.0000206.59174.0793 8.0000181.03781.6373 8.0000130.75210.4996 8.0000 97.27970.0617...
  • matlab如何拟合函数

    2021-04-20 12:52:54
    储存着各离散点的横坐标和纵坐标,则在 MATLAB 中直接键入命令 cftool(X,Y) 就会弹出 Curve ......Matlab中插值拟合函数汇总和使用说明interp1,interp2,interp3,interpft,griddata,spline,interpn,meshgrid,ndgrid,t...
  • (由于不方便上传公式,有部分直接截图) 2.Polyval函数对应多项式拟合,多项式求值函数也相当重要,可以通过设定向量,快速定义如下多项式据此,可以大概猜测到polyval调用的形式了y=polyval(p,x)如上所述[y,delta]=...
  • Root of Mean Square Error (RMSE): 0.552968636193814Sum of Squared Residual: 7.33858350273712Correlation Coef. (R): 0.967603268749806R-Square: 0.936256085695309Adjusted R-Square: 0.851964171950494Deter...
  • 有一堆实验数据要拟合MATLAB调用cftool工具箱,采用GUI模式显然会让人吐血,而用函数调用的方法就比较方便了。当然origin等软件可以批量弄,线性方程时matlab可以调用[p,e]=polyfit(x,y,n)完成。对于方程需要...
  • matlab怎么拟合函数参数?

    千次阅读 2021-04-20 04:38:34
    你让fx=fitresult结果fx就不是函数,而是cfit类型了,你可以这样做,把参数提取出来,...可以用lsqcurvefit()函数或nlinfit()函数拟合。例如:x=[。。。]y...确定参数的初始值是比较繁琐的工作,一般可以用随机函数...
  • matlab二元函数拟合怎么设计函数

    千次阅读 2021-05-02 07:52:31
    mip版关注:169答案:2悬赏:20解决时间 2021-01-24 19:12已解决2021-01-24 01:01下面是数据,要求拟合二元函数,自变量为a,b。请问在非线性拟合之前怎么设计函数,使其拟合误差最小。很急,请大家帮帮忙。a\b6....
  • matlab拟合函数怎么搞

    千次阅读 2021-04-25 02:32:01
    话题:matlab拟合函数怎么搞??多谢大神相助回答:x=[-20,-15,-10,-5,0,5,10,15,20,25,30,35,40,45,50,55,60,65,0,5,0,5,0,5,100,105,110,115,120]; y=[43.463,363.624,25.01,211.1656,163.006,126.45,.45...
  • matlab分布拟合函数

    千次阅读 2020-04-15 21:27:45
    具体可以查看下面的链接: https://ww2.mathworks.cn/help/stats/fitdist.html
  • matlabsin函数拟合

    千次阅读 2021-04-18 17:28:22
    Matlab中插值拟合函数汇总和使用说明interp1,interp2,interp3,interpft,griddata,spline,interpn,meshgrid,ndgrid,table1 Matlab 中插值拟合函数汇总和使用说明命令 1......使用?MATLAB 曲线拟合工具箱做曲线拟合在...
  • matlab多元与非线性回归即拟合问题regressnlinfit 回归(拟合)自己的总结(20100728) 1:学三条命令:polyfit(x,y,n)---拟合成一元幂函数(一元多次) regress(y,x)----可以多元, nlinfit(x,y,’fun’,beta0) (可用于...
  • xtwodpolyfit 对表示为两变量 (x,y) 的函数的任意数据集合 (z) 执行二维多项式展开的加权线性最小二乘拟合。 据我所知,该函数与可从文件交换中获得的类似函数在两方面有所不同: (1) 可以指定每个变量的最小...
  • 拟合拟合问题的目标是寻求一个函数(曲线),使得该曲线在某种准则下与所有的数据点最为接近,即曲线拟合的最好(最小化损失函数)。必须有函数表达式、不一定通过所有数据点。二、模型适用范围或案例功能:...
  • 刚开始思路是自定义一个函数关系式,然后用pso求解最优参数,其最后输出的y的值为下图所示,输入有三个变量,x1,x2,x3. 最后的需求是找到x1,x2,x3.与y的具体关系式子,比如 y=ax1+bx2+cx3; y=ax1+bx2+cx3+ex1...
  • Matlab如何拟合指数函数

    千次阅读 2021-07-22 05:29:12
    [quote][parse]Bush wrote:[/parse]用Matlab软件:知道指数函数y=exp(a*x+b)以及该函数的一些点,即,并求出a,b的值????????那位大侠知道,请速发:usa_hp@163.com不尽感谢!!!!!!!!!!!!!!![/...
  • 一元函数拟合可用cftool工具箱, 对于一元多项式拟合也可用polyfit()多元线性函数y=ax的拟合函数regress()语法是:[a, aint]=regress(y,x,alpha)其中1-alpha是置信度, 默认alpha=0.05. 即置信度为�, aint是a的置信...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,899
精华内容 3,559
关键字:

matlab三个变量拟合函数

matlab 订阅