CS205A HW8

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

这次回顾作业8。

Problem 1

(a)代码如下:

1
2
3
4
5
6
7
8
9
10
M = zeros(nParticles);
[m, n] = size(edges);
for i = 1: m
x = edges(i, 1);
y = edges(i, 2);
M(x, x) = M(x, x) - 1;
M(x, y) = M(x, y) + 1;
M(y, x) = M(y, x) + 1;
M(y, y) = M(y, y) - 1;
end

(b)令

那么方程为

所以代码如下:

1
2
3
4
[m, n] = size(secondOrderMatrix);
matrix = zeros(2 * m);
matrix(1: m, m+1: 2*m) = eye(m);
matrix(m+1: 2*m, 1: m) = secondOrderMatrix;

(c)

(i)前向欧拉

代码如下

1
x = x + dt * firstOrder * x;

(ii)后向欧拉

代码如下

1
x = inv(eye(2 * n) - dt * firstOrder) * x;

(iii)梯形法

代码如下

1
x = inv(eye(2 * n) - dt * firstOrder / 2) * (eye(2 * n) + dt * firstOrder / 2) * x;

(d)leapfrog

代码如下

1
2
positions = positions + dt * velocities;
velocities = velocities + dt * force * positions;

Problem 2

(a)求导可得

所以$E(t)$关于$t$是常数。

(b)

因为

以及

所以

(c)因为

所以

(d)

本文标题:CS205A HW8

文章作者:Doraemonzzz

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

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

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

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