Ei-polynomi-tapaus

Kun generalsolvelle annetaan yhtälöitä, joissa on myös muita funktioita kuin polynomeja, se kutsuu aiemmin esiteltyä c05-työkalua.
> read `groebner.mpl`;
> nonpoly:={y=exp(x), x^2=y};
                                                  2
                         nonpoly := {y = exp(x), x  = y}

> generalsolve(nonpoly,[],[],verbose);

            The equations to be solved are not polynomial equations.

                  An initial guess will be generated randomly:

[-8.675500430, 1.619395277]

                      2
    c05([y - exp(x), x  - y], [x, y], [-8.675500430, 1.619395277], {verbose})

(Tarkkaavainen lukija huomasi, että edellisessä esimerkissä annettiin ratkaistavien yhtälöiden sijaan vain funktiot, joiden nollakohtia etsittiin. generalsolvelle yhtälöt voi antaa jommassa kummassa muodossa.)

Koska c05 vaatii alkuarvauksen, sellainen arvotaan, jos sellaista ei ole annettu. Koska nagin c05-rutiinit toimivat reaaliluvuilla ja reaaliluvut ovat "psykologisesti tiheämmässä" lähellä nollaa, alkuarvaus valitaan arpomalla satunnaisluku väliltä (-pi/2,pi/2) ja kuvaamalla se tangenttifunktiolla koko reaaliakselille.

Jotta c05 saataisiin käyttöön, se täytyy ensin alustaa sopivasti (ks. c05-dokumentaatio) ja ladata Mapleen:


> read `c05.mpl`;
> generalsolve(nonpoly,[],[],verbose);

            The equations to be solved are not polynomial equations.

                  An initial guess will be generated randomly:
[2.290230751, -2.306838152]


         ASP for c05 (function and jacobian) generated in file c05fj.m.

             ASP for c05 (function only) generated in file c05fun.m.

            Files c05fj.m,c05fun.m and c05.m copied to dopey.hut.fi.

                    Matlab calculations done in dopey.hut.fi.

                     Output files copied from dopey.hut.fi.

            [[x = -.7034674200000000, y = .4948664100000000],

                                     -14                       -14
                [.1387778800000000*10   , -.6217248900000000*10   ],

                [x = -.7034674200000000, y = .4948664100000000],

                                     -14                       -14
                [.1387778800000000*10   , -.6217248900000000*10   ]]

Tulokseksi saatiin neljä vektoria: ensimmäinen on C05PNM-rutiinilla laskettu ratkaisu, toinen funktion arvo tällä ratkaisulla, kolmas C05PBF-rutiinin antama ratkaisu ja neljäs funktion arvo tällä ratkaisulla.

Jos sana verbose jätetään pois, saadaan vain ratkaisu:


> generalsolve(nonpoly);

            [[x = -.7034674200000000, y = .4948664100000000],

                                      -11                      -11
                [-.1949107500000000*10   , .8861078500000000*10   ],

                [x = -.7034674200000000, y = .4948664100000000],

                                      -11                      -11
                [-.1949107500000000*10   , .8861078500000000*10   ]]

Seuraavaksi: Perusesimerkki Cox-Little-O'Shean kirjasta [1]
Kenrick Bingham 13.5.1996