解决宽敞的线性系统

这是关于线性系统方程少于变量;A * x =在哪里——- - - - - -n矩阵一个有更少的行,列,所以呢m < n。我一直这样的系统脂肪,但这是不尊重。所以我咨询了韦氏词典,发现宽敞的

这也是我的第一个帖子使用现场编辑™。这是一个一个链接.mlx文件。

内容

宽敞的线性系统

宽敞的线性系统用更少的行比列没有独特的解决方案。万博 尤文图斯很难计算的东西如果你不知道它是什么你想计算。你可以确定解决方案通过添加一个附加条件:最小化其欧几里得或\ ell_2范数美元。这是Moore-Penrose解决方案。它是独一无二的,有很多其他的属性。

但近年来许多情况下不同的条件是可取的:解决方案的最小非零组件的数量。这种解决方案稀疏的。实际上减少非零组件的数量是很困难的。(它是np难。)然而,MATLAB反斜杠符产生一个解决方案非零组件。这通常是最小值。

生成的例子

选择尺寸。

m = 3 n = 10
m = 3 n = 10
断言(m < n)格式

用随机生成一个m×n的矩阵一位数正面和负面的整数条目。每次执行这个脚本,一个不同的一个被创建。

一个=兰迪(18,m, n) - 9
2 = 0 7 8 2 4 6 0 0 2 3 7 6 7 3 3 9 3 1 4 1 3 8 2 7 6 1 8 5

生成一个随机的右手边与相同数量的行。

b =兰迪(18米,1)- 9所示
b = 5 0 6

保存的皇家的副本。

b_copy = b;

反斜杠

使用反斜杠来计算许多可能的解决方案之一* x = b。万博 尤文图斯

x = A \ b
x = 0 0 0 0 0 0 -0.5195 0.2812 -0.1953 0

这个x是稀疏的;只有米非零组件。

x是如何计算的?计算列旋转的QR分解。这是一个* P = * R正交Q, R梯形,排列P。

(Q, R, P) = qr (A)
Q = -0.6247 -0.4341 -0.6491 0.4685 -0.8734 0.1331 -0.6247 -0.2209 0.7490 R = 1到7列12.8062 1.7179 3.5920 -1.5617 3.2796 8.2772 6.0908 -9.3834 4.3876 -2.6305 -6.5398 0.6628 6.5502 0 0 -6.3911 3.2621 -1.8641 -2.2469 -0.9986列8到10 -0.4685 -9.5266 -3.5920 -3.7092 2.4121 -0.2313 -0.1498 -3.2289 3.6117 P = 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

只保留第一个m R的列。

R = R (:, 1: m)
R = -6.3911 12.8062 1.7179 3.5920 -9.3834 - 4.3876 0 0

应用右手边问。

b =问' * b
b = -6.8716 -3.4960 1.2483

替代解决了广场,三角系统R * x = b。

x = R \ b
x = -0.5195 0.2812 -0.1953

策略上的一些零x,匹配的列数删除从R。

x (m + 1: n) = 0
x = -0.5195 0.2812 -0.1953 0 0 0 0 0 0 0

撤销的排列。

x = P * x
x = 0 0 0 0 0 0 -0.5195 0.2812 -0.1953 0

伪逆

恢复的皇家。

b = b_copy;

相比之下,最低2-norm解决方案可以获得与Moore-Penrose伪逆。这通常是完全完整;没有它的组件是零。

y = pinv b (A) *
y = 0.0644 0.0655 0.1261 -0.2161 0.0475 -0.1481 -0.2034 0.1164 -0.1232 0.0612

x和y都是原系统的解决方案。万博 尤文图斯

Ax =一个* * x Ay = y
Ax = 5.0000 0.0000 - 6.0000 -0.0000 - 6.0000 = 5.0000

然而规范(y, 2)小于规范(x, 2)。

normyx =(规范(y)规范(x))
normyx = 0.4112 - 0.6222

圣言会

计算y没有计算伪逆,使用圣言。

[U, V] =圣言(A)
U = -0.5601 0.2006 -0.8038 0.3872 0.9211 -0.0399 -0.7324 0.3336 0.5936 S = 1到7列20.2128 0 0 0 0 0 0 0 15.1459 8.3091 0 0 0 0 0 0 0 0 0 0 0列8到10 0 0 0 0 0 0 0 0 0 V = 1到7列-0.1066 0.2097 0.2761 0.5246 0.0327 0.4104 0.4231 -0.0342 0.2310 -0.1365 -0.2150 -0.5533 -0.1705 0.3003 -0.4368 -0.2670 -0.4292 0.4955 -0.0865 0.1040 0.1695 0.6265 0.0828 0.1735 0.5967 -0.1499 -0.2918 -0.1873 0.1511 0.4082 -0.3700 -0.0089 0.7338 -0.0647 0.1593 0.4219 -0.0247 -0.1275 -0.1803 -0.1248 0.8221 -0.0885 0.3262 -0.3940 0.1662 -0.1806 0.0969 -0.1350 0.7663 0.0530 0.6091 -0.2620 -0.0174 -0.2910 -0.0377 0.2134 0.2324 -0.3586 -0.5571 0.1057 -0.0492 -0.0517 -0.0236 -0.2003 0.0493 0.3620 -0.0193 0.1110 0.0645 -0.0210列8到10 -0.1425 0.4068 -0.2429 -0.6536 0.0165 0.1666 0.0216 -0.4643 0.2127 -0.0817 -0.1943 0.1656 -0.2858 -0.0944 0.1226 -0.0609 -0.2152 0.1524 0.1853 -0.1585 0.0614 0.6475 0.0133 0.0785 0.0450 0.6800 0.1605 0.0664 0.1951 0.8756

然后,用适当的括号,并涉及一个对角矩阵的反斜杠,找到最低标准的解决方案是一行程序。

y = V *(年代\ (U * b))
y = 0.0644 0.0655 0.1261 -0.2161 0.0475 -0.1481 -0.2034 0.1164 -0.1232 0.0612

问题

有很多事情我不知道宽敞的系统。

1。

有绑定规范(x) /规范(y)吗?

2。

的条件数一个可以定义为对任何标准

气孔导度(A) = max(规范(A * x) /规范(x)) /分钟(规范(A * x) /规范(x))

我们知道2-norm这是奇异值的比值。1-norm或inf-norm呢?我们如何计算这个?

3所示。

可以证明什么剩余的错误解决方案用反斜杠计算吗?我怀疑剩余很小,但什么是错误的解决方案并不是唯一的什么时候?

4所示。

这个分布是什么?

kmax = 10000;kappa = 0 (kmax, 1);k = 1: kmax =兰迪(18,m, n) - 9;k (k) =电导率(一个);结束直方图(κ)标题(的电导率(A)”)ax =轴;文本(0.7 * ax (2), 0.8 * ax (4), sprintf (' m = % 2 d n = % 2 d ',m, n))




发表与MATLAB®R2021a

|

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。