interesuje mnie metoda otrzymania (w Pascalu) potęgi dowolnego stopnia wymiernego, znam już metodę potęgi stopnia naturalnego, wiec problem sprowadza się do tego jak policzyć np 100^(1/x) gdzie x wynosi np 10
Za moich czasów nie było takiej funkcji standardowej i niestety trzeba było napisać taką funkcję samemu… :mrgreen:
Jak wiadomo: x^y = (e^ln(x))^y = e^(ln(x)*y):
Niech: potega - potęga rzeczywista (z liczby dodatniej !):
function potega(const x,y : float) : float;
begin
potega := exp(ln(abs(x))*y);
end;
dzięki floyd
działa;
teraz tylko muszę zrozumieć to:
ale to już się poszuka
Matematyka na poziomie końca liceum chyba.
X do potęgi Y to to samo co (e do potęgi logarytm naturalny z X) do potęgi Y. A logarytm naturalny z X do potęgi Y to Y razy logarytm naturalny z X.
A e to taka stała, 2,78 w zaokrągleniu chyba. Wyznacza się ją, że jest to granica przy n dążącym do nieskończoności z (1 + 1/n) do potęgi n o ile pamiętam z analizy
Funkcja wykładnicza i funkcja logarytmiczna są funkcjami odwrotnymi tak jak dodawanie i odejmowanie, mnożenie i dzielenie:
x=x+300-300
x=x*200/200
x=e^ln(x) gdzie e podstawa logarytmów naturalnych e=2,71…
dla logartmów dziesiętnych wyglądało by to np. tak:
x=10^log(x) czyli np. 100=10^log(100), 1000=10^log(1000) itd.
(W pascalu jest tylko funkcja logarytmiczna o podstawie naturanej. Dla logarytmów dziesiętnych trzeba znów samodzielnie napisać odpowiednią funkcję)
jestem w 2 kl LO
z logarytmów wiem tyle, że funkcja log zwraca wykładnik funkcji wykładniczej w twoich przykładach tak jakby podstawa była = 10
miałem tylko okrojona teorię i na takich przykładach:
log2 4=2 bo 2^2=2
log2 8=3 bo 2^3=8
log2 16=4 bo 2^4=16 ( 2 po log jako indeks dolny)
itd.
ale na systemowym kalkulatorze już tak nie idzie, tylko tak jakby zamiast 2 był 10 na stałe, czy aby tak jest? jak się określa w Pascalu podstawę?
Rzeczywiście, na ogół w prostych kalkulatorach są logarytmy o podstawie 10. W Pascalu jest określona funkcja logarytmowania dla podstawy równej e=1.71… czyli tzw. logarytmy naturalne. Dla odróżnienia logartmów dziesiętnych od naturalnych pisze się najczęściej log 3 dla logarytmów dziesiętnych i ln 3 dla logarytmów naturalnych(bez żadnych indexów z których pisaniem w dzisiejszych czasach są kłopoty). W pascalu można sobie zbudować funkcję obliczającą logarytmy dziesiętne wykorzystującą matematyczną zależność: log(x)=ln(x)/ln(10)