精华内容
下载资源
问答
  • MATLAB非线性回归拟合nlintool非线性回归非线性回归可用命令nlinfit,nlintool,nlparci,nlpredci来实现。进行非线性回归时可使用nlinfit指令,其语法如下:beta = nlinfit(X,y,fun,beta0)[beta,r,J] = nlinfit(X,y,...

    MATLAB非线性回归拟合nlintool

    非线性回归

    非线性回归可用命令nlinfit,nlintool,nlparci,nlpredci来实现。

    进行非线性回归时可使用nlinfit指令,其语法如下:

    beta = nlinfit(X,y,fun,beta0)

    [beta,r,J] = nlinfit(X,y,fun,beta0)

    [...] = nlinfit(X, y, fun, beta0, options)

    回归:

    回归可用命令

    [beta,r,J]=nlinfit(x,y,model,beta0) 或者

    nlintool(x,y,model,beta0,alpha)

    来实现。

    其中:

    命令 [beta,r,J]=nlinfit(x,y,model,beta0)的作用为确定回归系数;

    而命令 nlintool(x,y,model,beta0,alpha)

    产生一个交互式的画面,画面中有拟合曲线和y的置信区间。

    通过左下方的Export下拉式菜单,可以输出回归系数等。

    这里的输入数据:

    x、y分别为 m×n 矩阵和n维列向量,对一元非线性回归,x为n维列向量;

    model是事先用m-文件定义的非线性函数;

    beta0是回归系数的初值。

    Beta是估计出的回归系数,

    r(残差)、 J(Jacobian矩阵)是估计预测误差需要的数据。

    alpha为显著性水平,缺省时为0.05。

    预测和预测误差估计:

    预测和预测误差估计的命令格式为

    betaci=nlparci(beta,r,J)

    其用途为记算回归系数的置信区间;

    [Y,DELTA]=nlpredci(model,x,beta,r,J)

    其用途为求nlinfit或nlintool所得的回归函数在x处的预测值Y及预测值的显著性为1-alpha的置信区间Y± DELTA;

    alpha缺省时为0.05。

    某些非线性回归也可化为多元线性回归来解。

    .................

    例:

    在工具箱中,有reaction.mat之资料,这是有关化学反应所到之观察值,其中牵涉到三种化学反应:氢、n-戊烷、同位戊烷等。

    其中之函数hougen已经存在,是使用Hougen-Watson模式建立之反应动能量,其回应值为预设之反应速率。

    load reaction

    betafit = nlinfit(reactants,rate,@hougen,beta)

    betafit =

    1.2526

    0.062776

    0.040048

    0.11242

    1.1914

    其中之hougen.m可以type hougen,得其內容如下:

    function yhat = hougen(beta,x)

    %HOUGEN Hougen-Watson model for reaction kinetics.

    % YHAT = HOUGEN(BETA,X) gives the predicted values of the

    % reaction rate, YHAT, as a function of the vector of

    % parameters, BETA, and the matrix of data, X.

    % BETA must have 5 elements and X must have three

    % columns.

    %

    % The model form is:

    % y = (b1*x2 - x3/b5)./(1+b2*x1+b3*x2+b4*x3)

    %

    % Reference:

    % [1] Bates, Douglas, and Watts, Donald, "Nonlinear

    % Regression Analysis and Its Applications", Wiley

    % 1988 p. 271-272.

    % Copyright 1993-2004 The MathWorks, Inc.

    % $Revision: 2.7.2.1 $ $Date: 2004/01/24 09:34:06 $

    % B.A. Jones 1-06-95.

    b1 = beta(1);

    b2 = beta(2);

    b3 = beta(3);

    b4 = beta(4);

    b5 = beta(5);

    x1 = x(:,1);

    x2 = x(:,2);

    x3 = x(:,3);

    yhat = (b1*x2 - x3/b5)./(1+b2*x1+b3*x2+b4*x3);

    ....

    另有一个nlintool指令函数则可利用图形介面执行,可在指令窗下打入执行之。

    ....

    ...

    close all

    clear,clc

    yhat =

    展开全文
  • 非线性回归非线性回归可用命令nlinfit,nlintool,nlparci,nlpredci来实现。进行非线性回归时可使用nlinfit指令,其语法如下:beta = nlinfit(X,y,fun,beta0)[beta,r,J] = nlinfit(X,y,fun,beta0)[...] = nlinfit(X, y...

    非线性回归

    非线性回归可用命令nlinfit,nlintool,nlparci,nlpredci来实现。

    进行非线性回归时可使用nlinfit指令,其语法如下:

    beta = nlinfit(X,y,fun,beta0)

    [beta,r,J] = nlinfit(X,y,fun,beta0)

    [...] = nlinfit(X, y, fun, beta0, options)

    回归:

    回归可用命令

    [beta,r,J]=nlinfit(x,y,model,beta0) 或者

    nlintool(x,y,model,beta0,alpha)

    来实现。

    其中:

    命令 [beta,r,J]=nlinfit(x,y,model,beta0)的作用为确定回归系数;

    而命令 nlintool(x,y,model,beta0,alpha)

    产生一个交互式的画面,画面中有拟合曲线和y的置信区间。

    通过左下方的Export下拉式菜单,可以输出回归系数等。

    这里的输入数据:

    x、y分别为 m×n 矩阵和n维列向量,对一元非线性回归,x为n维列向量;

    model是事先用m-文件定义的非线性函数;

    beta0是回归系数的初值。

    Beta是估计出的回归系数,

    r(残差)、 J(Jacobian矩阵)是估计预测误差需要的数据。

    alpha为显著性水平,缺省时为0.05。

    预测和预测误差估计:

    预测和预测误差估计的命令格式为

    betaci=nlparci(beta,r,J)

    其用途为记算回归系数的置信区间;

    [Y,DELTA]=nlpredci(model,x,beta,r,J)

    其用途为求nlinfit或nlintool所得的回归函数在x处的预测值Y及预测值的显著性为

    展开全文
  • 基于MATLAB的多元非线性回归模型.pdf
  • 深度学习 神经网络 BP 多层感知机 非线性函数 拟合 matlab
  • matlab偏最小二乘法代码,整理各种线性和非线性回归,参考网上资料
  • MATLAB多元非线性拟合

    千次阅读 2021-04-20 10:48:21
    使用“regress” 线性的不行,用二次函数。 format long A=[... 0.2 13.6 8503 251 27.4 7.7 9.9 3658 314 13.9 5.8 10.8 7307 433 26.8 7.70 9.70 6717 257 23.8 7.5 9.8 7609 280 21.7 ...

    辛苦几天收集的资料:

    1.使用“nlinfit”

    x1=1150,1000,900,850,700,625,550,475,3350,3500,5900,5800,5700,4600,4625,4725,11650,11200,11200]';

    x2=[175,100,25,0,75,100,150,200,50,600,500,225,100,1225,1600,2000,1200,1000,1550

    ]';

    x=[x1,x2];

    y=[1.44E-02,1.80E-02,6.08E-02,5.59E-02,3.42E-02,7.74E-03,1.17E-03,6.16E-03,1.91E-04,1.91E-04,1.02E-03,2.83E-03,9.52E-05,3.77E-04,2.70E-04,1.87E-04,3.98E-04,4.04E-04,4.02E-04]';

    beta0=[0.1 0.1 1 1];

    myfun=@(a,x)4030.0./pi./4.2./(a(1).*x(:,1).^a(2).*a(3).*x(:,1).^a(4)).*exp(-(x(:,2).^2./2./(a(1).*x(:,1).^a(2)).^2+30.0.^2./2./(a(3).*x(:,1).^a(4)).^2));

    [a,b,c,d,res]=nlinfit(x,y,myfun,beta0);a,res

    plot3(x1,x2,y,'o',x1,x2,myfun(a,x))

    值的选取没有定法,与实际问题的模型有关。

    2.使用“regress”

    线性的不行,用二次函数。

    format long

    A=[...

    0.2 13.6 8503 251 27.4 7.7 9.9 3658 314 13.9 5.8 10.8 7307 433 26.8 7.70 9.70 6717 257 23.8 7.5 9.8 7609 280 21.7 5.6 11.3 4271 533 14.6 6.2 7.6 52169 48 225 3.23 9.16 16516 80 44.1 0.33 11.3 17366 85 54.1 0.14 9.5 14245 91 56.6 5.5 9.7 18184 3 31.6 2.3 8.9 33612 250 114.9 3.3 4.6 73927 5 166 1.9 9.7 32175 150 107.5 0.6 9.9 33088 242 142.3 0.22 11.7 18620 567 60.4 1.88 11.76 27885 267 71.6 2.78 10.9 21780 76 58.7]

    x=A(:,1:4),Y=A(:,5)

    x11=x(:,1).*x(:,1);

    x12=x(:,1).*x(:,2);

    x13=x(:,1).*x(:,3);

    x14=x(:,1).*x(:,4);

    x22=x(:,2).*x(:,2);

    x23=x(:,2).*x(:,3);

    x24=x(:,2).*x(:,4);

    x33=x(:,3).*x(:,3);

    x34=x(:,3).*x(:,4);

    x44=x(:,4).*x(:,4);

    X=[x(:,:),x11,x12,x13,x14,x22,x23,x24,x33,x34,x44]

    [B,BINT,R] = REGRESS(Y,[ones(length(Y),1),X]) 结果:

    B =

    1.0e+003 *

    -1.426098928217992

    -0.004076772421011

    0.255534919787513

    0.000012942581436

    0.000845938681439

    0.000607150442496

    -0.000574488595437

    0.000000405451807

    -0.000042626483419

    -0.011775830339062

    -0.000000876232149

    0.000008150156703

    -0.000000000013441

    -0.000000013991054

    -0.000000969496753

    R =

    3.122573422039807

    0.447341267999400

    -7.343326306615449

    2.107836742251767

    -6.239492394117182

    9.044235126157025

    2.238791755625499

    4.285551199892858

    -2.231536057549363

    -1.979307925154075

    3.503835830046878

    1.414933242530537

    -1.426757776398972

    -12.052007973319576

    14.597045597468522

    -5.024612350970848

    -1.747668123505179

    -2.717435276394376

    B就是系数,R就是预测值与实际值的差值。

    3. 使用“lsqcurvefit”

    clear

    clc

    x=[40 50 60 70 80 90 100 110 120 135 150];

    y=[0.0096 0.0145 0.0194 0.0348 0.0501 0.0751 0.1000 0.1497 0.1993 0.2496 0.2999];

    z=[0.2400 0.2865 0.3330 0.3600 0.3870 0.4010 0.4150 0.4390 0.4630 0.4875 0.5120];

    X0=[1 1 1 1 1 1];

    %只要这样写就可以了

    f=@(p,x)( p(1) + p(2)*x(1,:) +

    p(3)*x(2,:) + p(4)*x(1,:).^2 + p(5)*x(1,:).*x(2,:) +

    p(6)*x(2,:).^2);

    p=lsqcurvefit(f,X0,[x;y],z)

    展开全文
  • 使用nlinfit、fminsearch在matlab中实现基于最小二乘法的非线性参数拟合(整理自网上资源)最小二乘法在曲线拟合中比较普遍。拟合的模型主要有1.直线型2.多项式型3.分数函数型4.指数函数型5.对数线性型6.高斯函数型......

    使用nlinfit、fminsearch在matlab中实现基于最小二乘法的

    非线性参数拟合

    (整理自网上资源)

    最小二乘法在曲线拟合中比较普遍。拟合的模型主要有

    1.直线型

    2.多项式型

    3.分数函数型

    4.指数函数型

    5.对数线性型

    6.高斯函数型

    ......

    一般对于LS问题,通常利用反斜杠运算“\”、fminsearch或优化工具箱提供的极小化函数求解。在Matlab中,曲线拟合工具箱也提供了曲线拟合的图形界面操作。在命令提示符后键入:cftool,即可根据数据,选择适当的拟合模型。

    “\”命令

    1.假设要拟合的多项式是:y=a+b*x+c*x^

    2.首先建立设计矩阵X:

    X=[ones(size(x)) x x^2];

    执行:

    para=X\y

    para中包含了三个参数:para(1)=a;para(2)=b;para(3)=c;

    这种方法对于系数是线性的模型也适应。

    2.假设要拟合:y=a+b*exp(x)+cx*exp(x^2)

    设计矩阵X为

    X=[ones(size(x)) exp(x) x.*exp(x.^2)];

    para=X\y

    3.多重回归(乘积回归)

    设要拟合:y=a+b*x+c*t,其中x和t是预测变量,y是响应变量。设计矩阵为X=[ones(size(x)) x t] %注意x,t大小相等!

    para=X\y

    polyfit函数

    polyfit函数不需要输入设计矩阵,在参数估计中,polyfit会根据输入的数据生成设计矩阵。

    1.假设要拟合的多项式是:y=a+b*x+c*x^2

    p=polyfit(x,y,2)

    然后可以使用polyval在t处预测:

    y_hat=polyval(p,t)

    polyfit函数可以给出置信区间。

    [p S]=polyfit(x,y,2) %S中包含了标准差

    [y_fit,delta] = polyval(p,t,S) %按照拟合模型在t处预测

    在每个t处的95%CI为:(y_fit-1.96*delta, y_fit+1.96*delta)

    展开全文
  • Matlab(多元)线性回归、非线性回归、多项式拟合、(自定义函数)曲线拟合-代码示例
  • 建议用1stOpt,使用简单,不用猜初值,拟合效果非常强。下面是由1stOpt得出的结果,应该是唯一最优解。如果用其它软件,估计花费时间不少还不一定能得到最优解。均方差(RMSE): 2.88773637431816E-6残差平方和(RSS): ...
  • matlab 万能实用的非线性曲线拟合方法

    万次阅读 多人点赞 2017-05-05 09:01:15
    在科学计算和工程应用中,经常会遇到需要拟合一系列的离散数据,最近找了很多相关的文章方法,在这里进行总结一下其中最完整、几乎能解决所有参数拟合的方法 第一步:得到散点数据 根据你的实际问题得到一系列的...
  • function [beta_hat,Y_hat,stats]=regress(X,Y,alpha) % 多元线性回归(Y=Xβ+ε)MATLAB代码 % % 参数说明 % X:自变量矩阵,列为自变量,行为观测值 % Y:应变量矩阵,同X % alpha:置信度,[0 1]之间的任意数据 % ...
  • MATLAB 实现BP神经网络的非线性系统建模-非线性函数拟合
  • matlab多元非线性回归

    2014-09-22 13:41:39
    matlab多元非线性回归
  • 如何用matlab进行多元非线性拟合

    千次阅读 2021-04-20 10:48:20
    % 使用最小二乘拟合: % opt指定拟合选项(注意查看命令窗口提示的优化终止条件,如对结果不满意考虑适当修改) % b0为初值(要慎重选择,不同初值得到的结果可能不同) opt = optimset('MaxFunEvals',50000,'MaxIter...
  • 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]'...
  • 47.67 1.83 31.17 252.08 114.75 1410.83 0 45.14 1.5 25.29 318.57 79.43 1446.71 1 41.5 1.55 23.95 278 188.45 1468.45 2 ... 非线性拟合我总是拟合不出来 ,matlab刚刚入门,渣渣一个 请大神指导
  • 1.线性回归: regress 顾名思义,就是一元多元方程的的拟合,y=c1*x1+c2*x2....或者y=c1*x1^2+c2*x2^2+c3*x1*x2....等等形式 [b,BINT] = regress(Y,X) [b,BINT,R] = regress(Y,X) [b,BINT,R,RINT] = regress(Y,X) ...
  • 不过楼主的问题似乎有过拟合现象导致目标函数值一样但参数组值不唯一。下面是用1stOpt计算得到的几组结果:1:均方差(RMSE): 0.00258526969626227残差平方和(SSE): 6.01525746217079E-5相关系数(R): 0....
  • 主要用于数学建模(Matlab)的学习,下载下来换成你的数据就可以用了。
  • 在科学计算和工程应用中,经常会遇到需要拟合一系列的离散数据,最近找了很多相关的文章方法,在这里进行总结一下其中最完整、几乎能解决所有离散参数非线性拟合的方法 1 得到散点数据 根据你的实际问题得到一系列的...
  • 包括指数、对数、幂指数、双曲线、Logistic、多项式、Gamma等模型的非线性拟合,每行代码均有中文注释便于理解
  • MATLAB实例:非线性曲线拟合用最小二乘法拟合非线性曲线,给出两种方法:(1)指定非线性函数,(2)用傅里叶函数拟合曲线1. MATLAB程序clearclcxdata=[0.1732;0.1775;0.1819;0.1862;0.1905;0.1949;0.1992;0.2035;0.2079...
  • 多元非线性拟合是非常困难的事情,我选用matlab进行拟合,以下为我找到的三种方法以及具体数据。1.使用“nlinfit”x1=1150,1000,900,850,700,625,550,475,3350,3500,5900,5800,5700,4600,4625,4725,11...
  • Matlab一元非线性回归分析

    万次阅读 2018-12-27 21:11:11
    Matlab一元非线性回归分析的分析步骤与一元线性回归分析的步骤类似: 大体分为以下几步: (1)绘制x,y的散点图,分析散点图的走势; (2)根据散点图的走势,确定回归方程的具体形式,特别是参数个数的设定和...
  • matlab多元与非线性回归拟合问题regressnlinfit 回归(拟合)自己的总结(20100728) 1:学三条命令:polyfit(x,y,n)---拟合成一元幂函数(一元多次) regress(y,x)----可以多元, nlinfit(x,y,’fun’,beta0) (可用于...
  • matlab多元非线性回归及显著性分析给各位高手:小弟有一些数据需要回归分析(非线性)及显著性检验(回归模型,次要项,误差及失拟项纯误差,F值和P值),求大侠帮助,给出程序,不胜感激。模型:DA TA=... %DA TA前三列...
  • 非线性函数拟合

    2018-04-20 16:05:58
    神经网络非线性函数拟合神经网络非线性函数拟合神经网络非线性函数拟合神经网络非线性函数拟合
  • 函数为y=b1*x1^b2*x2^b3*x3^b4*x4^b5,拟合代码为:data=[x1 x2 x3 x4 y0.34 0.016663232 58.83032941 7.20810443 8.7592953750.34 0.066652926 13.95...

空空如也

空空如也

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

matlab非线性回归拟合

matlab 订阅