2.1 Algebralliset sievennykset
Lausekkeiden manipulointi
Polynomit
> restart:
Määritellään tarkasteluja varten polynomit p1 ja p2:
> p1:=(x+2)^4;
> p2:=(x-3)*(x+3);
Nimilaputettu polynomi saadaan näkyviin antamalla syötteeksi polynomin nimi ja sen perään puolipiste:
> p1;
Polynomin aukikertominen tapahtuu komennolla expand . Nimetään aukikerrottu muoto polynomiksi p3:
> p3:=expand(p1);
Vastaavasti polynomi voidaan saattaa tulomuotoon komennolla factor :
> factor(p3);
> restart:
Murtolausekkeet
> restart:
Määritellään tarkasteluja varten polynomit p1 ja p2:
> p1:=(x+2)^4;
> p2:=(x-3)*(x+3);
Määritellään rationaalilauseke R polynomien p1 ja p2 osamääränä:
> R:=p1/p2;
Englanninkielisten nimien perusteella murtolausekkeen osoittajaa merkitään komennolla numer ja nimittäjää komennolla denom :
> numer(R);
> denom(R);
Nyt murtolauseketta voidaan muokata haluttuun muotoon tunnettujen komentojen avulla:
> expand(numer(R))/factor(denom(R));
> expand(numer(R))/expand(denom(R));
> factor(numer(R))/expand(denom(R));
> factor(numer(R))/factor(denom(R));
> restart:
Termien järjestely
> restart:
Määritellään lauseke p4:
> p4:=2*x^2*y^2-3*x^3*y*cos(x)+y^4*x+x*y;
Lauseke voidaan järjestää halutun termin mukaiseen järjestykseen komennolla sort :
> sort(p4,x);
> sort(p4,y);
> sort(p4,cos(x));
Komennolla sort voidaan manipuloida myös murtolauseketta:
> f3:=(x-y)/(y^2-x);
> sort(f3,x);
> sort(f3,y);
> restart:
Osamurtohajotelma
> restart:
Määritellään murtolauseke f4:
> f4:=(5*x^2-4*x+8)/(x^3-2*x^2+4*x-3);
Maplella voidaan muodostaa osamurtohajotelma murtolausekkeesta, jonka tekijöillä on rationaalikertoimiset nollakohdat. Tällöin osamurtohajotelma muodostetaan käyttämällä komentoa convert sekä lisämäärettä parfrac .
> convert(f4,parfrac,x);
> restart:
Esitysmuodon muuttaminen
> restart:
Funktion esitysmuotoa voidaan muuttaa komennolla convert . Muutetaan hyperbolinen kosini eksponenttifunktiomuotoon ja takaisin:
> emuoto:=convert(cosh(x),exp);
> convert(emuoto,trig);
Sievennetään vielä jälkimmäinen muoto tuloksen tarkistamiseksi. % -merkki viittaa edelliseen tulokseen.
> simplify(%);
Muodostetaan sinin sarjakehitelmä, jossa on kahdeksan ensimmäistä termiä. Komennolla convert sekä lisämääreellä polynom sarjakehitelmästä voidaan muodostaa siniä approksimoiva polynomi, johon kuuluu haluttu määrä sarjan termejä:
> t:=series(sin(x),x=0,9);
> t8:=convert(t,polynom);
> restart:
Kerrointen poimiminen
> restart:
Määritellään neljännen asteen polynomi p3:
> p3:=x^4+8*x^3+24*x^2+32*x+16;
Polynomista voidaan poimia yksittäisiä muuttujien kertoimia komennolla coeff :
> coeff(p3,x^3);
Komento coeffs luettelee polynomin muuttujien kertoimet muuttujan eksponentin mukaisessa järjestyksessä pienimmästä esiintyvästä eksponentista suurimpaan.
> coeffs(p3);
Jokin polynomin muuttujan yksittäinen kerroin, sekä myös vakio, voidaan poimia komennolla coeffs johon liitetään ko. termin järjestysluku hakasuluissa
> coeffs(p3)[1];
> coeffs(p3)[3];
Komento op puolestaan luettelee polynomin termit:
> op(p3);
Termien lukumäärä saadaan komennolla nops :
> nops(p3);
Maplessa voidaan muodostaa lista komennolla seq . Sitä hyödyntämällä voidaan poimia haluttujen tai vaikka kaikkien muuttujia sisältävien termien kertoimet:
> seq(coeff(p3,x^i),i=1..2);
> seq(coeff(p3,x^i),i=1..4);
Maplessa vektori muodostetaan komennolla vector . Kerrointen poimimista voidaan siten hyödyntää, jos vaikkapa halutaan määritellä vektori, jonka komponentteina ovat x: n eri potenssien kertoimet:
> k:=vector([seq(coeff(p3,x^i),i=1..4)]);
Vakiotermin voi poimia myös sijoittamalla lausekkeen muuttujalle arvo nolla komennolla subs , jolloin ainoastaan vakiotermi jää nollasta eroavaksi:
> subs(x=0,p3);
Summataan polynomin p3 muuttujaa x sisältävät termit apumuuttujaan m pienen for -silmukan avulla, ja vähennetään ne sitten polynomista p3. Tällöin jäljelle jää vakio-osa:
> m:=0:
> for i from 1 to 4 do
> m:=m+(coeff(p3,x^i)*x^i):
> od;
> vakio:=p3-m;
Määritellään lausekkeet f1 ja f2:
> f1:=a*cos(x)*x-3*y*x+2*sqrt(12)*x*y^2;
> f2:=exp(x)-3*log(x)*exp(x)+c;
Lauseke voidaan saattaa tulomuotoon haluttujen termien suhteen komennolla collect . Komennossa on mainittava lausekkeen nimi ja termi, jonka suhteen se saatetaan tulomuotoon:
> collect(f1,x);
> collect(f1,y);
> collect(f2,exp(x));
> restart:
Alkeisfunktiot
Itseisarvofunktio
> restart:
Itseisarvofunktiota merkitään komennolla abs :
> abs(x^2-5);
> abs(-3/4);
Kompleksiluvulle itseisarvo on yhtä kuin luvun normi:
> abs(4-3*I);
> abs(sqrt(3)*I*u^4*v);
Jälkimmäistä itseisarvolauseketta voidaan manipuloida expand ja combine -komennoilla. Määritelmässä parametrit u ja v oletetaan reaalisiksi.
> expand(%);
> combine(%,abs);
> restart:
Neliöjuuri
> restart:
Neliöjuurifunktiota merkitään komennolla sqrt :
> sqrt(x^2+1);
Neliöjuuri, samoin kuin muutkin juurilausekkeet, voidaan ilmaista myös murtopotenssina:
> (x^2+1)^(1/2);
> (x^2-1)^(1/3);
> restart:
Potenssifunktio
> restart:
Potenssifunktio kirjoitetaan muodossa kantaluku, ^ ja eksponentti.
> 2^x;
> 3^(x^2-3*x+1);
> restart:
Eksponenttifunktio
> restart:
Eksponenttifunktiossa Neprin lukua e merkitään funktiolla exp :
> exp(3*x^2-cos(2*x));
Hyperboliset funktiot voidaan muuntaa eksponenttifunktiomuotoonsa komennolla convert :
> convert(cosh(x),exp);
> convert(sinh(x),exp);
> restart:
Trigonometriset funktiot
> restart:
Trigonometrisille funktioille käytetään normaaleja merkintöjä sin , cos ja tan . Komennolla evalf saadaan lausekkeen numeerinen likiarvo.
> evalf(sin(30));
> cos(2*x+1);
> tan(5*x^2-3*x+2);
> restart:
Arcusfunktiot (trigonometristen käänteisfunktiot)
> restart:
Trigonometristen funktioiden käänteisfunktioille eli arcusfunktioille käytetään normaaleja merkintöjä arcsin , arccos ja arctan :
> arcsin(1/sqrt(2));
> arccos(1/sqrt(2));
> arctan(sqrt(5-2*sqrt(5)));
> arccos(x^2-exp(x^3-1));
> restart:
Logaritmifunktiot
> restart:
Logaritmissa kantaluku merkitään hakasulkeisiin ennen lauseketta, josta logaritmi otetaan. Oletusarvoisesti Maple muuntaa syötteen luonnolliseksi logaritmiksi:
> log[3](2*x^2);
Kymmenkantaista logaritmia merkitään log10 . Se täytyy kuitenkin ensin määritellä lataamalla käyttöön pakkaus log10:
> readlib(log10):
> log10(1000);
Maple muuntaa syötteen nytkin oletusarvoisesti luonnolliseksi logaritmiksi. Evaluointisääntöjen vuoksi ohjelma ei kuitenkaan laske lauseketta heti sievimpään muotoon, vaan jättää sen luonnollisiksi logaritmeiksi. Sievin muoto lausekkeesta saadaan sievennyskomennolla simplify . Edeltävää lauseketta ei tarvitse kirjoittaa kokonaan uudelleen, vaan siihen voi viitata suoraan % -merkillä. (Versioissa Maple V 5.0 ja sitä uudemmissa on käytössä prosenttimerkki, vanhemmissa lainausmerkki "):
> simplify(%);
Mikäli logaritmille ei merkitä erikseen kantalukua, Maple ymmärtää sen oletusarvoisesti luonnolliseksi logaritmiksi. Luonnollisesta logaritmista voidaan myös käyttää merkintää ln :
> log(x^2-sin(4*x));
> ln(x^2-sin(4*x));
> restart:
Hyperboliset funktiot
> restart:
Hyperbolisia funktioita merkitään normaaliin tapaan sinh , cosh , tanh :
> sinh(x);
> cosh(x^2+1);
> sinh(log(5));
Hyperboliset funktiot voidaan muuntaa eksponenttifunktiomuotoonsa komennolla convert :
> convert(cosh(x),exp);
> convert(sinh(x),exp);
> restart:
Areafunktiot (hyperbolisten käänteisfunktiot)
> restart:
Hyperbolisten funktioiden käänteisfunktiot eli areafunktiot merkitään Maplen syntaksissa etuliitteellä arc (vrt. arcusfunktiot):
> arcsinh(x);
> arccosh(1.3+3.4*I);
> restart: