Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Objętość ostrosłupa - wysokość na minusie?
Forum PHP.pl > Inne > Hydepark
Kildyt
Witajcie

Dzisiaj na kartkówce dostaliśmy, wydawać się proste zadanie obliczenia pola całkowitego i objętości ostrosłupa prawidłowego. Krawędź ściany bocznej = 4, a krawędź podstawy = 7.
Problem jest w tym, że wysokość ostrosłupa wychodzi na minusie. smile.gif Sama nauczycielka nie wiedziała o co biega. Taa.. ohmy.gif


Dla pomocy zamieszczam przygotowany kod na objętość:
  1. <?php
  2.  
  3. $x = 7; // Długość krawędzi podstawy ostrosłupa
  4. $y = 4; // Długość krawędzi bocznej
  5.  
  6.  
  7. // Licz H - wysokośc ostrosłupa
  8.  
  9. $TPb = $x*sqrt(3);
  10. $TPb = (2/3)*$TPb;
  11. $TPb = round($TPb, 2); // Obliczyliśmy 2/3 podstawy ostrosłupa
  12. $TP = $y*$y-$TPb*$TPb; // Twierdzenie Pitagorasa: wynik pod pierwiastkiem wychodzi na minusie
  13.  
  14. echo $TP;
  15.  
  16. $TP = sqrt($TP);
  17. $TP = round($TP, 2);
  18.  
  19. $H = $TP;
  20.  
  21.  
  22. // Licz objętość
  23.  
  24. $Pp = (($x*$x)*sqrt(3))/4;
  25.  
  26. $V = (1/3)*($Pp*$H);
  27.  
  28.  
  29. ?>


Prosimy o pomoc. O co tu chodzi? smile.gif
wookieb
Kod
$TPb = ($x/2)*sqrt(3);
$TPb = (2/3)*$TPb;
$TPb = round($TPb, 2); // Obliczyliśmy 2/3 podstawy ostrosłupa
$TP = $y*$y-$TPb*$TPb; // Twierdzenie Pitagorasa: wynik pod pierwiastkiem wychodzi na minusie

Do obliczenia wysokosci podstawy bierze się połowę x a nie cały. Dlatego odejmowało ci za dużo.
Kildyt
  1. <?php
  2. $TPb = ($x/2)*sqrt(3);
  3. ?>
Tak nie może być. Wysokość w trójkącie liczby się ze wzoru
  1. <?php
  2. $h = ($x*sqrt(3))/2
  3. ?>

A my w zadaniu potrzebujemy 2/3 tej wysokości. Tworzymy w ostrosłupie trójkąt aby obliczyć wysokość graniastosłupa.
wookieb
To jest to samo przecież.
a/2 * piewiastek(3) to jest to samo to (a*pierwiastek(3))/2;

Wiec to jest prawidłowe
Kod
$TPb = ($x/2)*sqrt(3);

Sprawdź najpierw.

EDIT: Po drugie krawędź boczna jest za mała. Niemożliwy jest taki ostrosłup.
rzymek01
a jesteś pewien że taki ostrosłup istnieje?

w twoim przypadku dla ostrosłupa musi być spełniona nierównośc:
7 pierwiastków z 2 musi byc mniejsze od 8

czyli
przekątna podstawy < podwojonej długości krawędzi bocznej tego ostrosłupa
Kildyt
No właśnie, nie jestem przekonany. I jak tu mam dostać dobrą ocenę z kartkówki? hehe smile.gif
Nauczycielka nawet sprawdzała, czy może istnieć taki trójkąt (może sprawdzały tylko trójkąt) i twierdziła, że raczej tak.
Jutro piszemy, drugi raz, to da już coś normalnego. winksmiley.jpg

PS @wookieb zwracam honory. smile.gif
legorek
Akurat jestem na etapie nauki do egzaminu z matmy więc odpowiem. Dawno nie miałem do czynienia z geometrią, ale od czego jest wiki smile.gif

Ja jestem pewien, że taki ostrosłup nie istnieje.
Dowód będzie trochę łopatologiczny:
Nie napisałeś co jest podstawą ostrosłupa (wiemy tylko że jakiś wielokąt foremny).
1) W tym wypadku, wysokość ostrosłupa można sobie obliczyć ze wzoru b^2 - R^2, gdzie:
b - to długość ściany bocznej
R - promień okręgu opisanego na wielokącie foremnym będącym podstawą
2) R liczymy ze wzoru a/(2*sin(pi/n)), gdzie:
n - liczba boków podstawy
a - długość boku podsawy
Reasumując wzór na wysokość ostrosłupa:
H(n) = b^2 - (a/(2*sin(pi/n)))^2
Po podstawieniu wartości z zadania:
H(n) = (4^2) - ((7 / (2 * sin(pi /n)))^2)
Policzmy wysokość dla ostrosłupa o podstawie trójkąta:
n = 3
(4^2) - ((7 / (2 * sin(pi / 3)))^2) = -0.333333333 Czyli ostrosłup o podstawie trójkąta nie wchodzi w grę.
No dobra, ale co z innymi wielokątami? Zbadajmy sobie przebieg funkcji H(n) w przedziale <3, +oo). Policzmy H'(n),
H'(n) = -49/2/sin(pi/n)^3*cos(pi/n)*pi/n^2, łatwo można sprawdzić, że w interesującym nas przedziale n <3, +oo) pochodna będzie zawsze przyjmować ujemne wartości, tak więc funkcja H(n) jest malejąca. Co za tym idzie dla kolejnych ostrosłupów o podstawie n-kątów foremnych będziemy otrzymywać coraz to mniejsze wysokości.

Reasumując, w zadaniu jest błąd w druku bo jak zamienisz miejscami 4 z 7 wynik wychodzi dobry.
scanner
legorek: Jak dla mnie to egzamin masz zaliczony z palcem w... smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.