非线性/线性函数拟合 Matlab nlinfit

定义列表

定义列表语法1:
[beta,r,J]=nlinfit(x,y,’model’,beta0)
beta: 估计出的回归系数
r:残差
J:Jacobi矩阵
x:n×m矩阵,对一元非线性回归,x为n维列向量
y:n维列向量
model:事先用M文件定义的非线性函数
beta0:回归系数的初始值

定义列表语法2:
[Y, Delta]=nlpredci(‘model’,x,beta,r,J)
用于求取x对应的预测值Y,以及在alpha下的置信区间Delta。

代码块

nlinfit 是一种基于 least squares estimation算法,用于做多元或一元非线性拟合的matlab函数

clear  
clc  
data = [5   5   5   5   5   5   5   10  10  10  10  10  10  10  15  15  15  15  15  15  15  20  20  20  20  20  20  20  25  25  25  25  25  25  25  30  30  30  30  30  30  30  
144 176 208 240 272 320 512 144 176 208 240 272 320 512 144 176 208 240 272 320 512 144 176 208 240 272 320 512 144 176 208 240 272 320 512 144 176 208 240 272 320 512  
135.346 138.193 147.369 137.871 140.782 143.022 146.985 179.075 230.787 236.99  240.18  232.734 248.473 249.812 218.834 242.56  276.038 282.54  293.582 320.17  279.204 215.68  286.505 313.645 334.782 325.526 332.145 337.282 231.54  261.884 324.214 343.436 367.167 372.446 340.181 259.584 302.132 313.351 347.63  340.478 414.03  443.249  ]';
X=data(:,1:2); 
y=data(:,3); 

b0=[-70 -0.35 16 -0.004 1 0.05]'; %设定beta的初始值
[beta,r,J]=nlinfit(X,y,'dgytest',b0);
[Y, Delta]=nlpredci('dgytest',X,beta,r,J);
SSE=sum((Y-y).^2);
plot(Y,y,'bo')

% 使用M文件建立函数模型
function ypre=dgytest(beta,X)
a=beta(1);
b=beta(2);
c=beta(3);
d=beta(4);
e=beta(5);
f=beta(6);
x1=ones(size(X,1),1);
x2=X(:,1).^2;
x3=X(:,1);
x4=X(:,2).^2;
x5=X(:,2);
x6=X(:,1).*X(:,2);
ypre=a*x1+b*x2+c*x3+d*x4+e*x5+f*x6;
  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值