最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

MATLAB 非线性 回归 拟合 nlintool

来源:动视网 责编:小OO 时间:2025-10-03 00:43:14
文档

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,alph
推荐度:
导读非线性回归非线性回归可用命令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,alph
非线性回归

非线性回归可用命令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  = @(beta,x) (beta(4)*x(:,2) - x(:,3)/beta(5))./(1+beta(1)*x(:,1)+beta(2)*x(:,2) + beta(3)*x(:,3));

x0=[1         8.55        470       300        10

    2         3.79        285       80         10

    3         4.82        470       300        120

    4         0.02        470       80         120

    5         2.75        470       80         10

    6         14.39       100       190        10

    7         2.54        100       80         65

    8         4.35        470       190        65

    9         13.00       100       300        54

    10        8.50        100       300        120

    11        0.05        100       80         120

    12        11.32       285       300        10

    13        3.12        285       190        120];

x=x0(:,3:5);

y=x0(:,2);

beta=[0.1,0.05,0.02,1,2]; %回归系数的初值  beta =  [0.1000 2.0000 1.0000 0.0500 0.0200];

[betahat,f,J]=nlinfit(x,y,yhat,beta);   % f,j是下面命令用的信息

betaci=nlparci(betahat,f,J);      

betaa=[betahat',betaci]        %回归系数及其置信区间   betaa=[betahat',betaci] betaa=[betahat,betaci]

[yhat1,delta]=nlpredci(yhat,x,betahat,f,J);      %   y的预测值及其置信区间半径,置信区间为yhat1 ±delta。

yy=[y,yhat1,delta]

用命令nlintool可看到画面。    [beta,r,J,COVB,mse] = nlinfit(X,y,fun,beta0)

nlintool(x,y,yhat1,beta)

[betahat,f,J,COVB,mse] = nlinfit(x,y,yhat,beta)

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

文档

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,alph
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top