orthagonal planes and normal vectors
46 次查看(过去 30 天)
显示 更早的评论
I have three planes:
3x +2y -z =18
3x - 8y -7z = -38
-22 + 18 -30 = -6
And I'd like to find normal vector to those planes, and then chech if these vectors are orthagonal to themselves, then check the if the planes are orthagonal. How can I do this thing? I'd be greateful for any help in this matter.
0 个评论
采纳的回答
David Goodmanson
2020-11-23
Hi M,
A plane satisfies the dot product equation equation
r dot v = const
where r is the position vector [x y z] and v = [vx vy vz] is a vector perpendicular to the plane. A vector perpendicular to the first plane is
v1 = [3 2 -1];
because dotting that into [x y z] produces the equation for the first plane. Similarly for the other two. A unit vector perpendicular to the plane is
n1 = v1/norm(v1) % normalized vector perpendicular to plane
and similarly for the other two. Then dot(n1,n2) tellls you if n1 and n2 are orthogonal, and similarly for the other possible pairs.
Planes are orthogonal if and only if their normal vectors are orthogonal.
2 个评论
David Goodmanson
2020-11-25
编辑:David Goodmanson
2020-11-25
Hello M,
there is not anything wrong here. For dot(n1,n3) and dot(n2,n3), the difference from 0 is down around 5e-17. This result is more or less expected. n1,n2 and n3 are vectors whose elemenrts are floating point numbers, not integers, and sizewise are in the general vicinity of 1. In Matlab, floating point double precision numbers have 16 decimal places. So for a vector element around 1, a value like 5e-17 is down around the last decimal place, which is the limit of precision. When doing the dot calculation, some imprecision down around the order of 5e-17 is expected, and that's what you get.
It so happens that v1, v2 and v3 have elements that are integers, so the dot products of those come out to be exactly zero.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Filter Design 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!