【问题标题】:TI-BASIC (TI-84) Solving for the Sides of a TriangleTI-BASIC (TI-84) 求解三角形的边
【发布时间】:2015-03-08 05:47:59
【问题描述】:

有人能告诉我我的编码是否正确吗?这是我在给定周长、高度和角度的情况下求解三角形边的代码(代数见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 之间(再次参考网站)是否重要? 提前致谢

【问题讨论】:

  • 我在 45-45-90 的三角形上试过这个,它工作(P=2+sqrt2,H=1,L=45),但它在 30-60- 上没有用90三角形(P=3+sqrt(3),h=3,L=30);它说的是非真实答案...有人知道为什么吗?

标签: geometry ti-basic


【解决方案1】:
  1. 代码已经适用于 L=90°。
  2. 是的,高度必须是点A 到点BC 之间的基础a 的距离,与基础形成一个直角。推导做出了这个假设,特别是关于它在第二个面积公式1/2 h a 中使用ha 的方式。如果 h 的绘制方式不同,则该确切公式将不适用。
  3. 您的第二组输入导致非真实答案的原因是,有时一组数学参数可能彼此不一致并描述了一个不可能的构造,而您的 Ph 和 @987654331 @values 正是这样做的。具体来说,他们描述了一个不可能的三角形。

给定一个高度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) 加上 Ph,而不是只知道一个角度 L 加上 Ph。您现在已经过度指定了三角形,因此可以确定一组随机生成的输入将描述一个不可能的三角形。作为一个人为的例子,如果您将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 插入代码,您会看到您得到这些确切的结果。

【讨论】:

  • "你不能形成一个 90°角的三角形。"直角三角形呢?
  • @Timtech,对不起,当我写我的原始答案时,我在想一个有 两个直角的三角形。大脑工作不正常......
  • 嗯,没错。这就是我想你所指的。
【解决方案2】:

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

进一步优化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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 2013-07-21
    相关资源
    最近更新 更多