最近这几天在复习高数空间几何,本来没有什么,结果计算叉乘算的头都大了
叉乘本来也没有什么技术含量,就是一直重复的计算感觉没有太大意义。
想着这几天学了python,正好编着玩玩。再说好久都没更新了,更新下吧

向量之间的加减点乘都比较简单,就是对应的计算。
稍微显得复杂一点的是叉乘,实际也不复杂,就是一个矩阵的计算。
程序代码如下

#coding:utf-8
class Matrix(object):
    """docstring for Matrix"""
    def __init__(self, i,j,k):
        super(Matrix, self).__init__()
        self.dirs={}
        self.dirs['i']=i
        self.dirs['j']=j
        self.dirs['k']=k
    def __add__(self,obj):
        return (self.dirs['i']+obj.dirs['i'],self.dirs['j']+obj.dirs['j'],self.dirs['k']+obj.dirs['k'])
    def __sub__(self,obj):
        return (self.dirs['i']-obj.dirs['i'],self.dirs['j']-obj.dirs['j'],self.dirs['k']-obj.dirs['k'])
    #点乘就用乘
    def __mul__(self,obj):
        return (self.dirs['i']*obj.dirs['i'],self.dirs['j']*obj.dirs['j'],self.dirs['k']*obj.dirs['k'])
    #叉乘用除代替
    def __div__(self,obj):
        dirsi=self.dirs['j']*obj.dirs['k']-self.dirs['k']*obj.dirs['j']
        dirsj=self.dirs['k']*obj.dirs['i']-self.dirs['i']*obj.dirs['k']
        dirsk=self.dirs['i']*obj.dirs['j']-self.dirs['j']*obj.dirs['i']
        return (dirsi,dirsj,dirsk)
if __name__ == '__main__':
    mat1=Matrix(1,2,3)
    mat2=Matrix(4,5,6)
    print(mat1/mat2)

不过我用python3这个除法运算符总是不能重载,也是无语了。
不得不说,python作为脚本语言确实真挺方便,效率之类的要求不高就用它了。
平时编写java用idea得卡很长时间,python平时开个sublime就够用了。
最近偶尔再看python的web应用,看得差不多了来实践实践

最近博客主题一直换过来换过去的,一直看不到非常满意的,有时间了自己改改希望找到个满意的吧。

python 高数

发表新评论