Гост написа:Дадени са точките А(2; 0; 3), В(-1; 1; 2), С(3; 1; 4), и D(4; 3; -1).
а) Да се докаже, че точките не лежат в една равнина;
б) Да се намери обемът на тетраедъра ABCD;
в) Да се намери дължината на височината в тетраедъра, спусната от върха D;
г) Да се намери ъгълът, който сключват правите AD и ВС.
a)
За да докажем, че не лежат в равнина (ax+by+cz+d=0), следната система не трябва да има решение (или трябва да няма решение) :
А(2; 0; 3), В(-1; 1; 2), С(3; 1; 4), и D(4; 3; -1)
a*2+b*0+c*1+d=0
a*(-1)+b*1+c*2+d=0
a*3+b*1+c*4+d=0
a*4+b*3+c*(-1)+d=0
Да видим:
In [300]: var("a,b,c,d")
Out[300]: (a, b, c, d)
In [301]: solve([a*2+b*0+c*1+d,^M
...: a*(-1)+b*1+c*2+d,^M
...: a*3+b*1+c*4+d,^M
...: a*4+b*3+c*(-1)+d])^M
...:
Out[301]: {c: 0, d: 0, b: 0, a: 0}
Хмм. Единственото решение е когато всички параметри са 0, което не е равнина, значи няма решение.
б)
Първо ще решим в)
в)
да намерим равнината ABC
solve([a*2+b*0+c*1+d,
a*(-1)+b*1+c*2+d,
a*3+b*1+c*4+d])
Out[304]: {d: 0, b: -5*c/2, a: -c/2}
d e 0, а c може да бъде каквото си искаме, нека да е 2, тогава равнината е:
-x-5y+2z=0
Разстоянието от D(4; 3; -1) до равнината:
Първия резултат в Google е:
Distance = (| a*x1 + b*y1 + c*z1 + d |) / (sqrt( a*a + b*b + c*c))
Или в нашия случай:
In [307]: abs(-1*4 -5*3 + 2*(-1) + 0 ) / math.sqrt( (-1)**2 + (-5)**2 + 2**2)
Out[307]: 3.8340579025361627
Сега да се върнем на
б)
Първо ни трябва площта на триъгълника ABC. Има различни начини.
https://math.stackexchange.com/questions/128991/how-to-calculate-the-area-of-a-3d-triangle- Код: Избери целия код
def heron(a,b,c):
s = (a + b + c) / 2
area = (s*(s-a) * (s-b)*(s-c)) ** 0.5
return area
def distance3d(x1,y1,z1,x2,y2,z2):
a=(x1-x2)**2+(y1-y2)**2 + (z1-z2)**2
d= a ** 0.5
return d
def areatriangle3d(x1,y1,z1,x2,y2,z2,x3,y3,z3):
a=distance3d(x1,y1,z1,x2,y2,z2)
b=distance3d(x2,y2,z2,x3,y3,z3)
c=distance3d(x3,y3,z3,x1,y1,z1)
A = heron(a,b,c)
print("area of triangle is %r " %A)
In [309]: areatriangle3d(2,0,1,-1,1,2,3,1,4)
area of triangle is 5.477225575051661
И сега обема да пирамида е:
$V = A*h/3$
5.477225575051661*3.8340579025361627/3 =
7Я какво точно число получихме! Да не повярва човек, че може и да сме решили задачата правилно.
г)
Не ми е интересна тази точка точно сега, но сигурно е някаква бърза операция с вектори.