1 Odwrotna Notacja Polska (ONP) (Reverse Polish Notation) Jan Łukasiewicz - 1929Wzó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
2 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
3 adikoln-ehkoln--fijn+ aPrzepisywanie symboli 3
4 adikoln-ehkoln--fijn+ adPrzepisywanie symboli 4
5 adikoln-ehkoln--fijn+ adiPrzepisywanie symboli 5
6 adikoln-ehkoln--fijn+ adikPrzepisywanie symboli 6
7 adikoln-ehkoln--fijn+ adikoPrzepisywanie symboli 7
8 adikoln-ehkoln--fijn+ adik*oA:=A [+-*] B 8
9 adikoln-ehkoln--fijn+ adik*olPrzepisywanie symboli 9
10 adikoln-ehkoln--fijn+ adik*olnPrzepisywanie symboli 10
11 adikoln-ehkoln--fijn+ adik*ol*nA:=A * B 11
12 adikoln-ehkoln--fijn+ adik*o-l*nA:=A - B 12
13 adikoln-ehkoln--fijn+ adi*(k*o-l*n)A:=A * B 13
14 adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)A:=A * B 14
15 adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)ePrzepisywanie symboli 15
16 adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)ehPrzepisywanie symboli 16
17 adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)ehkPrzepisywanie symboli 17
18 adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)ehkoPrzepisywanie symboli 18
19 adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)ehk*oA:=A * B 19
20 adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)ehk*olPrzepisywanie symboli 20
21 adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)ehk*olnPrzepisywanie symboli 21
22 adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)ehk*ol*nA:=A * B 22
23 adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)ehk*o-l*nA:=A - B 23
24 adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)eh*(k*o-l*n)Przepisywanie symboli 24
25 adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)e*h*(k*o-l*n)A:=A * B 25
26 adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)-e*h*(k*o-l*n)A:=A - B 26
27 adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)-e*h*(k*o-l*n)fPrzepisywanie symboli 27
28 adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)-e*h*(k*o-l*n)fiPrzepisywanie symboli 28
29 adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)-e*h*(k*o-l*n)fijPrzepisywanie symboli 29
30 adikoln-*ehkoln--fijn+ ad*i*(k*o-l*n)-e*h*(k*o-l*n)fijnPrzepisywanie symboli 30
31 + ad*i*(k*o-l*n)-e*h*(k*o-l*n)fij*nPrzepisywanie symboli 31
32 + ad*i*(k*o-l*n)-e*h*(k*o-l*n)fi*j*nA:=A * B 32
33 + ad*i*(k*o-l*n)-e*h*(k*o-l*n)f*i*j*nA:=A * B 33
34 + ad*i*(k*o-l*n)-e*h*(k*o-l*n)+f*i*j*nA:=A + B 34
35 a*(d*i*(k*o-l*n)-e*h*(k*o-l*n)+f*i*j*n)A:=A * B 35
36 KONIEC konwertowania wzoru w ONP do notacji nawiasowejadikoln-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
37 Przykład generowania wzoru wyznacznika w ONPnumer 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
38 Przykład generowania wzorów w ONP i nawiasowego38
39 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
40 Przykład zastosowania wzoru wyznacznika do obserwacji charakterystyk częstotliwościowych i czasowych filtra aktywnego 40
41 Przykład zastosowania wzorow wyznaczników do optymalizacji filtra aktywnego wg metody Monte-Carlo (~70000 char/sek na PIII-500 MHz) 41