如何对最小二乘法得到​的结果进行约束,确保​其结果都大于0呢?

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

Asked:

on 6 Apr 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!