TP potęga dowolnego stopnia wymiernego

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:

:slight_smile: ale to już się poszuka :slight_smile:

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 :wink:

Funkcja wykładnicza i funkcja logarytmiczna są funkcjami odwrotnymi tak jak dodawanie i odejmowanie, mnożenie i dzielenie:

x=x+300-300 :slight_smile:

x=x*200/200 :slight_smile:

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)