Odwrotna Notacja Polska (ONP) (Reverse Polish Notation) Jan Łukasiewicz - 1929 Wzór w notacji nawiasowej: a*(d*i*(k*o-l*n)-e*h*(k*o-l*n))+f*i*j*n adikoln-ehkoln--fijn+ Wzór w Odwrotnej Notacji Polskiej: 1
Przykład konwersji wzoru w ONP adikoln-ehkoln--fijn+ do wzoru nawiasowego. Operandy wzoru to wskaźniki na: liczby, symbole, liczby i symbole (wielomiany) 2
adikoln-ehkoln--fijn+ a Przepisywanie symboli 3
adikoln-ehkoln--fijn+ ad Przepisywanie symboli 4
adikoln-ehkoln--fijn+ adi Przepisywanie symboli 5
adikoln-ehkoln--fijn+ adik Przepisywanie symboli 6
adikoln-ehkoln--fijn+ adiko Przepisywanie symboli 7
adikoln-ehkoln--fijn+ adik*o A:=A [+-*] B 8
adikoln-ehkoln--fijn+ adik*ol Przepisywanie symboli 9
adikoln-ehkoln--fijn+ adik*oln Przepisywanie symboli 10
adikoln-ehkoln--fijn+ adik*ol*n A:=A * B 11
adikoln-ehkoln--fijn+ adik*o-l*n A:=A - B 12
adikoln-ehkoln--fijn+ adi*(k*o-l*n) A:=A * B 13
adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n) A:=A * B 14
adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)e Przepisywanie symboli 15
adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)eh Przepisywanie symboli 16
adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)ehk Przepisywanie symboli 17
adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)ehko Przepisywanie symboli 18
adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)ehk*o A:=A * B 19
adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)ehk*ol Przepisywanie symboli 20
adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)ehk*oln Przepisywanie symboli 21
adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)ehk*ol*n A:=A * B 22
adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)ehk*o-l*n A:=A - B 23
adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)eh*(k*o-l*n) Przepisywanie symboli 24
adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)e*h*(k*o-l*n) A:=A * B 25
adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)-e*h*(k*o-l*n) A:=A - B 26
adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)-e*h*(k*o-l*n)f Przepisywanie symboli 27
adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)-e*h*(k*o-l*n)fi Przepisywanie symboli 28
adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)-e*h*(k*o-l*n)fij Przepisywanie symboli 29
adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)-e*h*(k*o-l*n)fijn Przepisywanie symboli 30
+ ad*i*(k*o-l*n)-e*h*(k*o-l*n)fij*n Przepisywanie symboli 31
+ ad*i*(k*o-l*n)-e*h*(k*o-l*n)fi*j*n A:=A * B 32
+ ad*i*(k*o-l*n)-e*h*(k*o-l*n)f*i*j*n A:=A * B 33
+ ad*i*(k*o-l*n)-e*h*(k*o-l*n)+f*i*j*n A:=A + B 34
a*(d*i*(k*o-l*n)-e*h*(k*o-l*n)+f*i*j*n) A:=A * B 35
KONIEC konwertowania wzoru w ONP do notacji nawiasowej adikoln-ehkoln--fijn+ a*(d*i*(k*o-l*n)-e*h*(k*o-l*n)+f*i*j*n) KONIEC konwertowania wzoru w ONP do notacji nawiasowej 36
Przykład generowania wzoru wyznacznika w ONP numer permutacji 1 2 3 4 5 6 7 8 9 10 11 12 13 a b c d e f i h g k l j o n m + 1 2 3 4 5 a b c d e f g h i j k l m n o Znak inwersji permutacji Każdej permutacji odpowiada jedna ścieżka w drzewie 37
Przykład generowania wzorów w ONP i nawiasowego 38
Po co generować wzory ? zmiana danych Wykonanie badań wielo wariantowych lub analitycznych w MatLab Przekazanie wzoru w pliku tekstowym do MatLab. Preprocesor danych o grafie obwodu Generacja wzoru nawiasowego a) Program symboliczny zmiana danych Wykonanie badań wielo wariantowych lub analitycznych Preprocesor danych o grafie obwodu Generacja lub modyfikacja wzoru ONP b) Program symboliczny Odpowiedź: Do obliczeń wielokrotnych: wykresy dynamiczne, optymalizacja, badania statystyczne itp.. 39
Przykład zastosowania wzoru wyznacznika do obserwacji charakterystyk częstotliwościowych i czasowych filtra aktywnego 40
Przykład zastosowania wzorow wyznaczników do optymalizacji filtra aktywnego wg metody Monte-Carlo (~70000 char/sek na PIII-500 MHz) 41