TI-BASIC(TI-84)解决三角形边

时间:2015-03-08 05:47:59

标签: geometry ti-basic

有人可以告诉我,我是否正确编码了这个?这是我的代码,用于求解三角形的边长,高度和角度(代数见http://www.analyzemath.com/Geometry/challenge/triangle_per_alt_angle.html

Prompt P
Prompt H
Prompt L [the angle]
(HP^2)/(2H(1+cos(L))+2Psin(L))→Y
(-P^2-2(1+cos(L))Y/(-2P)→Z
(Z+sqrt(Z^2-4Y))/2→N
[The same as above but Z-sqrt...]→R
If N>0
N→U
If R>0
R→U
Y/U→V
sqrt(U^2+V^2-2UVcos(L))→W
Disp U
Disp V
Disp W

另外,我如何解决这个问题,以便输入角度= 90? 另外,在这段代码中,如果海拔高度是b和c之间的高度,那么它是否重要(再次参考网站)? 提前致谢

2 个答案:

答案 0 :(得分:2)

  1. 代码已经可以使用L = 90°。
  2. 是的,高度必须是点Aa之间从点B到基座C的距离,与该基点形成直角。推导得出了这个假设,特别是在第二个区域公式h中使用a1/2 h a的方式。如果h的绘制方式不同,那么这个确切的公式将不适用。
  3. 您的第二组输入导致非真实答案的原因是,有时一组数学参数可能彼此不一致并描述一个不可能的构造,并且PhL值完全相同。具体来说,他们描述了一个不可能的三角形。
  4. 给定高度h和角度L,可以实现的最小周长P是等腰三角形,中间分为h。使用L=30,这将包含P = a + b + c = 2h tan15 + h/cos15 + h/cos15,其中插入h=3会产生P=7.819。您改为尝试使用P=3+sqrt(3)=4.732。尝试使用少于7.819的各种数字(加上一点;我在这里四舍五入),你会发现它们都会产生想象的结果。这是数学告诉你,你正在计算现实中不存在的东西。

    如果您填写第5行Y/之间缺少的右括号,那么您的代码就可以正常运行。

    我编写的代码与您略有不同,这就是我所做的:

    Prompt P
    Prompt H
    Prompt L
    
    HP²/(2H(1+cos(L))+2Psin(L))→Y
    (HP-Ysin(L))/H→Z
    
    Z²-4Y→D
    If D<0:Then
    Disp "IMAGINARY"
    Stop
    End
    (Z+√(D))/2→C
    
    Y/C→B
    P-(B+C)→A
    
    Disp A
    Disp B
    Disp C
    

    编辑: @Gabriel,关于角度30-60-90,没有什么特别的(关于这个问题);有无穷多组PhL输入来描述这样的三角形。但是,如果你真的想在答案中得到这样的三角形,你实际上已经改变了问题;您现在知道三个角度(30-60-90)加LP,而不只是知道一个角度hPh。你现在已经过度指定了三角形,因此可以肯定的是,随机生成的一组输入将描述一个不可能的三角形。作为一个人为的例子,如果你将h指定为0.0001并将P指定为99999,那么这显然是不可能的,因为一个海拔很小且角度非常小的三角形(30-60-90)不能可能达到其高度的许多倍。

    如果您只想从Ph中的一个开始,那么您可以导出公式以计算已知Ph中三角形的所有参数加上30-60-90角度的知识。

    举一个这样的例子,如果我们假设边a形成90°和60°角之间三角形的底边,那么我们有L=30和(标记60°角)作为B)我们有h=b,你可以得到所有参数的简单公式:

    P = a + h + c
    sin60 = h/c
    cos60 = a/c
    
    => P = c cos60 + c sin60 + c
       P = c(cos60 + sin60 + 1)
       c = P/(cos60 + sin60 + 1)
    
       b = h = c sin60
       a = c cos60
    

    插入P=100我们

    c = 100/(cos60 + sin60 + 1) = 42.265
    b = h = 36.603
    a = 21.132
    

    如果您将P=100h=36.603L=30插入代码中,您会看到获得这些确切结果。

答案 1 :(得分:0)

始终优化速度,然后调整大小。

进一步优化bgoldst的代码:

Prompt P,H,L
HP²/(2H(1+cos(L))+2Psin(L
.5(Z+√((HP-sin(L)Ans)/H)²-4Ans
{Y/C→B,P-B-Ans,Ans