最近

      五一七天,背了四五天单词,出去逛街,本来以为这就过去了,结果末了三天突然开始发高烧。前天晚上去医院挂了个急诊,医生开了点药。第二天早晨起来发现体温不降反升。于是又去医院开了些药。
      昨天下午起床的时候晕得特别厉害,一量体温,39.5度,吓我一跳。还好坐了一会又正常了。今天又晕了一整天,还好不发烧了。
      又要上课了,还要背单词。估计十天之内可以全部搞定,呵呵,争取暑假之前能再背一遍。这个学期的课程有些懈怠,花在单词上的时间有些多。光学考完了还不知道是死是活,马上就要考有机,还有没怎么看过的概率论和数理统计,还有原子物理……
      心情又不好,这个学期成绩不能太差才好。

完成所有程序

    早晨五点多起床去送牯牛降的队伍。回来以后有些困,就开始写程序。最后一个问题差不多就是前三个问题的集合,应该说没有什么大的困难。分割原始数据,转换数据格式,求解范德华势,导出结果,九点五十终于全部做完了。

又搞定了一个程序

    内禀坐标转换笛卡尔坐标的方法一直没找到,于是想办法把它分解成两次坐标定轴旋转变换,然后用矩阵把它pass了。
    可恶的是本来昨天就做好了,结果发现矩阵是左手坐标,而我列的方程是右手坐标……改来改去一直找不到头绪,还写了两个辅助测试程序,很窝火。还好,下午搞定了~

坐标旋转问题

      给定任意单位轴q(q1,q2,q3)(向量),求向量p(x,y,z)(或点p)饶q旋转theta角度的变换后的新向量p'(或点p’)。
      使用旋转矩阵工具:构造旋转矩阵变换Trot,则变换后的新向量p’= p*Trot,其中,p’(x’,y’,z’,1),p(x,y,z,1)为向量p’,p的4D齐次坐标表示。

          |t*q1*q1 + c,          t*q1*q2 + s*q3,      t*q1*q3 – s*q2,       0|
Trot =  |t*xq1*q2 – s*q3,    t*q2*q2 + c,           t*q2*q3 + s*q1,      0|
          |t*q1*q3 + s*q2,     t*q2*q3 – s*q1,      t*q3*q3 + c,           0|
          |0,                         0,                         0,                          1|

    其中c=cos(theta), s=sin(theta),t=1-c.