2015-03-08 2 views
1

Может ли кто-нибудь сказать мне, правильно ли я закодировал это? Это мой код для решения для сторон треугольника с учетом его периметр, высота и угол наклона (для алгебры см http://www.analyzemath.com/Geometry/challenge/triangle_per_alt_angle.html)TI-BASIC (TI-84) Решение для сторон треугольника

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 (см. Веб-сайт снова)? Заранее спасибо

+0

Я попробовал это на 45-45-90 треугольнике и он работал (с Р = 2 + sqrt2, H = 1, L = 45), но он не сделал работа над треугольником 30-60-90 (P = 3 + sqrt (3), h = 3, L = 30); он сказал, что не настоящий ответ ... кто-нибудь знает почему? – Gabriel

ответ

2
  1. Код уже работает с L = 90 °.
  2. Да, высота должна быть от точки A до основания a между точками B и C, образуя прямоугольный угол с этой базой. Вывод сделал это предположение, в частности, в отношении способа его использования h и a во второй области формулы 1/2 h a. Эта точная формула не применяется, если h было нарисовано по-разному.
  3. Причина, по которой ваш второй набор входов привел к нереальному ответу, заключается в том, что иногда набор математических параметров может быть несовместим друг с другом и описывать невозможную конструкцию, и ваши значения P, h и L делают именно это. В частности, они описывают невозможный треугольник.

Учитывая высоту 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 (плюс немного, я закруглен здесь), и вы увидите, что все они приводят к мнимым результатам. Это математика, говорящая вам, что вы вычисляете то, что не может существовать в действительности.

Если вы заполните отсутствующую ближайшую скобку между Y и / в строке 5, тогда ваш код работает отлично.

Я написал код немного иначе, чем вы, вот что я сделал:

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 

Edit: @Gabriel, нет ничего особенного (по этому вопросу) о углах 30-60-90 ; существует бесконечное число наборов P, h и L входов, которые описывают такие треугольники. Однако, если вы действительно хотите найти такие треугольники в ответе, вы действительно изменили вопрос; вместо того, чтобы просто знать один угол L плюс P и h, вы теперь знаете три угла (30-60-90) плюс P и h. Вы уже перечеркнули треугольник, так что вполне уверенно, что случайно созданный набор входов будет описывать невозможный треугольник. В качестве надуманного примера, если вы указали h как 0,0001 и P как 99999, то это явно невозможно, потому что треугольник с крошечной высотой и довольно неэкстремальными углами (которые 30-60-90) не может достичь периметра во много раз больше его высоты ,

Если вы хотите начать с только один из P или h, то вы можете получить уравнения для расчета всех параметров треугольника из известного P или h плюс знания 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=100, h=36.603 и L=30 в код, вы увидите, что вы получаете точные результаты.

+0

«Вы не можете сформировать треугольник с углом 90 °». Как насчет правильных треугольников? – Timtech

+0

@ Тимтех, извините, когда я писал свой первоначальный ответ, я думал о треугольнике с * двумя * прямыми углами. Мозг не работал правильно ... – bgoldst

+0

Хм, правда. Вот что я понял, о чем вы говорили. – Timtech

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 

 Смежные вопросы

  • Нет связанных вопросов^_^