Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.programming > #28767 > unrolled thread
| Started by | Borneq <borneq@antyspam.hidden.pl> |
|---|---|
| First post | 2016-09-18 11:06 +0200 |
| Last post | 2016-10-02 00:27 +0000 |
| Articles | 14 on this page of 34 — 8 participants |
Back to article view | Back to pl.comp.programming
Pisanie programów do obliczeń symbolicznych Borneq <borneq@antyspam.hidden.pl> - 2016-09-18 11:06 +0200
Re: [Blog] Pisanie programów do obliczeń symbolicznych bartekltg <bartekltg@gmail.com> - 2016-09-18 11:50 +0200
Re: [Blog] Pisanie programów do obliczeń symbolicznych platformowe głupki <NOSPAMtestowanije@go2.pl> - 2016-09-18 19:09 +0200
Re: [Blog] Pisanie programów do obliczeń symbolicznych bartekltg <bartekltg@gmail.com> - 2016-09-18 19:34 +0200
Re: Pisanie programów do obliczeń symbolicznych Nemrod <nemrod@the.crusader.knights.org> - 2016-09-18 21:20 +0200
Re: Pisanie programów do obliczeń symbolicznych Borneq <borneq@antyspam.hidden.pl> - 2016-09-19 11:55 +0200
Re: Pisanie programów do obliczeń symbolicznych Nemrod <nemrod@the.crusader.knights.org> - 2016-09-19 12:30 +0200
Re: Pisanie programów do obliczeń symbolicznych slawek <fake@fakeemail.com> - 2016-09-19 15:28 +0200
Re: Pisanie programów do obliczeń symbolicznych Nemrod <nemrod@the.crusader.knights.org> - 2016-09-19 16:18 +0200
Re: Pisanie programów do obliczeń symbolicznych "M.M." <mmarszik@gmail.com> - 2016-09-20 03:05 -0700
Re: Pisanie programów do obliczeń symbolicznych Borneq <borneq@antyspam.hidden.pl> - 2016-09-20 13:15 +0200
Re: Pisanie programów do obliczeń symbolicznych slawek <fake@fakeemail.com> - 2016-09-19 15:14 +0200
Re: Pisanie programów do obliczeń symbolicznych Nemrod <nemrod@the.crusader.knights.org> - 2016-09-19 15:56 +0200
Re: Pisanie programów do obliczeń symbolicznych Maciej Sobczak <see.my.homepage@gmail.com> - 2016-09-19 03:26 -0700
Re: Pisanie programów do obliczeń symbolicznych Nemrod <nemrod@the.crusader.knights.org> - 2016-09-19 12:40 +0200
Re: Pisanie programów do obliczeń symbolicznych slawek <fake@fakeemail.com> - 2016-09-19 15:32 +0200
Re: Pisanie programów do obliczeń symbolicznych Nemrod <nemrod@the.crusader.knights.org> - 2016-09-19 16:20 +0200
Re: Pisanie programów do obliczeń symbolicznych slawek <fake@fakeemail.com> - 2016-09-19 17:02 +0200
Re: Pisanie programów do obliczeń symbolicznych bartekltg <bartekltg@gmail.com> - 2016-09-19 20:05 +0200
Re: Pisanie programów do obliczeń symbolicznych Borneq <borneq@antyspam.hidden.pl> - 2016-09-20 13:18 +0200
Re: Pisanie programów do obliczeń symbolicznych bartekltg <bartekltg@gmail.com> - 2016-09-20 04:40 -0700
Re: Pisanie programów do obliczeń symbolicznych Nemrod <nemrod@the.crusader.knights.org> - 2016-09-20 16:27 +0200
Re: Pisanie programów do obliczeń symbolicznych bartekltg <bartekltg@gmail.com> - 2016-09-20 20:24 +0200
Re: Pisanie programów do obliczeń symbolicznych Nemrod <nemrod@the.crusader.knights.org> - 2016-09-20 21:12 +0200
Re: Pisanie programów do obliczeń symbolicznych bartekltg <bartekltg@gmail.com> - 2016-09-20 21:25 +0200
Re: Pisanie programów do obliczeń symbolicznych "M.M." <mmarszik@gmail.com> - 2016-09-20 05:22 -0700
Re: Pisanie programów do obliczeń symbolicznych slawek <fake@fakeemail.com> - 2016-09-20 15:21 +0200
Re: Pisanie programów do obliczeń symbolicznych bartekltg <bartekltg@gmail.com> - 2016-09-20 21:28 +0200
Re: Pisanie programów do obliczeń symbolicznych slawek <fake@fakeemail.com> - 2016-09-21 11:18 +0200
Re: Pisanie programów do obliczeń symbolicznych bartekltg <bartekltg@gmail.com> - 2016-09-21 11:33 +0200
Re: Pisanie programów do obliczeń symbolicznych slawek <fake@fakeemail.com> - 2016-09-19 14:41 +0200
Re: Pisanie programów do obliczeń symbolicznych Borneq <borneq@antyspam.hidden.pl> - 2016-09-19 17:36 +0200
Re: Pisanie programów do obliczeń symbolicznych slawek <fake@fakeemail.com> - 2016-09-19 18:14 +0200
Re: Pisanie program?w do oblicze? symbolicznych antispam@math.uni.wroc.pl - 2016-10-02 00:27 +0000
Page 2 of 2 — ← Prev page 1 [2]
| From | bartekltg <bartekltg@gmail.com> |
|---|---|
| Date | 2016-09-20 04:40 -0700 |
| Message-ID | <b8c2624c-4015-4a28-b9b7-d4f594c0e100@googlegroups.com> |
| In reply to | #28796 |
On Tuesday, September 20, 2016 at 1:18:09 PM UTC+2, Borneq wrote:
> W dniu 19.09.2016 o 20:05, bartekltg pisze:
> > Akurat podałeś problem łatwy do rozwiązania na kartce,
> > ale kosztowny dla głupiego programu.
>
> Na kartce problem, gdzie mamy wykładniczą ilość członów?
przecież widać, jak jest zbudowany.
Ma 2^50 jednomianów, ponumerujmy te jednomiany od 0 do 2^50-1
Dla j-tego jednomainu, jeśli na k-tej liczbie w zapisie
binarnym j jest 0, jednomian zawiera czynnik z_{2*(k-1)},
nie zawiera natomiast czynnika z_{2*(k-1)+1},
Jeśli na k-tym iejscuy jest 1 - odwrotnie.
Nie wiem po co mi taka lista, ale na kartce ją "mam".
Zresztą, pierwsze co należy dla tego wyrażenia zrobić
to podstawić
x_i = z_2i + z2i+1
y_i = z_2i - z2i+1
Wtedy nasz straszny wzór zamienia się na
x_1*x_2*...*x_50,
funkcja, którą dość łatwo sobie wyobrazić,
za to pozostała połowa wymairów (y_i) nie gra zadnej roli.
pzdr
bartekltg
[toc] | [prev] | [next] | [standalone]
| From | Nemrod <nemrod@the.crusader.knights.org> |
|---|---|
| Date | 2016-09-20 16:27 +0200 |
| Message-ID | <nrrgvs$jqr$1@node1.news.atman.pl> |
| In reply to | #28797 |
W dniu 2016-09-20 o 13:40, bartekltg pisze:
> On Tuesday, September 20, 2016 at 1:18:09 PM UTC+2, Borneq wrote:
>> W dniu 19.09.2016 o 20:05, bartekltg pisze:
>>> Akurat podałeś problem łatwy do rozwiązania na kartce,
>>> ale kosztowny dla głupiego programu.
>> Na kartce problem, gdzie mamy wykładniczą ilość członów?
> (...)
> Zresztą, pierwsze co należy dla tego wyrażenia zrobić
> to podstawić
> x_i = z_2i + z2i+1
> y_i = z_2i - z2i+1
> Wtedy nasz straszny wzór zamienia się na
> x_1*x_2*...*x_50,
Tak możesz zrobić, gdy masz jakieś konkretne wartości z_n {0<=n<=99}
i jest to proste, nie ma o czym gadać. Zadanie natomiast polega na tym,
że traktujemy wszystkie z_n jako niewiadome, i chcemy wymnożyć wszystko
i podać wynik. Mówiąc inaczej chcemy z postaci \Pi przejść do \Sigma.
Spróbuj teraz. Hehe :)
--
Nemrod Vargardsson
Pwt 32,41 Gdy miecz błyszczący wyostrzę
i wyrok wykona ma ręka,
na swoich wrogach się pomszczę,
odpłacę tym, którzy Mnie nienawidzą.
42 Upoję krwią moje strzały,
mój miecz napasie się mięsem,
krwią poległych i uprowadzonych,
głowami dowódców nieprzyjacielskich.
[toc] | [prev] | [next] | [standalone]
| From | bartekltg <bartekltg@gmail.com> |
|---|---|
| Date | 2016-09-20 20:24 +0200 |
| Message-ID | <nrruto$6le$1@node2.news.atman.pl> |
| In reply to | #28800 |
On 20.09.2016 16:27, Nemrod wrote:
> W dniu 2016-09-20 o 13:40, bartekltg pisze:
>> On Tuesday, September 20, 2016 at 1:18:09 PM UTC+2, Borneq wrote:
>>> W dniu 19.09.2016 o 20:05, bartekltg pisze:
>>>> Akurat podałeś problem łatwy do rozwiązania na kartce,
>>>> ale kosztowny dla głupiego programu.
>>> Na kartce problem, gdzie mamy wykładniczą ilość członów?
>> (...)
>> Zresztą, pierwsze co należy dla tego wyrażenia zrobić
>> to podstawić
>> x_i = z_2i + z2i+1
>> y_i = z_2i - z2i+1
>> Wtedy nasz straszny wzór zamienia się na
>> x_1*x_2*...*x_50,
>
> Tak możesz zrobić, gdy masz jakieś konkretne wartości z_n {0<=n<=99}
> i jest to proste, nie ma o czym gadać. Zadanie natomiast polega na tym,
> że traktujemy wszystkie z_n jako niewiadome, i chcemy wymnożyć wszystko
Przecież to zamiana wspołrzednych, czyli włqśnei transformata wykonana
na niewiadomych. Taka, ze wieomian 100 zmienynch wygląda w nowych
zmiennych ładniej.
Jakobian, jeśli potrzebny, to 2^50.
pzdr
bartekltg
[toc] | [prev] | [next] | [standalone]
| From | Nemrod <nemrod@the.crusader.knights.org> |
|---|---|
| Date | 2016-09-20 21:12 +0200 |
| Message-ID | <nrs1lj$97g$1@node2.news.atman.pl> |
| In reply to | #28801 |
W dniu 2016-09-20 o 20:24, bartekltg pisze: > Przecież to zamiana wspołrzednych, czyli włqśnei transformata wykonana > na niewiadomych. Taka, ze wieomian 100 zmienynch wygląda w nowych > zmiennych ładniej. (...) To i tak ci nic nie da. Żeby się o tym przekonać zastosuj teraz transformatę odwrotną do tego "ładniejszego" wielomianu. Chcemy konkretnego wyniku przejścia od \Pi do \Sigma. To teraz tak się uczy metody operatorowej, że rozwiązując równanie, wyznacza się tylko transformatę i to już koniec, bo wygląda "ładniej"? O tempora, o mores :P -- Nemrod Vargardsson Pwt 32,41 Gdy miecz błyszczący wyostrzę i wyrok wykona ma ręka, na swoich wrogach się pomszczę, odpłacę tym, którzy Mnie nienawidzą. 42 Upoję krwią moje strzały, mój miecz napasie się mięsem, krwią poległych i uprowadzonych, głowami dowódców nieprzyjacielskich.
[toc] | [prev] | [next] | [standalone]
| From | bartekltg <bartekltg@gmail.com> |
|---|---|
| Date | 2016-09-20 21:25 +0200 |
| Message-ID | <nrs2ep$9s7$1@node2.news.atman.pl> |
| In reply to | #28802 |
On 20.09.2016 21:12, Nemrod wrote: > W dniu 2016-09-20 o 20:24, bartekltg pisze: >> Przecież to zamiana wspołrzednych, czyli włqśnei transformata wykonana >> na niewiadomych. Taka, ze wieomian 100 zmienynch wygląda w nowych >> zmiennych ładniej. (...) > > To i tak ci nic nie da. Żeby się o tym przekonać zastosuj teraz > transformatę odwrotną do tego "ładniejszego" wielomianu. > Chcemy konkretnego wyniku przejścia od \Pi do \Sigma. > > To teraz tak się uczy metody operatorowej, że rozwiązując > równanie, wyznacza się tylko transformatę i to już koniec, > bo wygląda "ładniej"? O tempora, o mores :P Wydaje mi się, ze cały czas myślisz o czymś więcej niż napisałeś w postach. pzdr bartekltg
[toc] | [prev] | [next] | [standalone]
| From | "M.M." <mmarszik@gmail.com> |
|---|---|
| Date | 2016-09-20 05:22 -0700 |
| Message-ID | <0ae03b22-623f-406e-8062-886240ce23cb@googlegroups.com> |
| In reply to | #28796 |
On Tuesday, September 20, 2016 at 1:18:09 PM UTC+2, Borneq wrote: > W dniu 19.09.2016 o 20:05, bartekltg pisze: > > Akurat podałeś problem łatwy do rozwiązania na kartce, > > ale kosztowny dla głupiego programu. > > Na kartce problem, gdzie mamy wykładniczą ilość członów? Nie pamiętam już szczegółów, a wzorków i dziedziny nie mogę podać. Użyłem jakiegoś darmowego programu pod linuxa. Cały bajer polega właśnie na tym: 1) zainstalowałem 2) przeczytałem tutorial po łebkach w 15 minut 3) wpisałem dane 4) otrzymałem wyniki z 95% skutecznoscią. 5) zarobiłem 6) zapomniałem. Pozdrawiam
[toc] | [prev] | [next] | [standalone]
| From | slawek <fake@fakeemail.com> |
|---|---|
| Date | 2016-09-20 15:21 +0200 |
| Message-ID | <almarsoft.4713241730619268697@news.v.pl> |
| In reply to | #28787 |
On Mon, 19 Sep 2016 20:05:47 +0200, bartekltg <bartekltg@gmail.com> wrote: > Akurat podałeś problem łatwy do rozwiązania na kartce, > ale kosztowny dla głupiego programu. Według ciebie przeprowadzenie dowodu twierdzenia o czterech barwach jest łatwe do przeprowadzenia na kartce? Ciekawe czemu matematycy nie mogli jakoś temu podołać przez ponad sto lat, poczytaj sobie https://pl.m.wikipedia.org/wiki/Twierdzenie_o_czterech_barwach
[toc] | [prev] | [next] | [standalone]
| From | bartekltg <bartekltg@gmail.com> |
|---|---|
| Date | 2016-09-20 21:28 +0200 |
| Message-ID | <nrs2l8$9s7$2@node2.news.atman.pl> |
| In reply to | #28799 |
On 20.09.2016 15:21, slawek wrote: > On Mon, 19 Sep 2016 20:05:47 +0200, bartekltg <bartekltg@gmail.com> wrote: >> Akurat podałeś problem łatwy do rozwiązania na kartce, >> ale kosztowny dla głupiego programu. > > Według ciebie przeprowadzenie dowodu twierdzenia o czterech barwach Czytanie ze zrozumieniem ma przezłość. Przykład Nemroda, czyli wielomian wielu zmiennych mający pierdyliard składników po rozpisaniu. pzdr bartekltg
[toc] | [prev] | [next] | [standalone]
| From | slawek <fake@fakeemail.com> |
|---|---|
| Date | 2016-09-21 11:18 +0200 |
| Message-ID | <almarsoft.3483873633014760165@news.v.pl> |
| In reply to | #28804 |
On Tue, 20 Sep 2016 21:28:40 +0200, bartekltg <bartekltg@gmail.com> wrote: > Czytanie ze zrozumieniem ma przezłość. ??? > Przykład Nemroda, czyli wielomian wielu zmiennych Pogubiłeś się. Nemrod dał przykład A. Ja dałem inny przykład B. Nemrod określił B jako łatwy do rozwiązania na kartce papieru. Ty poparłeś Nemroda co do oceny przykładu B. Choć być może chciałeś w istocie rzeczy ocenić A. Fakt B jest niezaprzeczalny: dowód tw. o czterech barwach był przeprowadzony przy użyciu komputera. Ludzie bez takiego wspomagania nie dawali rady przez około sto lat. Więc nie ma co udawać że komputery są za głupie aby pomagać matematykom. Co do A: równie dobrze można narzekać że komputer nie potrafi wydrukować wszystkich cyfr liczby pi.
[toc] | [prev] | [next] | [standalone]
| From | bartekltg <bartekltg@gmail.com> |
|---|---|
| Date | 2016-09-21 11:33 +0200 |
| Message-ID | <nrtk4q$o2i$1@node2.news.atman.pl> |
| In reply to | #28805 |
On 21.09.2016 11:18, slawek wrote: > On Tue, 20 Sep 2016 21:28:40 +0200, bartekltg <bartekltg@gmail.com> wrote: >> Czytanie ze zrozumieniem ma przezłość. > > ??? > >> Przykład Nemroda, czyli wielomian wielu zmiennych > > Pogubiłeś się. Nemrod dał przykład A. Ja dałem inny przykład B. Nemrod > określił B jako łatwy do rozwiązania na kartce papieru. Ty poparłeś > Nemroda co do oceny przykładu B. Choć być może chciałeś w istocie rzeczy > ocenić A. Nie ja. Popatrz, na co odpisuję: Nemrod: *> Zastosowanie to chyba sprawdzanie umiejętności przedszkolaków. Tutaj *> nawet po 50 poziomach nawiasów program się wywala. A co do dopiero by *> było przy setkach albo tysiącach? Ja *Akurat podałeś problem łatwy do rozwiązania na kartce, *ale kosztowny dla głupiego programu. Widzisz fragment o poziomach nawiasów? To nie ma nic wspolnego z czterokolorowaniem. Nemrod mówi tu o swoim przykładzie z wielomianem wielu zmiennych. I do tego fragmentu się tam odnoszę. pzdr bartekltg
[toc] | [prev] | [next] | [standalone]
| From | slawek <fake@fakeemail.com> |
|---|---|
| Date | 2016-09-19 14:41 +0200 |
| Message-ID | <almarsoft.4336195781636081705@news.v.pl> |
| In reply to | #28767 |
On Sun, 18 Sep 2016 11:06:04 +0200, Borneq <borneq@antyspam.hidden.pl> wrote: > lispopodobnych ale ogólnego przeznaczenia C++ czy Javie. Ale jak napisać W Pythonie coś jest. Niespecjalnie wnikałem, bo Mathematica i Alfa albo dają radę albo nie. A jak nie, to trzeba robić to siecią neuronową, tj. użyć mózgu. Własnego.
[toc] | [prev] | [next] | [standalone]
| From | Borneq <borneq@antyspam.hidden.pl> |
|---|---|
| Date | 2016-09-19 17:36 +0200 |
| Message-ID | <nrp0m0$37f$1@node1.news.atman.pl> |
| In reply to | #28776 |
W dniu 19.09.2016 o 14:41, slawek pisze: > W Pythonie coś jest. Niespecjalnie wnikałem, bo Mathematica i Alfa albo > dają radę albo nie. A jak nie, to trzeba robić to siecią neuronową, tj. > użyć mózgu. Własnego. Jak na razie nic nie robiłem w Pythonie, może warto to nadrobić. Myślę że powolność Pythona wynika z tego, że obliczenia wykonywane są z dowolną precyzją i nie można tego wyłączyć. A pytanie tego wątku jest: jak w językach w rodzaju C++ czy Java zabrać się za pisanie dość prostego przekształcacza wyrażeń?
[toc] | [prev] | [next] | [standalone]
| From | slawek <fake@fakeemail.com> |
|---|---|
| Date | 2016-09-19 18:14 +0200 |
| Message-ID | <almarsoft.5562662509108457205@news.v.pl> |
| In reply to | #28784 |
On Mon, 19 Sep 2016 17:36:32 +0200, Borneq <borneq@antyspam.hidden.pl> wrote: > A pytanie tego wątku jest: jak w językach w rodzaju C++ czy Java zabrać > się za pisanie dość prostego przekształcacza wyrażeń? Normalnie. ;) W Pythonie jest IMHO kod źródłowy www.sympy.org Jakby tak się zastanowić... Problemem nie jest przekształcanie. Problemy to: upraszczanie (i to zaczynając od definicji czym ono jest); zapewnienie reguł niesprzecznych i zgodnych z tym co dozwolone w matematyce (błędne "reguły wnioskowania" były np. w Mathematica, w istocie rzeczy wiemy że błędy w programach się zdarzają, debugowanie tego to praca dla tysięcy ludzi na lata); prezentacja (tu Mathematica i Wofram Alpha są trudne do pobicia); wygoda (Alpha bije wszystko).
[toc] | [prev] | [next] | [standalone]
| From | antispam@math.uni.wroc.pl |
|---|---|
| Date | 2016-10-02 00:27 +0000 |
| Subject | Re: Pisanie program?w do oblicze? symbolicznych |
| Message-ID | <nspka1$nsc$1@z-news.wcss.wroc.pl> |
| In reply to | #28767 |
Borneq <borneq@antyspam.hidden.pl> wrote:
> By? kiedy? taki program Derive. Maxima jest napisana w Lispie czy j?zyku
> lispopodobnym. S? koby?y jak Matematica czy Wolfram.
> Nic nie powinno by? przeszkod?, aby pisa? to nie w j?zykach
> lispopodobnych ale og?lnego przeznaczenia C++ czy Javie.
Jak chcesz to wygodnie pisac to pojawia sie troche wymagan:
- elastyczne struktury danych (zaczynajac od list)
- odsmiecanie (garbage collection). Np. jak piszesz
a := f(g(x))
i g zwraca dynamicznie zaalokowana strukture danych to chesz
zeby ona znikenla kiedy jest niepotrzebna
- elastyczne przeciazanie lub beztypowosc. Np.
x * y
moze oznaczac mnozenie funkcji, wyrazen, macierzy lub wektorow.
Aby miec zgodnosc z tradycyjna notacja dobrze uzywac ten sam
symbol (czyli '*') na oznaczanie mnozenia.
Jesli podchodzisz do problemu powaznie to pewnie chcesz zeby
program szybko dzialal a wtedy potrzebujesz szybkie procedury
arytmetyki wielokrotnej precyzji, co na dzis oznacza wstawki
w asemblerze.
Ludzie pisali programy obliczen symbolicznych w roznych
jezykach, np. Pari-GP w C, giac, ginac i Yacas w C++, jest pare
w Javie. Jak sobie popatrzysz na Pari-GP to bedziesz wiedzial
dlaczego C slabo sie nadaje do obliczen symbolicznych: kod
jest dluzszy i malo czytelny w porownaniu z lepiej dobranym
jezykiem. Java i C++ sa troche lepsze, ale praktyce tez
maja problemy (teoretycznie templates + biblioteki wsparcia
daja odpowiednia elastycznosc w C++).
> Ale jak napisa?
> nawet najprostsze narz?dzie do przekszta?cania wzor?w? Raczej nie
> stosuje si? algorytm?w lecz pewne regu?y przekszta?ce?, kt?re program
> musi wiedzie? jak kt?re u?y?.
"Reguly przeksztalcen" to bylo 40 lat temu. Teraz kluczem
sa algorytmy. Na wstepie mozesz zajrzec do ksiazki
J.H. Davenport, Y. Siret, E. Tournier, "Computer Algebra -- Systems
and Algorithms for Algebraic Computation" dostepnej pod:
http://staff.bath.ac.uk/masjhd/masternew.pdf
Jako wskazowka: jedna z najprostszych operacji jest "skracanie"
ulamkow. Zwylke to sie robi obliczajac najwiekszy spolny dzielnik
(GCD). Dla liczb dobrze dziala algorytm Euklidesa. Dla
wielomianow wielu zmiennych tez mozna uzyc algorytm Euklidesa.
Ale najpierw trzeba troche teorii. Potem okazuje sie
ze naiwna implementacja jest powolna. Szybka implementacja
uzywa nowych pomyslow.
--
Waldek Hebisch
[toc] | [prev] | [standalone]
Page 2 of 2 — ← Prev page 1 [2]
Back to top | Article view | pl.comp.programming
csiph-web