0%

记录

记录

1.路由器与手机热点或手机USB共享网络的区别

问题描述:
连接TeamViewer时,当电脑用家里的路由器连接wifi时,无法连上远程电脑。
此时如果手机打开热点,或者手机连上家里的wifi然后将手机连上电脑调成USB共享网络。就能连上远端电脑。
在使用git clone时也出现了类似的状况,用git clone无法下载,出现了错误“port:443“。即使将 .gitconfig 中proxy的IP地址改成代理端口,还是需要手机开热点的情况才能下载。但是,手机用USB共享网络就不行了。
手机USB与手机热点的区别究竟是什么?

手机端口的问题吗

2.类的指针作为参数传递进函数,无法访问到类中的数据

3.Python中类作为函数的参数,作为类元素的测试

问题描述:
Python中的函数能不能用类做参数,类中能不能用其他类做类成员。

做这样一个测试:

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
class A:
def __init__(self,a):
self.x=a
def add(self):
self.x=self.x+1

class B:
def __init__(self,a):
self.at=a
def add(self):
self.at.x+=2

def prints(a):
print(a.x)

a=A(2)
prints(a)
b=B(a)

b.add()
prints(a)
prints(b.at)

a.add()
prints(a)
prints(b.at)

输出的结果为:

从测试结果可以知道,类作为参数传递时,相当于是引用。作为类成员时,也是引用。因此面向对象编程会很方便。

4.Gibbs 现象

问题描述:
做傅里叶变换时,非连续的函数最终得到的是理论上是连续的傅里叶函数,但是计算机一离散就会出问题,会有小波纹。

查资料,写code

5.隐式与显式的区别,条件数与收敛速度

问题描述:
一直没有真正理解显式与隐式的区别,需要好好整理理解下

做一个demo学习,一维信号传递,二维图像,旋转加平移。

6.珠链喷泉(Chain fountain)模拟

问题描述:
看能不能用简单的Mass-Spring模拟出来

模拟方案如下:

数据结构:

将弹簧质点存在链表里,使用链表的原因是为了方便对整条链进行操作。

  • 算法

S1. 遍历弹簧质点,计算每个质点受到其他质点作用的力$ f^{spring}_i $,同时给每个质点添加重力$ f^{gravity}_i $。

S2. 对所有质点,计算其距离杯壁的距离$d$,当距离小于厚度$t$时,对质点施加一个指向法向的弹性力。

S3. 更新质点的坐标。进行碰撞处理。对于一直落在地面的粒子,进行重复利用的操作。

  • 具体说明:

S1:没有什么具体要注意的。

S2:这一步涉及到质点与多边形的交互问题。处理的方法是,根据多边形的距离场,定义一个排斥项$F=k(d-t)$。这一排斥力项,一方面可以满足能量守恒、动量守恒。另一方面,可以避免很多复杂的处理。

之前一段时间,我在尝试做PolyBridge桥面要考虑桥面与小球的交互时,想通过多边形引入冲量,然后计算各种速度等,但是从实践的结果来看,这种处理方法很不好,小球根本无法稳定的停在桥面上。

从结果来看,这样简单的处理可以获得很好的结果。所以,以后遇到物体与多边形交互的情形,可以用类似的方法处理。

顺便一提的是,过程中也遇到一个问题,如果链的劲度系数不够的话,会出现链条从多边形边缘穿过的现象。这也符合物理实际,真实的链劲度系数应该非常地大。

这种处理方式应该叫penalty-based system[1],这种处理方式的问题在于力太强不稳定,力太弱会出现penetrate的现象。

还有一种方式是projection collision reactions[1],把粒子从碰撞体中拔出来。

S3:这一步有一个注意点,Verlet Integration,在分子动力学模拟中非常常用,Verlet Integration可以通过设置粒子位置来完成碰撞,而带有速度项的更新会引入一些碰撞处理的麻烦,但是,这样一来,物理的真实性就不一定可行了。这里记录它的基本思想。

从式子中可以看到,Verlet积分是local四阶精度,global二阶精度。

除此以外,还有velocity 的Verlet积分,它的形式是:

这种更新形式与Leapfrog方法相似。值得注意的是,时间精度提高一倍,但是加速度的计算开销没有发生变化。

这种方法有两个优点:

一个是time-reversibility,时间回溯性,即向前n步,掉头更新n步可以回头。这一点从

另一个是symplectic nature,辛结构?对于满足辛变换的系统会使用辛算法进行离散求解,辛积分。

这里埋个坑,为什么Euler method是一阶精度,Backward Eular精度是多少,留到问题5中进行解决。

为了让模拟的时间变长,当质点撞到地面的时候,将落在地面上的粒子移到杯子中。连在尾部。这里就体现了链表的优势,操作非常简单。后来想了下,如果用数组做索引也可以。

最终的模拟结果如图:

可以看到,出现了珠链喷泉的现象。从一定程度上反应了,这个现象来源于杯底的作用力。

  • 单位向量的求导

在隐式求解Mass-Spring时,需要对单位向量进行求导。求导的公式如下:

$\frac {\partial {\hat x}}{\partial {x}}= \frac {I-{\hat x}{\hat x}^T}{\left |{x}\right |}$

[1] https://en.wikipedia.org/wiki/Verlet_integration

[2] https://en.wikipedia.org/wiki/Leapfrog_integration

7.Hexo图片、公式插入的问题

问题描述:如何在Hexo中插入图片、公式

不得不说,折腾了好一会才折腾好。

  • 插入图片

图片插入是需要安装一个插件叫hexo-asset-image。

1
npm install hexo-asset-image --save

安装以后,一开始还是无法插入图片。观察以后发现有几个问题。一个是输出信息的时候,“Update linke—>”后面的地址有各种%2E之类的URL编码。这种情况应该是因为文章的名字中有中文(但是Hexo不是支持中文的吗…)。地址中图片名这一块有一个%5C,这个是反斜杠的编码。

之后找了很多教程基本雷同,没能解决问题,但是有一个教程很有意思。他遇到了教程里没有提到的问题,他最终是看hexo-asset-image中index.js的代码解决的。所以模仿了教程的阅读思路,看了下代码,发现应该是

1
var src = $(this).attr('src').replace('\\', '/');

这边有点问题,这个替换没替换成功。所以,看了下md中的图片地址,都是反斜杠连接的,问题应该在这,所以改成了斜杠。问题就没了。

斜杠与反斜杠:反斜杠是win的文件路径。斜杠是unix的文件路径。网络文件的地址都是统一的斜杠。C里反斜杠还有转义的含义。

后来在解决公式问题的时候似乎改了一些东西。之前的问题好像自动消失了。但是可以确定的是之前是斜杠与反斜杠转换这块有问题。

  • 插入公式

直接参考教程即可,很清楚。

https://www.youtube.com/watch?v=hdn6mqubh98&list=PLgPpaTsP_3Dq5KsWd6-8wmjNs3ipnvCU3