用MATLAB求解线性方程组解的方差阵

来源:百度知道 编辑:UC知道 时间:2024/05/22 14:07:21
用MATLAB求解线性方程组
有一个线性方程组A*x=y,怎样求得x的最优解,且求出x的方差-协方差阵。对我来说,最重要的是求x的方差-协方差阵。
A=[
1,0,0,0,0,0,0,0,0,0,0;
1,0.0688024267894235,0.137278772087656,-0.0023696946925249,-0.00946754786422799,0.310000000000002,14.3561000000001,498.630691000004,15394.8514072101,0.04,111.910378824834;
1,0.120208044876895,0.238672765962013,-0.00725127753954047,-0.028899948106251,3,147,5409,177135,0.07,112.46999461277;
1,0.18822670980833,0.369724542824613,-0.0178743941253081,-0.0708585885705389,7.41999999999999,396.376399999999,15982.950088,576480.481676959,0.11,112.921979736513;
1,0.304921224600888,0.580800273359092,-0.0476224242518649,-0.18595390642421,10.85,616.8225,26619.091625,1033068.20150625,0.18,113.41445622161;
1,0.44822934166241,0.801361088070285,-0.106081403441632,-0.401819085454235,13.05,770.602500000001,34683.670125,1409125.65800625,0.27,113.819921329719;
1,0.523415607277432,0.891981346366046,-0.147922478844561,-0.547927795883206,14.59,884.0081,40947.974479,17

本人使用Python编程求最小二乘问题解得以下结果
x=[ -3.52600181e-06, 1.05613278e+02, -6.32534301e+01,
2.13574439e+02, -1.12594750e+01, 2.46124268e+01,
-1.19712190e+00, 2.49220346e-02, -1.87255444e-04,
8.69844609e+01, -2.06283690e-02],
残差=[ 0.02367883],
A的秩11,
A的奇异值=[ 5.50618827e+06, 4.26972794e+03, 1.30077642e+02,
5.82579037e+00, 1.14228947e+00, 9.99923434e-01,
1.36385035e-01, 2.65709448e-02, 4.01400241e-03,
1.77324993e-03, 6.67012472e-05]
希望可以帮你下
在MATLAB中编程也ok

>> x=A\y

x =

-0.0000
105.6135
-63.2534
213.5743
-11.2594
24.6124
-1.1971
0.0249
-0.0002
86.9841
-0.0206

>> c=cov(x)

c =

5.7608e+003

公式cov(x), 计算一维数组数据x的方差。
公式cov(X), 计算二维数组数据X的协方差阵。
自己试试看吧!