[英]How to make a vector math program?
所以我想創建一個矢量數學程序,它有 3 個計算維度。 addition(向量相加) dot(乘積之和) normalization(單個向量的范數是平方和的平方根)
如果我有 2 個向量:A = (1,3,2) B = (2,3,0)
加法:A + B = (1 + 2, 3 + 3, 2 + 0) = (3,6,2)
點:AB = 1.2 + 3.3 + 2.0 = 2 + 9 + 0 = 11
范數(A):A = Sqrt(1^2 + 3^2 + 2^2) = Sqrt(14) = 3.74
B = Sqrt(2^2 + 3^2 + 0^2) = Sqrt(4+9+0) = Sqrt(13) = 3.61
樣本 Output:
Enter vector a:
1 3 2
Enter vector b:
2 3 0
A + B = [3, 6, 2]
A.B = 11
A = 3.74
B = 3.61
提前致謝。
這個給你:)
from math import sqrt
class Vector():
def __init__(self, x=0, y=0, z=0):
self.x = x
self.y = y
self.z = z
def __add__(self, v):
x = self.x + v.x
y = self.y + v.y
z = self.z + v.z
return Vector(x, y, z)
def dot(self, v):
xdot = self.x * v.x
ydot = self.y * v.y
zdot = self.z * v.z
return xdot + ydot + zdot
def norm(self):
return sqrt(self.x**2 + self.y**2 + self.z**2)
def __str__(self):
return "({}, {}, {})".format(self.x, self.y, self.z)
a = Vector(1, 3, 2)
b = Vector(2, 3, 0)
print("a", a)
print("b", b)
print("a + b : ", a + b)
print("norm of a : {}".format(round(a.norm(), 2)))
print("norm of b : {}".format(round(b.norm(), 2)))
output:
a (1, 3, 2)
b (2, 3, 0)
a + b : (3, 6, 2)
norm of a : 3.74
norm of b : 3.61
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.