W ostatnim czasie powstał bardzo ciekawy projekt edukacyjny o nazwie„Virtual Reality 3D Graphing Calculator”, który umożliwia poznawanie matematyki poprzez zabawę i niemal fizyczną interakcję z wykresami różnych funkcji. Oprogramowanie powstało na bazie gogli wirtualnej rzeczywistości (Oculus Rift), sensora ruchu dłoni / palców (Leep Motion Controller) oraz parsera / silnika matematycznego mojego autorstwa (mXparser).
Autorem projektu są studenci z College of Coastal Georgia, inicjatywą opiekuje się German Vargas, Ph.D., Assistant Vice President for Academic Student Engagement, Associate Professor of Mathematics College of Coastal Georgia, One College Drive, Brunswick, GA 31520.
Poniżej również filmy prezentujące działanie kalkulatora.
Pozdrowienia,
Mariusz Gromada
Poza Liczbami: Inne Twórcze Przestrzenie
Matematyka i muzyka są ściśle powiązane przez rytm, harmonię i struktury
Matematyka i muzyka są ściśle powiązane przez rytm, harmonię i struktury, które wykorzystują matematyczne wzory i proporcje do tworzenia estetycznych i emocjonalnych doznań. Z nieśmiałą ekscytacją przedstawiam moją pierwszą poważniejszą kompozycję, w której starałem się uchwycić te połączenia.
I Am Here – RELEARN – Mariusz Gromada (2024)
I Am Here – RELEARN – Mariusz Gromada (2024)
Deep Under – RELEARN – Mariusz Gromada (2024)
Deep Under – RELEARN – Mariusz Gromada (2024)
Scalar – zaawansowana aplikacja mobilna z silnikiem matematycznym mojego autorstwa
Janet Sudoku – elastyczna i wydajna biblioteka dostarczające metody generacji oraz rozwiązywania łamigłówek Sudoku 9×9 (platformy Java, Android, .NET, MONO).
Serdecznie zapraszam (link) do zapoznania się z moim nowym projektem „Janet Sudoku”. Biblioteka została osobno przygotowana dla platform Java (od 1.5) oraz .NET (od 2.0 – język C#), w związku z tym „Janet” jest akronimem od Java Android, .NET. Główne funkcjonalności biblioteki
Sudoku Generator – generacja różnych kombinacji Sudoku przy wykorzystaniu wielu opcji / metod (np. łamigłówka zupełnie losowa, inna łamigłówka z tym samym rozwiązaniem, itp.).
Sudoku Solver– rozwiązywanie dowolnego Sudoku, weryfikacja czy rozwiązanie istnieje, poszukiwanie wszystkich rozwiązań jeśli rozwiązanie nie jest unikalne. Ocena trudności danego Sudoku.
Sudoku Store– analiza i transformacja Sudoku (np. obroty, permutacje, zamiana kolejności, transpozycje, odbicia, itp. – są to przykłady transformacji nie wpływających na istnienie rozwiązania).
Janet Sudoku Demo App– aplikacja z prostym interfejsem tekstowym, jednak o bardzo rozbudowanych możliwościach. Jest to demo wykorzystujące jednie część funkcjonalności biblioteki Janet Sudoku.
Pozdrowienia
Mariusz Gromada
Poza Liczbami: Inne Twórcze Przestrzenie
Matematyka i muzyka są ściśle powiązane przez rytm, harmonię i struktury
Matematyka i muzyka są ściśle powiązane przez rytm, harmonię i struktury, które wykorzystują matematyczne wzory i proporcje do tworzenia estetycznych i emocjonalnych doznań. Z nieśmiałą ekscytacją przedstawiam moją pierwszą poważniejszą kompozycję, w której starałem się uchwycić te połączenia.
I Am Here – RELEARN – Mariusz Gromada (2024)
I Am Here – RELEARN – Mariusz Gromada (2024)
Deep Under – RELEARN – Mariusz Gromada (2024)
Deep Under – RELEARN – Mariusz Gromada (2024)
Scalar – zaawansowana aplikacja mobilna z silnikiem matematycznym mojego autorstwa
Serdecznie zapraszam! Poniżej trochę grafiki mXparsera z linkami do odpowiednich stron 🙂
Pozdrowienia,
Mariusz Gromada
Poza Liczbami: Inne Twórcze Przestrzenie
Matematyka i muzyka są ściśle powiązane przez rytm, harmonię i struktury
Matematyka i muzyka są ściśle powiązane przez rytm, harmonię i struktury, które wykorzystują matematyczne wzory i proporcje do tworzenia estetycznych i emocjonalnych doznań. Z nieśmiałą ekscytacją przedstawiam moją pierwszą poważniejszą kompozycję, w której starałem się uchwycić te połączenia.
I Am Here – RELEARN – Mariusz Gromada (2024)
I Am Here – RELEARN – Mariusz Gromada (2024)
Deep Under – RELEARN – Mariusz Gromada (2024)
Deep Under – RELEARN – Mariusz Gromada (2024)
Scalar – zaawansowana aplikacja mobilna z silnikiem matematycznym mojego autorstwa
Okres średniowiecza, kobieta winna uprawiania magii, kara straszna – spalenie na stosie! Nadszedł dzień, tłum gawiedzi, czarownica na stosie, płomienie, wiedźma krzyczy – więcej drewna! Więcej drewna! Tłum zdziwiony, mimo wszystko spełnia ostatnie życzenie opętanej. Wiedźma nie przerywa – jeszcze więcej drewna! Więcej drewna! Z oddali dobiega nagły i stanowczy sprzeciw – STOP! Czarownica chce przepełnić stos!
🙂
Czym jest rekurencja?
Zazwyczaj o rekurencji myślimy jako o procesie podziału zadania na mniejsze, następnie podziału na jeszcze mniejsze, i jeszcze mniejsze … dochodząc do zadań, dla których rozwiązanie jest znane. Od tego momentu zaczyna się składanie „mniejszych” rozwiązań w „większe”, następnie tych większych w jeszcze większe, … i w jeszcze większe … kończąc na rozwiązaniu zadania początkowego. Dla przykładu zapiszmy funkcję n! w postaci rekurencyjnej.
Podane wyżej przykłady zapisów rekurencyjnych (n!, suma n-pierwszych wyrazów ciągu, ciąg Fibonacciego) są tak naprawdę rekurencyjną realizacją pętli „for” – znamy przecież dokładnie liczbę niezbędnych operacji do wykonania, a i same operacje są raczej łatwe oraz czytelne – zatem zagnieżdżenie ich w pętli „for” nie powinno spowodować utraty przejrzystości kodu.
Poszukiwanie rozwiązania – czyli rekurencja w roli pętli „While/Until”
W metodach numerycznych często stosuje się strategie rekurencyjne – w takiej sytuacji, będąc w kroku $n$, weryfikujemy czy propozycja rozwiązania $n$ spełnia kryterium stopu (np. jakość oszacowania), jeśli tak – kończymy z rozwiązaniem $n$, jeśli nie – przechodzimy do badania propozycji rozwiązania $n+1$. Procedurę rozpoczynamy od kroku 0 (zerowego).
Przykład: znając definicję silni chcemy znaleźć pierwsze $n$, dla którego $n! >= 100$ – takie zadanie formalnie możemy zapisać jako:
/* Definicja funkcji rekurencyjnej */
Function S = new Function("S(n) = if( n! < 100, S(n+1), n )"); /* Obliczenia i wyświetlenie wyniku */ System.out.println( "Pierwsze n, że n! >= 100 to n = " + S.calculate(0) );
+ wynik:
Pierwsze n, że n! >= 100 to n = 5.0
Rekurencja bezpośrednia
Wszystkie omawiane wyżej typy rekurencji polegają na wywołaniu z ciała funkcji „siebie samej”, dlatego należą do bardziej ogólnej klasy nazywanej rekurencją bezpośrednią.
Wydajność
Implementacje na bazie rekurencji są bardzo czytelne, o często minimalnym rozmiarze kodu. Jednak coś za coś – tracimy bardzo dużo na złożoności obliczeniowej (powtarzane operacje, dzielenie zadań, operacje na stosie) oraz wymogach pamięci (głównie struktura stosu) – to właśnie dlatego czarownica błagała o drewno – licząc na przerwanie procesu z tytułu przepełnienia stosu 🙂
Matematyka i muzyka są ściśle powiązane przez rytm, harmonię i struktury
Matematyka i muzyka są ściśle powiązane przez rytm, harmonię i struktury, które wykorzystują matematyczne wzory i proporcje do tworzenia estetycznych i emocjonalnych doznań. Z nieśmiałą ekscytacją przedstawiam moją pierwszą poważniejszą kompozycję, w której starałem się uchwycić te połączenia.
I Am Here – RELEARN – Mariusz Gromada (2024)
I Am Here – RELEARN – Mariusz Gromada (2024)
Deep Under – RELEARN – Mariusz Gromada (2024)
Deep Under – RELEARN – Mariusz Gromada (2024)
Scalar – zaawansowana aplikacja mobilna z silnikiem matematycznym mojego autorstwa
Zmiana w stosunku do 1.0.1 to poprawa kontroli składni w funkcji definiowanej przez użytkownika. Do wersji 1.0.1 użycie argumentu rekurencyjnego w funkcji definiowanej przez użytkownika powodowało zwiększenie liczby oczekiwanych parametrów wywołania funkcji. Wartość argumentu rekurencyjnego jest wyznaczana automatycznie, stąd w kontroli składni (weryfikując liczbę podanych parametrów) taki argument należy pominąć. Od wersji 1.0.2 liczba parametrów funkcji definiowanej przez użytkownika opiera się na bazie liczby argumentów pomniejszonej o argumenty rekurencyjne.
Przykład
Poniżej przykład demonstrujący działanie wprowadzonej zmiany – proszę przesunąć tekst w celu uwidocznienia komentarzy.
</p>
<p>import org.mariuszgromada.math.mxparser.*;</p>
<p>public class mXparserTests {<br />
public static void main(String[] args) {<br />
RecursiveArgument z = new RecursiveArgument("z","z(n-1)^2+c", "n"); /* Definicja argumentu rekurencyjnego */<br />
z.addBaseCase(0, 0); /* Definicja elementu początkowego */<br />
Constant c = new Constant("c", 0.3); /* Deklaracja stałej występującej w równaniu rekurencyjnym */<br />
z.addConstants(c); /* Wskazanie argumentowi oczekiwanej stałej 'c' */<br />
Function diff1 = new Function("diff1", "z(n) - z(n-1)", "n"); /* Definicja funkcji o parametrze n opartej również na argumencie rekurencyjnym */<br />
diff1.addArguments(z); /* Wskazanie funkcji oczekiwanego argumentu 'z' */<br />
System.out.println(diff1.calculate(10)); /* Obliczenie wartości funkcji + wyświetlenie wyniku */<br />
}<br />
}</p>
<p>
Rezultat
</p>
<p>0.17863353779409574</p>
<p>
Pozdrowienia,
Mariusz Gromada
Poza Liczbami: Inne Twórcze Przestrzenie
Matematyka i muzyka są ściśle powiązane przez rytm, harmonię i struktury
Matematyka i muzyka są ściśle powiązane przez rytm, harmonię i struktury, które wykorzystują matematyczne wzory i proporcje do tworzenia estetycznych i emocjonalnych doznań. Z nieśmiałą ekscytacją przedstawiam moją pierwszą poważniejszą kompozycję, w której starałem się uchwycić te połączenia.
I Am Here – RELEARN – Mariusz Gromada (2024)
I Am Here – RELEARN – Mariusz Gromada (2024)
Deep Under – RELEARN – Mariusz Gromada (2024)
Deep Under – RELEARN – Mariusz Gromada (2024)
Scalar – zaawansowana aplikacja mobilna z silnikiem matematycznym mojego autorstwa
Serdecznie zapraszam do zapoznania się z wysoce elastycznym interpreterem wyrażeń matematycznych. Oprogramowanie jest mojego autorstwa, powstało w 2010 roku i wtedy zostało opublikowane w serwisie SourceForge.net. Z racji, że teraz posiadam stronę o odpowiedniej tematyce, zdecydowałem się przygotować dedykowany opis, który znajdziecie pod tym linkiem. Dostępne są również tutorial oraz specyfikacja API.
Pozdrowienia,
Mariusz Gromada
Pobierz mXparser – parser matematyczny
Poza Liczbami: Inne Twórcze Przestrzenie
Matematyka i muzyka są ściśle powiązane przez rytm, harmonię i struktury
Matematyka i muzyka są ściśle powiązane przez rytm, harmonię i struktury, które wykorzystują matematyczne wzory i proporcje do tworzenia estetycznych i emocjonalnych doznań. Z nieśmiałą ekscytacją przedstawiam moją pierwszą poważniejszą kompozycję, w której starałem się uchwycić te połączenia.
I Am Here – RELEARN – Mariusz Gromada (2024)
I Am Here – RELEARN – Mariusz Gromada (2024)
Deep Under – RELEARN – Mariusz Gromada (2024)
Deep Under – RELEARN – Mariusz Gromada (2024)
Scalar – zaawansowana aplikacja mobilna z silnikiem matematycznym mojego autorstwa
Kilka dni temu Google udostępnił na zasadzie open source (licencja Apache 2.0) własną platformę „TensorFlow” przeznaczoną do uczenia maszynowego. TensorFlow obecnie wspiera większość usług Google, między innymi transkrypcja mowy na tekst, rozpoznawanie pisma ludzkiego, Google Translate, rozpoznawanie i kategoryzowanie obrazów, Gmail, i wiele innych. TensorFlow dostarcza wysokowydajne API w językach C++ i Python również w wersjach dla urządzeń mobilnych.
Geneza powstania TensorFlow
TensorFlow jest następcą rozwiązania DistBelief (Large Scale Distributed Deep Networks), którego Google używał z sukcesem od 2011 roku np. zwyciężając w konkursie Large Scale Visual Recognition Challenge 2014. DistBelief koncentrował się wyłącznie na sieciach neuronowych i był mocno osadzony w infrastrukturze Google, co uniemożliwiało udostępnienie platformy w ramach open source.
Na stronie www.tensorflow.org znajdziecie kody, pakiety instalacyjne, tutoriale i dokumentacje.
Pozdrowienia,
Mariusz Gromada
Poza Liczbami: Inne Twórcze Przestrzenie
Matematyka i muzyka są ściśle powiązane przez rytm, harmonię i struktury
Matematyka i muzyka są ściśle powiązane przez rytm, harmonię i struktury, które wykorzystują matematyczne wzory i proporcje do tworzenia estetycznych i emocjonalnych doznań. Z nieśmiałą ekscytacją przedstawiam moją pierwszą poważniejszą kompozycję, w której starałem się uchwycić te połączenia.
I Am Here – RELEARN – Mariusz Gromada (2024)
I Am Here – RELEARN – Mariusz Gromada (2024)
Deep Under – RELEARN – Mariusz Gromada (2024)
Deep Under – RELEARN – Mariusz Gromada (2024)
Scalar – zaawansowana aplikacja mobilna z silnikiem matematycznym mojego autorstwa
Skalar - kalkulator, funkcje, wykresy i skrypty - Made in Poland
Skalar to potężny silnik matematyczny i matematyczny język skryptowy, który zbudowany jest na bazie MathParser.org-mXparser
Kliknij na wideo i zobacz Skalara w akcji 🙂
Scalar Lite – wersja lite
Scalar Pro – wersja profesjonalna
Kontynuując przeglądanie strony, wyrażasz zgodę na używanie przez nas plików cookies. więcej informacji
Aby zapewnić Tobie najwyższy poziom realizacji usługi, opcje ciasteczek na tej stronie są ustawione na "zezwalaj na pliki cookies". Kontynuując przeglądanie strony bez zmiany ustawień lub klikając przycisk "Akceptuję" zgadzasz się na ich wykorzystanie.