如何对最小二乘法得到的结果进行约束,确保其结果都大于0呢?
Show older comments
clear
clc
%x1=[0.082,0.076,0.070,0.070,0.063,0.060,0.054,0.052,0.042]';%物体4
x1=[0.1477,0.1426,0.1331]';%物体1
x2=[0.021,0.019,0.017]';%物体2
x3=[0.042,0.037,0.041]';%物体3
y=[6.54,5.5,5.24]';%重量
%x5=[965871 99552 100065 100528 100943 100978 101032 101041 100718]';%15-64岁人口(万人)
%x6=[7.07 7.09 7.08 7.06 7.04 7.07 7.12 7.13 7.13]';%人口死亡率(%)
X=[ones(size(y)) x1 x2 x3];%%开始分析
[b,bint,r,rint,stats]=regress(y,X,0.0005);%b回归系数,bint回归系数的区间估计,r残差,rint置信区间,stats检验回归模型的统计量
%stats检验回归模型的统计量。有4个数值:判定系数R^2,F统计量观测值,检验p的值,误差方差的估计
%ifp小于0.001,则拟合有效
hold on;
y=b(1)+b(2)*x1+b(3)*x2+b(4)*x3%+b(5)*x4; %代入已经求得的参数,拟合函数式
plot(y,'kx-');
b1=b(1)
b2=b(2)
b3=b(3)
b4=b(4)
%b5=b(5)
Answers (0)
Categories
Find more on Linear and Nonlinear Regression in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!