EE263 Homework 3

课程主页:https://see.stanford.edu/Course/EE263

这次回顾EE263作业3。

2.17

(a)因为

所以

因此

(b)因为

所以

因此

(c)由$A^T=A$和上一题可得

3.13

对于行满秩矩阵$A\in \mathbb R^{m\times n}$,如果$A^T $的$QR$分解为

其中$R​$可逆,取

那么

(a)此时只要计算

的右逆$B_1$,然后对$B_1$的第二行插入$0$即可,注意$A_1$依然行满秩,所以仍然存在右逆,编写程序后得到:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import numpy as np

A = np.array([
[-1, 0, 0, -1, 1],
[0, 1, 1, 0, 0],
[1, 0, 0, 1, 0]
])
n, m = A.shape

#### (a)
A1 = np.c_[A[:, 0], A[:, 2:]]
#QR分解
Q, R = np.linalg.qr(A1.T)
#计算右逆
B1 = Q.dot(np.linalg.inv(R.T))
#计算最终结果
B = np.r_[B1[0, :], np.zeros(n)].reshape(2, n)
B = np.r_[B, B1[1:, :]]
print(B)
#验证结果
print(A.dot(B))
1
2
3
4
5
6
7
8
[[9.72785220e-18 0.00000000e+00 5.00000000e-01]
[0.00000000e+00 0.00000000e+00 0.00000000e+00]
[0.00000000e+00 1.00000000e+00 0.00000000e+00]
[1.91026513e-16 0.00000000e+00 5.00000000e-01]
[1.00000000e+00 0.00000000e+00 1.00000000e+00]]
[[ 1.00000000e+00 0.00000000e+00 -2.22044605e-16]
[ 0.00000000e+00 1.00000000e+00 0.00000000e+00]
[ 2.00754365e-16 0.00000000e+00 1.00000000e+00]]

不考虑浮点数产生的误差,我们有

(b)不可能,原因如下:

由条件可得

但是因为

所以

这就产生了矛盾。

(c)不可能,如果$B$的第三列为$0$,那么$AB$的第三列为$0$,与条件矛盾。

(d)记

注意到

所以

注意到此时有

所以只要考虑

求出满足条件的$B$,使得

即可。又因为$A_1$的$2,3$列为$0$,所以只要考虑

求$B_2​$,使得

求解该方程组得到

最终的结果为

最后验证结果:

1
2
3
4
5
6
7
8
9
#### (d)
B = np.array([
[0, 0, 0.5],
[0, 0.5, 0],
[0, 0.5, 0],
[0, 0, 0.5],
[1, 0, 1]
])
print(A.dot(B))
1
2
3
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]

(e)此时

那么

所以

这就产生了矛盾。

(f)此时

那么

所以可以取

验证结果:

1
2
3
4
5
6
7
8
9
#### (f)
B = np.array([
[0, 0, 0],
[0, 0, 0],
[0, 1, 0],
[0, 0, 1],
[1, 0, 1]
])
print(A.dot(B))
1
2
3
[[1 0 0]
[0 1 0]
[0 0 1]]

4.1

将$U$扩张为正交矩阵:

那么

注意到

因此

所以

当且仅当

时等号成立,由$x​$的任意性可得必然有$k=n​$。

4.2

(a)

(b)

(c)由正交矩阵的特点可得

所以不妨设

又因为

所以

所以

如果

那么

此时为旋转矩阵。

如果

那么

此时为反射矩阵。

4.3

(a)

(b)

(c)

(d)$\forall z_0 =Pz \in \mathcal{R}(P)​$,那么

当且仅当$z=x​$时等号成立。

5.1

因为

所以

由上一题可知$P​$为对称矩阵,因此

6.9

1
2
3
4
5
6
7
8
9
10
11
12
13
14
A = zeros(N, n_pixels^2);
for i = 1 : N
data = line_pixel_length(lines_d(i),lines_theta(i),n_pixels);
data = data(:);
A(i, :) = data;
end

% v = inv(A' * A) * A' * y;
v = A \ y;
X = reshape(v, n_pixels, n_pixels);
figure(1) % display the original image
colormap gray
imagesc(X)
axis image

补充题

1

1
2
3
4
5
6
7
8
9
10
11
12
13
N = 40;
x =[0.0197; 0.0305; 0.0370; 0.1158; 0.2778; 0.3525; 0.3974; 0.3976; 0.4053; 0.4055; 0.4623; 0.5444; 0.7057; 0.8114; 0.8205; 0.8373; 0.8894; 0.8902; 0.9129; 0.9320; 0.9720; 1.0503; 1.2076; 1.2137; 1.2309; 1.3443; 1.4764; 1.4936; 1.5242; 1.5839; 1.6263; 1.6428; 1.6924; 1.7826; 1.7873; 1.8338; 1.8436; 1.8636; 1.8709; 1.9003];
y =[-0.0339; -0.1022; -0.0165; -0.0532; -0.2022; -0.1149; -0.1310; -0.1924; -0.1768; -0.1845; -0.2210; -0.1994; -0.3058; -0.1916; -0.3097; -0.3011; -0.2657; -0.3162; -0.3295; -0.3710; -0.3247; -0.4274; -0.3756; -0.3323; -0.4545; -0.4242; -0.4710; -0.6230; -0.6332; -0.5694; -0.6458; -0.6025; -0.6313; -0.7051; -0.6799; -0.7489; -0.7310; -0.8675; -0.8146; -0.8469];

% (a)
x1 = [x, ones(N, 1)];
% A1 = inv(x1' * x1) * x1' * y;
A1 = x1 \ y

% (b)
x2 = [x.^3, x.^2, x, ones(N, 1)];
% A3 = inv(x2' * x2) * x2' * y;
A2 = x2 \ y

输出为

1
2
3
4
5
6
7
8
A1 =
-0.3881
0.0014
A2 =
-0.1476
0.3045
-0.4632
-0.0320

2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
N = 1000;
R1 = zeros(N, 1);
R2 = zeros(N, 1);

for i = 1:N
% (a)生成数据
A = randn(50, 20);
v = 0.1 * randn(50, 1);
x = randn(20, 1);
y = A * x + v;

% (b)最小二乘
xls = A \ y;
r1 = norm(xls - x) / norm(x);

% (c)
y_trunc = y(1:20, :);
A_trunc = A(1:20, :);
xjem = A_trunc \ y_trunc;
r2 = norm(xjem - x) / norm(x);

R1(i) = r1;
R2(i) = r2;
end

mean(R1)
mean(R2)
1
2
3
4
ans =
0.0189
ans =
0.8128

本文标题:EE263 Homework 3

文章作者:Doraemonzzz

发布时间:2019年05月26日 - 14:08:00

最后更新:2019年05月26日 - 14:08:33

原始链接:http://doraemonzzz.com/2019/05/26/EE263 Homework 3/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。