1、如果给出两个具体向量,Mathematica可以直接算出夹角:a = {1, 0}; b = -a; p = {1/2, 2};VectorAngle[p - a, p - b]
2、但如果给定的向量里面有未知数,情况就不一样了:a = {1, 0}; b = -a; p = {x, y};VectorAngle[p - a, p - b]
3、Mathematica默认x和y是复数。如果需要,请把x和y限定为实数:Element[{x,y}, Reals]具体代码如下:Refine[VectorAngle[p - a, p - b],Element[{x, y}, Reals] ]
4、在外面化简:FullSimplify[Refine[VectorAngle[p - a, p - b], Element[{x, y}, Reals]]]化简效果不好。
5、在里面化简,也不够彻底:Refine[FullSimplify[VectorAngle[p - a, p - b]], Element[{x, y}, Reals]]
6、增加一个限制条件:Refine[FullSimplify[VectorAngle[p - a, p - b]],Element[{x, y}, Reals] && -1 < x < 1]脱去与x相关的绝对值符号。
7、再脱去与y相关的绝对值符号:Refine[FullSimplify[VectorAngle[p - a, p - b]],Element[{x, y}, Reals] && -1 < x < 1 && y > 0]