nyy 发表于 2023-3-6 12:50:53

用向量法求解四面体的体积

四面体OABC,
求解OH平方
\[\frac{a^2 b^2 c^2 \left(\text{CosA}^2-2 \text{CosA} \text{CosB} \text{CosC}+\text{CosB}^2+\text{CosC}^2-1\right)}{a^2 \left(b^2 \left(\text{CosC}^2-1\right)+2 b c (\text{CosA}-\text{CosB} \text{CosC})+c^2 \left(\text{CosB}^2-1\right)\right)+2 a b c (b (\text{CosB}-\text{CosA} \text{CosC})+c (\text{CosC}-\text{CosA} \text{CosB}))+b^2 c^2 \left(\text{CosA}^2-1\right)}\]

看下分母
化简得到
\[\frac{1}{4} (x-y-z) (x+y-z) (x-y+z) (x+y+z)=-4S^2\]
其中S表示三角形ABC的面积

最后体积表达式
\

全部代码如下:
Clear["Global`*"];
(*子函数,计算余弦值,利用三边计算余弦值,角是c边所对的角*)
cs:=((a^2+b^2-c^2)/(2*a*b))
ru={CosA->cs,CosB->cs,CosC->cs}
rule={OA*OB->a*b*cs,OA*OC->a*c*cs,OB*OC->b*c*cs,OA->a,OB->b,OC->c}
(*下面的规则替换上面的规则,重新定义*)
rule={OA*OB->a*b*CosC,OA*OC->a*c*CosB,OB*OC->b*c*CosA,OA->a,OB->b,OC->c}
OH=s*OA+t*OB+(1-s-t)*OC(*用向量OA、OB、OC来表达ABC面上的高OH*)
f1=(OH*(OA-OB)//Expand)/.rule(*OH垂直于向量AB*)
f2=(OH*(OA-OC)//Expand)/.rule(*OH垂直于向量AC*)
ans=Solve[{
    f1==0,
    f2==0
},{s,t}](*求解出系数s与t*)
(*化简OH的高度的平方*)
f=((OH^2//Expand)/.ans[])/.rule//FullSimplify
aaa=Denominator/.ru//Factor

nyy 发表于 2023-3-6 12:53:49

用向量法求解都比较困难,因为计算量非常的大,
优点就是高中生都能理解,
相对来说计算量比较小的办法,我见到的,都是用行列式来推导体积

nyy 发表于 2023-3-6 12:58:03

https://bbs.emath.ac.cn/forum.php?mod=viewthread&tid=2515&fromuid=14149

算是对这个问题的回复,13年前的问题的回复

nyy 发表于 2023-3-6 14:01:09

mathematica能计算向量的内积吗?@chyanog 能不?我只会用笨办法来替换
页: [1]
查看完整版本: 用向量法求解四面体的体积