精华内容
下载资源
问答
  • 回复: nlinfit函数运行过程中问题 clear,clcx=[0.2 1.5 0.401;0.2 1.0 0.401;0.2 0.5 0.401;0.2 0 0.478;0.2 -0.5 0.5832;0.4 1.5 0.401;0.4 1.0 0.401;0.4 0.5 0.401;0.4 0 0.5638; 0.4 -0.5 0.6413;0.7 1.5 0.401;...

    icon1.gif 回复: nlinfit函数运行过程中问题

    clear,clc

    x=[0.2 1.5 0.401;0.2 1.0 0.401;0.2 0.5 0.401;0.2 0 0.478;0.2 -0.5 0.5832;

    0.4 1.5 0.401;0.4 1.0 0.401;0.4 0.5 0.401;0.4 0 0.5638; 0.4 -0.5 0.6413;

    0.7 1.5 0.401;0.7 1.0 0.401;0.7 0.5 0.401;0.7 0 0.7037;0.7 -0.5 0.6271;

    0.9 1.5 0.501;0.9 1.0 0.602;0.9 0.5 0.401;0.9 0 0.6575;0.9 -0.5 0.8564];

    y=x(:,3);x(:,3)=[];

    fx=@(b,x)3./(1256*x(:,1).^2*sqrt(b(1)*b(2))).*exp(-(x(:,2)-10*b(2).*x(:,1)).^2/40*b(2).*x(:,1)).*exp(-10*b(3)*x(:,1));

    b=[3.51, 0.0223, -0.4595];

    for l=1:5

    b=lsqcurvefit(fx,b,x,y);

    b=nlinfit(x,y,fx,b);

    end

    bm=b

    b=[3.5101555, 0.022290283, -0.4594986];

    fxy=@(b,x1,x2)3./(1256*x1.^2*sqrt(b(1)*b(2))).*exp(-(x2-10*b(2).*x1).^2/40*b(2).*x1).*exp(-10*b(3)*x1);

    x1=x(:,1);x2=x(:,2);n=length(y);

    str=num2str([1:n]');

    [x11,x22]=meshgrid(min(x1):range(x1)/60:max(x1),min(x2):range(x2):max(x2));

    y1=fxy(b,x11,x22);

    plot3(x1,x2,y,'o')

    stem3(x1,x2,y,'filled')

    text(x1,x2,y,str,'fontsize',12)

    hold on

    surf(x11,x22,y1);

    shading interp

    alpha(.85)

    axis tight

    结果见生成的图。可见,该组数据用此模型来描述是不恰当的,必须修改该或采用另外的模型。

    展开全文
  • 用非线性回归nlinfit,如果数据点多些,效果会更好。function nonlinefitclc;clear;t=[0 4 8 40];y=[20.09 64.52 85.83 126.75];beta=nlinfit(t,y,@myfunc,[1 1 1 1])a=beta(1)k1=beta(2)k2=beta(3)m=beta(4)tt=0:1:...

    fc04de09b6592aeaa81238e85804c7d6.png

    用非线性回归nlinfit,如果数据点多些,效果会更好。

    function nonlinefit

    clc;clear;

    t=[0 4 8 40];

    y=[20.09 64.52 85.83 126.75];

    beta=nlinfit(t,y,@myfunc,[1 1 1 1])

    a=beta(1)

    k1=beta(2)

    k2=beta(3)

    m=beta(4)

    tt=0:1:40

    yy=a+k1*exp(m*tt)+k2*exp(-m*tt)

    plot(t,y,'o',tt,yy)

    function y1=myfunc(const,t)

    a=const(1);

    k1=const(2);

    k2=const(3);

    m=const(4);

    y1=a+k1*exp(m*t)+k2*exp(-m*t);

    %或者用以下代码,更为简捷。

    clc;clear;

    t=[0 4 8 40];

    y=[20.09 64.52 85.83 126.75];

    myfunc=inline('beta(1)+beta(2)*exp(beta(4)*t)+beta(3)*exp(-beta(4)*t)','beta','t');

    beta=nlinfit(t,y,myfunc,[1 1 1 1]);

    a=beta(1),k1=beta(2),k2=beta(3),m=beta(4)

    %test the model

    tt=0:1:40 ;

    yy=a+k1*exp(m*tt)+k2*exp(-m*tt);

    plot(t,y,'o',tt,yy,'r')

    结果:

    a = 105.3413

    k1 = 0.0137

    k2 = -85.2650

    m = 0.1840

    ◆◆

    评论读取中....

    请登录后再发表评论!

    ◆◆

    修改失败,请稍后尝试

    展开全文
  • Matlab多元非线性回归(nlinfit 函数

    千次阅读 2020-01-10 14:05:50
    Matlab中使用nlinfit 函数进行多元非线性回归。

    在matlab中常使用 nlinfit函数 进行多元非线性回归。

    1. 基本语法

    语法 参数说明
    beta = nlinfit(X, Y, modelfun, beta0) X -> 预测变量
    Y -> 响应值
    modelfun -> 指定的模型
    beta0 -> 参数初始值
    beta = nlinfit(X, Y, modelfun, beta0, options) options -> 评估算法的选择,默认为缺省,详见 options参考内容
    beta = nlinfit(___, Name, Value) 指定可选的逗号分隔的名称、值参数对。
    Name是参数名,Value是对应的值,参数名必须出现在引号内。
    可以以任何顺序指定几个名称和值对参数,如Name1, Value1, …, NameN, ValueN。例如:‘ErrorModel’, ‘proportional’, ‘ErrorParameters’, 0.5…
    [beta, R, J, CovB, MSE, ErrorModelInfo] = nlinfit(___) R -> 残差
    J -> 雅可比矩阵
    CovB -> 估计方差-协方差矩阵
    MSE -> 均方差
    ErrorModelInfo -> 误差模型拟合信息

    2. 示例

    X = 1 : 10;
    Y = [0 4 8 17 29 34 54 62 80 99];
    mymodel = inline('beta(1) * X .^ beta(2)', 'beta', 'X');
    beta0 = [1, 2];
    beta = nlinfit(X, Y, mymodel, beta0);
    

    输出结果: beta = 1.203177103441870 1.913267782105321

    X = 1 : 10;
    Y = [0 4 8 17 29 34 54 62 80 99];
    mymodel = inline('beta(1) * X .^ beta(2)', 'beta', 'X');
    beta0 = [1, 2];
    [beta, R, J, CovB, MSE, ErrorModelInfo] = nlinfit(X, Y, mymodel, beta0);
    

    输出结果:

    beta =
    
       1.203177103441870   1.913267782105321
    
    
    R =
    
      -1.203177103441870
      -0.531902426953979
      -1.844423386925135
      -0.069922248918235
       2.839481428235956
      -3.080132352538584
       4.200106803860550
      -2.295789744078874
      -0.547303920433009
       0.463452664946701
    
    
    J =
    
       1.0e+02 *
    
       0.009999999999931                   0
       0.037666127981753   0.031412881732651
       0.081820231121898   0.108152737129980
       0.141873719717092   0.236641274909903
       0.217428643531115   0.421041233755697
       0.308185129687587   0.664393679618334
       0.413903226770619   0.969072093923712
       0.534383368398917   1.337009450489727
       0.669455022058049   1.769827653002497
       0.818969511416963   2.268918061872248
    
    
    CovB =
    
       0.036203997364694  -0.013926635931111
      -0.013926635931111   0.005406465988118
    
    
    MSE =
    
       5.764136230306152
    
    
    ErrorModelInfo = 
    
                  ErrorModel: 'constant'
             ErrorParameters: 2.400861560004273
               ErrorVariance: @(x)mse*ones(size(x,1),1)
                         MSE: 5.764136230306152
              ScheffeSimPred: 3
              WeightFunction: 0
                FixedWeights: 0
        RobustWeightFunction: 0
    

    欢迎大家批评指正。

    展开全文
  • Process 前两天练题的时候要用到多元非线性拟合,但是在网上找到的大多都是一些求问的帖子,真正有用的回答却不多,...套用nlinfit函数,得出的bate矩阵就是你要拟合的系数矩阵。 covB回归系数的协方差 mse均方误差 bet

    Process

    前两天练题的时候要用到多元非线性拟合,但是在网上找到的大多都是一些求问的帖子,真正有用的回答却不多,这里汇总一下与大家分享。

    • 首先导入数据(参数和结果)
    • 确定自己要拟合的函数(自己画个散点图预估一下,或者是使用SPSS的曲线估算,但是没自己画图看的舒服)
    • 确定要拟合的系数的预估值(全部写零也行,但是你得有个大概想法,比如你图像是幂次为负的幂函数,那么你就写个负值,比如-1)
    • 套用nlinfit函数,得出的bate矩阵就是你要拟合的系数矩阵。
    • covB回归系数的协方差
      mse均方误差
      beta参数最优值
      r各点处的拟合残差
      J雅各比矩阵的数值
      ErrorModelInfo错误模型信息

    Code

    clear all;
    a=xlsread("C:\Users\123\Desktop\数据.xlsx","a");%导入表a
    b=xlsread("C:\Users\123\Desktop\数据.xlsx","b");%导入表b
    s=a(:, 6);%y值(结果矩阵)
    myfunc=inline('beta(1).*x(:,1).^(beta(2))+beta(3).*x(:,2).^(beta(4))+beta(5).*x(:,3).^(beta(6))+beta(7).*x(:,4).^(beta(8))+beta(9)','beta','x');%内联函数(beta是函数自带的代表待确定的系数)
    beta0 = [1, -2 ,1, -2 ,1, -2 ,1, -2 ,60];%待定系数的预估值
    [beta,R,J,CovB,MSE,ErrorModelInfo]= nlinfit(b, s, myfunc,beta0);
    beta
    
    展开全文
  • 在使用nlinfit函数进行拟合时出错,内容如下: The function you provided as the MODELFUN input has returned Inf or NaN values. 从第一行可以看出,由于赋予的初始值导致了函数生成了NaN(无解),所以整个...
  • Matlab 使用nlinfit 函数进行多元非线性回归,并且绘制曲线拟合的误差区间一、前言二、nlinfit函数使用1、函数语法2、拟合示例:三、误差阴影绘制四、整体源码思考参考博客 一、前言 这个也是最近我接到的一个小项目...
  • matlab中的nlinfit函数时,参数需要回归系数的初值,如何确定?2018-4-4来自ip:11.11.16.15的网友咨询浏览量:142问题补充:matlab中的nlinfit函数时,参数需要回归系数的初值,如何确定?function yy=model(beta0,X)a=beta...
  • 使用MATLAB进行多元非线性回归——nlinfit函数的使用

    万次阅读 多人点赞 2018-12-03 16:29:11
    使用beta= nlinfit(x, y, model, beta0)  ——x为自变量,可以是多个自变量 ——y为因变量,只能由一个 ——model是函数模型 ——beta0要求系数的初值 例子: 假定一个回归模型y = beta1*x1^3 + beta2*x2^2 +...
  • 利用nlinfit函数实现数据非线性拟合

    万次阅读 多人点赞 2018-08-13 09:40:48
    所谓“拟合”,指的是在已有一组实验数据的前提下,研究这组数据有怎样的函数关系——最终结果是从这一组看似漫无规律的数据点中“找出”能用数学表达式表示的规律。 用数学语言描述的拟合定义如下: 一个典型的...
  • 具体参数设置参考官网:https://ww2.mathworks.cn/help/stats/nlinfit.html?s_tid=srchtitle#btldemp-2 如下所示自定义公式为:y=b1*x1/(b2+x1)+b3*x2/(b4+x2)+b5*x3/(b6+x3)+b7*x4/(b8+x4); x为n行4列的矩阵,y为...
  • 混凝土的抗压强度随养护时间的延长而增加,现将一批混凝土作成12个试块,记录了养护日期x(日... MYFUN can also be an inline object: fun = inline('1 ./ (1 + exp(b(1) + b(2*x))', 'b', 'x') nlinfit(x, y, fun, b0)
  • % 提取HeadData矩阵的第9列数据,即头围数据 plot(x, y, 'k.') % 绘制x和y的散点图 xlabel('年龄(x)') % 为X轴加标签 ylabel('头围(y)') % 为Y轴加标签 %*调用nlinfit函数作一元非线性回归 HeadData = xlsread('...
  • matlab nlinfit函数的应用例子

    万次阅读 2008-03-26 00:36:00
    beta=nlinfit(x,y,myfunc,[0.5 0.5 0.5 0.5]); a=beta(1),k1=beta(2),k2=beta(3),m=beta(4) %test the model xx=min(x):max(x); yy=a+k1*exp(m*xx)+k2*exp(-m*xx); plot(x,y,'o',xx,yy,'r') 结果: a = 87....
  • beta = nlinfit(x,z,fun,beta0); [xt, yt] = meshgrid(linspace(min(x(:, 1)), max(x(:, 1))), linspace(min(x(:, 2)), max(x(:, 2)))); zt = fun(beta, [xt(:) yt(:)]); zt = reshape(zt, size(xt, 1), size(xt, 2...
  • 文件定义的非线性函数, beta0 是回归系数的初值,   beta 是估计出的回归系数, r 是残差, j 是 Jacobian 矩阵,它们是估计预测误差需要的数据。 预测和预测误差估计用命令 [y,delta] = nlpredci(’model’...
  • 文件定义的非线性函数, beta0 是回归系数的初值,   beta 是估计出的回归系数, r 是残差, j 是 Jacobian 矩阵,它们是估计预测误差需要的数据。 预测和预测误差估计用命令 [y,delta] = nlpredci(’...
  • [MATLAB]非线性回归--自配函数(nlinfit)

    千次阅读 2020-04-01 16:07:59
    自配函数nlinfit外部调用的时候,会发现有很多问题,如果都能将参数一一搞懂,就会应付问题得心应手!

空空如也

空空如也

1 2 3 4 5
收藏数 83
精华内容 33
关键字:

nlinfit函数