[Maxima] Dla zadanego i, i-ty pierwiastka z n

krupka888
Użytkownik
Użytkownik
Posty: 23
Rejestracja: 22 lis 2014, o 17:30
Płeć: Kobieta
Lokalizacja: Wrocław
Podziękował: 3 razy

[Maxima] Dla zadanego i, i-ty pierwiastka z n

Post autor: krupka888 »

Jak stworzyć funkcję jednolinijkową, która policzy \(\displaystyle{ i}\)-ty pierwiastek z \(\displaystyle{ n}\)?
Ostatnio zmieniony 9 lis 2015, o 08:20 przez Afish, łącznie zmieniany 2 razy.
Powód: Poprawa wiadomości.
SlotaWoj
Użytkownik
Użytkownik
Posty: 4211
Rejestracja: 25 maja 2012, o 21:33
Płeć: Mężczyzna
Lokalizacja: Kraków PL
Podziękował: 2 razy
Pomógł: 758 razy

[Maxima] Dla zadanego i, i-ty pierwiastka z n

Post autor: SlotaWoj »

A co to jest funkcja jednolinijkowa?
krupka888
Użytkownik
Użytkownik
Posty: 23
Rejestracja: 22 lis 2014, o 17:30
Płeć: Kobieta
Lokalizacja: Wrocław
Podziękował: 3 razy

[Maxima] Dla zadanego i, i-ty pierwiastka z n

Post autor: krupka888 »

Ma być krótka, zapis powinien zmieścić się w 1 linijce.
Awatar użytkownika
Althorion
Użytkownik
Użytkownik
Posty: 4541
Rejestracja: 5 kwie 2009, o 18:54
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy
Pomógł: 662 razy

[Maxima] Dla zadanego i, i-ty pierwiastka z n

Post autor: Althorion »

Jaki język?

I po co, jeśli można wiedzieć?
krupka888
Użytkownik
Użytkownik
Posty: 23
Rejestracja: 22 lis 2014, o 17:30
Płeć: Kobieta
Lokalizacja: Wrocław
Podziękował: 3 razy

[Maxima] Dla zadanego i, i-ty pierwiastka z n

Post autor: krupka888 »

Czy tutaj trzeba użyć pętli for?
SlotaWoj
Użytkownik
Użytkownik
Posty: 4211
Rejestracja: 25 maja 2012, o 21:33
Płeć: Mężczyzna
Lokalizacja: Kraków PL
Podziękował: 2 razy
Pomógł: 758 razy

[Maxima] Dla zadanego i, i-ty pierwiastka z n

Post autor: SlotaWoj »

  1. Pytanie o język jest zasadne, bo gdy ma on zaimplementowane funkcje Exp i Log, to można je wykorzystać.
  2. Pętle są niezbędne, gdy startujemy „o zera” i wykorzystujemy np. rozwinięcie funkcji w szereg Maclaurina.
krupka888
Użytkownik
Użytkownik
Posty: 23
Rejestracja: 22 lis 2014, o 17:30
Płeć: Kobieta
Lokalizacja: Wrocław
Podziękował: 3 razy

[Maxima] Dla zadanego i, i-ty pierwiastka z n

Post autor: krupka888 »

Program Maxima.
SlotaWoj
Użytkownik
Użytkownik
Posty: 4211
Rejestracja: 25 maja 2012, o 21:33
Płeć: Mężczyzna
Lokalizacja: Kraków PL
Podziękował: 2 razy
Pomógł: 758 razy

[Maxima] Dla zadanego i, i-ty pierwiastka z n

Post autor: SlotaWoj »

Nic mi to nie mówi. Czy ma zaimplementowane funkcje, o których pisałem wcześniej?

Jeśli tak, to:
  • Pierwiastek(x;i)=Exp(Log(x)/i) – składnia hipotetyczna, nie znam Meximy.
Log = logarytm naturalny.
krupka888
Użytkownik
Użytkownik
Posty: 23
Rejestracja: 22 lis 2014, o 17:30
Płeć: Kobieta
Lokalizacja: Wrocław
Podziękował: 3 razy

[Maxima] Dla zadanego i, i-ty pierwiastka z n

Post autor: krupka888 »

Jeszcze mam pytanie, jak ma się do tego n?
SlotaWoj
Użytkownik
Użytkownik
Posty: 4211
Rejestracja: 25 maja 2012, o 21:33
Płeć: Mężczyzna
Lokalizacja: Kraków PL
Podziękował: 2 razy
Pomógł: 758 razy

[Maxima] Dla zadanego i, i-ty pierwiastka z n

Post autor: SlotaWoj »

U Ciebie n jest argumentem funkcji (liczbą podpierwiastkową), ale ponieważ zazwyczaj oznacza się nim liczny naturalne, a pierwiastki można obliczać dla liczb rzeczywistych nieujemnych (nieparzystego stopnia – dla wszystkich) więc ja użyłem jako argumentu x. Dodatkowo moja funkcja ma drugi argument i – stopień pierwiastka.

Na marginesie: Ww. powinnaś się sama domyślić. Musisz się „podciągnąć”.
Awatar użytkownika
Althorion
Użytkownik
Użytkownik
Posty: 4541
Rejestracja: 5 kwie 2009, o 18:54
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy
Pomógł: 662 razy

[Maxima] Dla zadanego i, i-ty pierwiastka z n

Post autor: Althorion »

Można próbować skorzystać z . Dobrym punktem startowym będzie na przykład \(\displaystyle{ x_0 = 1}\), trochę lepszym \(\displaystyle{ x_0 = 1 + \frac{a-1}{n}}\) (gdzie \(\displaystyle{ a}\) to nasza pierwiastkowana liczba, a \(\displaystyle{ n}\) to stopień pierwiastka) i potem iterujemy \(\displaystyle{ x_{i+1} = \frac{1}{n} \left((n-1)x_i + \frac{a}{x_{i}^{n-1}}\right)}\). Iterujemy tak długo, jak kolejne wartości będą się różnić, ew. aż się zbliżymy w sposób nas zadowalający (co to oznacza musisz sobie wymyślić sama, popularne rozwiązania to iloraz mniejszy na moduł bądź różnica mniejsza na moduł od pewnej wartości).

Tak się to przykładowo implementuje w Haskellu:

Kod: Zaznacz cały

n `f` x = fst $ until (uncurry(==)) ((_,x0) -> (x0,((n-1)*x0+x/x0**(n-1))/n)) (x,x/n)
ODPOWIEDZ