CS205A HW7

课程主页:https://graphics.stanford.edu/courses/cs205a-13-fall/schedule.html

这次回顾作业7。

Problem 1

(a)$E_1$测量$f$和$f_0$的误差,$E_2$测量$f$的光滑性。

(b)该式表示关于$g$的相对变化率。

(c)

(d)由(c)可得

所以可以近似认为

(e)这部分感觉有点问题,这里略过。

Problem 2

假设$a_i$存在数组$a$中,那么利用如下算法即可在$O(k)$时间内计算出$f(x)$:

1
2
3
4
5
res = 0
s = 1
for i in a:
res += i * s
s *= x

Problem 3

(a)设

那么

因为

所以

解得

因此

(b)对$g(x)​$积分可得

(c)为方便叙述,记

那么$f​$在$c​$处的泰勒展开为

对上式积分可得

注意

所以(2)可以化为

所以精度为$3​$次。

(d)假设

那么复合求积公式为

Problem 4

利用范德蒙行列式计算结果:

对应代码如下:

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
28
29
30
import numpy as np
import matplotlib.pyplot as plt

def Vandermon(X, k):
#维度
n = X.shape[0]
#计算结果
res = np.ones(n).reshape(-1, 1)
x = np.copy(X)
for i in range(k):
res = np.c_[res, x]
x *= X

return res

x1 = np.linspace(-1, 1, 500).reshape(-1, 1)

K = [3, 5, 7, 9, 11]
for k in K:
X = np.linspace(-1, 1, k).reshape(-1, 1)
y = np.abs(X)
Van = Vandermon(X, k-1)
#计算系数
a = np.linalg.solve(Van, y)
#计算结果
y1 = Vandermon(x1, k-1).dot(a)
plt.plot(x1, y1, label="degree={}".format(k))

plt.legend()
plt.show()

图像结果如下:

不难看出,随着次数增加,曲线变化幅度越来越大。

本文标题:CS205A HW7

文章作者:Doraemonzzz

发布时间:2019年05月11日 - 11:17:00

最后更新:2019年05月11日 - 11:17:12

原始链接:http://doraemonzzz.com/2019/05/11/CS205A HW7/

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