Tečajna naloga iz računalništva "Študij zmožnosti knjižnice sistemskega paketa Maxima za reševanje posebnih matematičnih problemov." Sistem ukazov, izračuni v sistemu Maxima Lastnosti sistema Maximo zgodovina vrednosti

18.11.2023

Vsi ukazi se vnesejo v polje ENTER, ločilo ukazov je simbol; (podpičje). Po vnosu ukaza morate pritisniti tipko Enter 2 IN wxMaxima morate pritisniti Shift+Enter. za njegovo obdelavo in izpis rezultata. V prejšnjih različicah Maksima in nekatere njegove lupine (npr. xMaxima) prisotnost podpičja za vsakim ukazom je strogo zahtevana. Zaključek vnosa s simbolom $ (namesto s podpičjem) omogoča izračun rezultata vnesenega ukaza, vendar ga ne prikaže na zaslonu. V primeru, ko je treba izraz prikazati in ne izračunati, mora biti pred njim znak " (enojni narekovaj). Toda ta metoda ne deluje, če ima izraz eksplicitno vrednost, na primer, če je izraz zamenjan z vrednost enaka nič.

Dva enojna narekovaja zaporedoma, uporabljena za izraz v vhodnem nizu, povzročita, da se vhodni niz zamenja z rezultatom vrednotenja vhodnega izraza.

primer:

(%i3) sqrt(aa)+bb;

(%i4) "(sqrt(aa)+bb);

2.5.1 Zapis ukazov in rezultatov izračuna

Po vnosu se vsakemu ukazu dodeli serijska številka. V obravnavanem primeru so vneseni ukazi oštevilčeni s številkami 1–5 in ustrezno označeni (%i1), (%i2) itd.

Rezultat izračuna ima na primer tudi zaporedno številko itd., kje jaz- okrajšava iz angl. vnos (vnos) in O- Angleščina izhod. Ta mehanizem vam omogoča, da se izognete ponavljanju celotnega zapisa že izvedenih ukazov v naslednjih izračunih, na primer (%i1)+(%i2) bo pomenilo dodajanje izraza prvega ukaza izrazu drugega in kasnejši izračun rezultata . Uporabite lahko tudi številke rezultatov izračuna, na primer . Maxima ima poseben zapis za zadnji izvedeni ukaz - .

primer:

Izračunajte vrednost odvoda funkcije :

(%i1) diff(x^2*exp(-x),x);

(%i2) f(x):=""%;

Dvojni narekovaj pred znakom prejšnje operacije vam omogoča, da ta znak zamenjate z vrednostjo, tj. besedilni niz, dobljen kot rezultat diferenciacije.

Še en primer (z očitno vsebino):

2.6 Števila, operatorji in konstante

2.6.1 Vnos številskih podatkov

Pravila za vnos številk Maksima popolnoma enako kot za mnoge druge podobne programe. Cel in ulomek decimalnih ulomkov sta ločena s simbolom pike. Pred negativnimi številkami je znak minus. Števec in imenovalec navadnih ulomkov sta ločena s simbolom / (poševnica). Upoštevajte, da če je rezultat operacije določen simbolni izraz, vendar morate dobiti določeno številsko vrednost v obliki decimalnega ulomka, vam bo uporaba zastavice omogočila rešitev te težave. Zlasti omogoča prehod od navadnih ulomkov k decimalkam. Pretvorbo v obliko s plavajočo vejico prav tako izvede funkcija.

(%i2) 3/7+5/3, lebdeči;

(%i3) 3/7+5/3, številka;

(%i4) float(5/7);

2.6.2 Aritmetične operacije

Zapis aritmetičnih operacij v Maksima se ne razlikuje od klasične predstavitve: + , - , * , /. Potenciranje lahko označimo na več načinov: ^, ^^, **. Ekstrakcija korena stopnje n je zapisana kot stopinja. Operacija iskanja faktoriala je označena s klicajem, na primer 5!. Za povečanje prioritete operacije, kot v matematiki, se uporabljajo oklepaji: (). Seznam osnovnih aritmetičnih in logičnih operatorjev je podan v tabeli. 2.1 in tabelo. 2.2 spodaj.

Tabela 2.2. Logični operatorji
< primerjalni operator manj kot
> primerjalni operator večji od
<= primerjalni operator manj kot ali enako
>= primerjalni operator večji ali enak
# primerjalni operator ni enak
= primerjalni operator enako
in logični operator in
oz logični operator oz
ne logični operator ne

Računalniški matematični sistem Maxima je pravi veteran med programi tega razreda. Je vsaj dve desetletji starejša od mnogih svojih slavnih komercialnih kolegov. Prvotno imenovan Macsyma, je bil ustvarjen v poznih šestdesetih letih prejšnjega stoletja na slovitem Massachusetts Institute of Technology in ga je skoraj 20 let (od 1982 do 2001) podpiral Bill Schelter, zaradi katerega je pridobil svoje izjemne kvalitete in slavo v znanstvenem svetu. Podrobnosti o zgodovini sistema, namestitvenem modulu (velikosti le 10 MB), dokumentaciji, izvorni kodi in drugih povezanih informacijah lahko najdete na spletni strani paketa. Trenutna različica (5.9.0) deluje v sistemih Windows in Linux.

Kljub svoji skromni velikosti je Maxima zelo inteligenten izdelek, ki je sposoben reševati zapletene analitične probleme. Kot večina računalniških matematičnih sistemov je tudi tolmač ukazov, ki komunicira z uporabnikom na podlagi vprašanja-odgovora. Zato je delovno območje sistema zaporedje vhodno/izhodnih celic (slika 1), označenih z oznako (C za uporabniški vnos, D za rezultat) in številko. Ta zapis zagotavlja priročen povezovalni mehanizem, ki vam omogoča, da vnesete samo ime želene celice za dostop do enega od prejšnjih rezultatov.

Numerične operacije

riž. 1
Ne glede na izraze, s katerimi dela Maxima, si vedno prizadeva predstaviti rezultate v natančni analitični obliki. To v celoti velja za numerične izračune. Na primer, če izraz vnesete v ukazno vrstico 1/2+1/3 , potem bo rezultat 5/6 . Če želite dobiti vrednost kot število s plavajočo vejico, morate to izrecno podati. Najenostavnejši način je podati poseben deskriptor število za vnesenim izrazom ločeno z vejicami.

Za izračune z visoko natančnostjo Maxima podpira posebne operaterje, ki vam omogočajo izračun katere koli vrednosti s poljubno bitno mrežo (seveda v mejah zmogljivosti strojne opreme). To velja tudi za cela števila: njihova vrednost v sistemu ni omejena s programsko opremo. Poleg tega ima Maxima zelo spodobno hitrost dela z visoko natančno aritmetiko, ki omogoča izvajanje izračunov s celimi števili deset in sto tisoč števk z zmogljivostjo na ravni najboljših komercialnih sistemov.

Upoštevajte, da Maxima pri vhodnih izrazih upošteva velike in male črke. Če je njihov videz blizu imena vgrajene funkcije, program uporabi to funkcijo. Po tem pravilu greh, greh in SIN pomenijo isto stvar. Vendar so uporabniške spremenljivke in funkcije občutljive na velike in male črke -- X in x lahko predstavlja različne predmete.

Sistem podpira tudi kompleksno aritmetiko in številne dobro znane matematične konstante.


Analitične operacije

Zmožnost izvajanja kompleksnih analitičnih operacij in transformacij je bila seveda glavna lastnost izdelka, ki je Maximi zagotovila uspeh med strokovnjaki. To vključuje standardne analitične operacije (diferenciranje, integracija, izračun limitov), ​​predstavitev izrazov v razširjeni obliki, razširitev funkcij v serije, poenostavitve, transformacije, zamenjave itd. Poleg tega je ta funkcionalnost dovolj prilagodljiva za izvajanje resnih znanstvenih raziskav. Tako je mogoče najti delne in navadne odvode poljubnega reda, integrali so lahko tako navadni kot večkratni, neskončnost je dovoljena kot meja integracije itd. Kot vedno si bo program prizadeval predstaviti vse izračunane vrednosti v zaprta (natančna) oblika.

Če za vneseni izraz ne moremo dobiti nedvoumnega rezultata, bo program postavljal vodilna vprašanja v skoraj naravnem (angleškem) jeziku. Na primer, ko poskušate najti integral funkcije x n Maxima bo razjasnila, ali je enaka n+1 nič (kot je znano, je rezultat bistveno odvisen od tega). Vendar se takšnim vprašanjem lahko izognete, če vnaprej s posebnimi operatorji določite obseg spreminjanja uporabljenih parametrov in spremenljivk.

Analitično orodje podpira tudi algebraične operacije s polinomi (deljenje dveh polinomov, izračun največjega skupnega delitelja, faktoring) in trigonometrične izraze. Za praktične aplikacije imajo pomembno vlogo v sistem vgrajena orodja za reševanje enačb in sistemov različnih vrst - algebraičnih, transcendentalnih in diferencialnih.


Operacije linearne algebre

Maxima izvaja zelo napreden operacijski mehanizem vektorske matrike, ki omogoča zapletene algebraične izračune. Matrike uvaja univerzalni operator matrica, potem se zanje uporabijo običajne linearne operacije - seštevanje, odštevanje, množenje s skalarjem (za zapis uporabite naravni matematični zapis, npr. A+B), kot tudi transpozicija, inverzija, izračun determinant, spektralnih karakteristik itd.


Grafične zmogljivosti

Sodoben računalniško matematični sistem univerzalnega tipa mora imeti razvite zmožnosti vizualizacije podatkov. Na voljo so tudi v Maximi. Grafi v sistemu so izdelani z uporabo dveh funkcij - PLOT2D (dvodimenzionalni, slika 2) in PLOT3D (tridimenzionalni, slika 3). Kljub tej sorazmerno omejeni izbiri vam ta orodja omogočajo prikaz grafov različnih vrst na ravnini in v prostoru z dokaj finimi nastavitvami – s posebnimi operatorji ali argumenti funkcije nastavite število vozlišč mreže, na katerih je zgrajen zahtevani graf, podatke razponov, barv in drugih značilnosti. Poleg tega lahko uporabite interaktivne nastavitve za hitro spreminjanje debeline črt, vrtenje tridimenzionalne površine itd. Izbira izvoznih formatov Maxima je zelo ozka: risbe v programu so dejansko shranjene le v PostScriptu. Na splošno so vizualna orodja sistema razmeroma skromna, čeprav omogočajo pridobivanje visokokakovostne grafike nekaterih vrst.


Orodja za programiranje

Kot vsak računalniški matematični sistem tudi Maxima omogoča ustvarjanje zapletenih programov in njihovo uporabo pri težavah, ki bi jih bilo težko in neučinkovito rešiti z uporabo ukazne vrstice.

V najpreprostejšem primeru je funkcija po meri definirana neposredno v ukazni vrstici

MyFunc(x,y):=x^2+y^2;

Potem MyFunc se lahko uporablja skupaj z vgradnimi. Seveda pa sistem podpira tudi zahtevnejše zasnove. Telo funkcije omogoča operatorje za razvejanje, zanko, vhod/izhod itd. Programski jezik v Maximi ima nekaj funkcij, od katerih je najpomembnejša ta, da števila argumentov funkcije ni treba določiti. Drugo sestavljajo izjemno prilagodljiva orodja za delo z nizi, ki jih redko najdemo ne le v tradicionalnih jezikih, ampak tudi v specializiranih sistemih, vključno s SCM. Tukaj je nekaj primerov iz istega priročnika (dvopičje v Maximi pomeni dodelitev):
a:4*u;
a:%PI;
a[x]:skrivnost;

Vsi operatorji so pravilni in skupaj definirajo matriko, katere indeksi so števila 4 , 22/7 in niz "x", vrednosti elementov pa so izraz 4*u, število π (v Maximi je zapisano kot %PI) in niz znakov "skrivnost". Tako lahko skoraj vsak izraz deluje kot element matrike in njen indeks. Izvirne lastnosti Maxima niso omejene na te funkcije (na primer, podprti so celo nizi funkcij), vendar se ne bomo zadrževali v podrobnostih.

Na splošno je Maxima napisan v Lispu in neposredno podpira številne njegove ukaze. Lahko rečemo, da je Lisp jedro sistema in do njega lahko dostopamo med "nizkonivojskim" programiranjem. Vendar v večini primerov to ni potrebno. Maxima ponuja zadostno število že pripravljenih orodij, ki so veliko lažja za uporabo kot operaterji Lisp.

Po potrebi se programi shranijo v zunanje datoteke. Ukazi so zapisani v enaki obliki, kot so vneseni v sistem, obstajajo le nekatere funkcije za oblikovanje funkcij.

Skrb za uporabnika

Poleg dokumentacije, ki je na voljo na spletni strani izdelka, paket vključuje uvod v Maximo in vadnico o sistemu (oboje v formatu HTML) – podroben opis zadostuje za poglobljen uvod v vse njegove zmogljivosti. Vendar pa je med sejo dela s sistemom pogosto potrebna spletna pomoč. Za to Maxima ponuja funkcijo OPIS(), ki prikaže podrobne informacije o operaterju, ki zanima uporabnika (ki se mu posreduje kot argument). Ni pomembno, če se ne spomnite celotne sintakse, vnesite prvih nekaj črk imena – in Maxima bo prikazala vsa razpoložljiva imena, ki se začnejo s to kombinacijo znakov. Če te informacije niso dovolj, lahko uporabite funkcijo PRIMER(), ki bo ponudil tipične primere. Funkcije iste serije vključujejo DEMO(), ki izvaja programe iz demo datotek, ki so priložene sistemu. Rad bi opozoril na takšno lastnost sistema, kot je zmožnost predstavitve rezultatov izračuna v formatu TeX z uporabo funkcije, imenovane -- TEX().


zaključki

Upamo, da bodo bralci po tem kratkem gradivu še vedno imeli predstavo o Maximi kot resnično profesionalnem sistemu, namenjenem reševanju kompleksnih numeričnih in analitičnih problemov ter grafični predstavitvi podatkov. Kot je bilo omenjeno na začetku, je program močan zlasti v analitičnih izračunih in visoko natančni aritmetiki. Seveda Maxima še zdaleč ni popolna in v mnogih pogledih zaostaja za komercialnimi izdelki, kot sta Maple in Mathematica. Vendar to ne zmanjša njegovih prednosti - Maxima se lahko uporablja tako v izobraževalne namene kot kot platforma za precej resen znanstveni razvoj.

0

Sistem Maxima ima veliko vgrajenih funkcij. Vsako vgrajeno funkcijo lahko opišete v dokumentaciji v sistemu pomoči. Do pomoči lahko dostopate s funkcijsko tipko F1. Maxima ima tudi posebno funkcijo, ki zagotavlja informacije iz dokumentacije za določene besede. Skrajšana različica tega klica funkcije: ?? ime (slika 12). tukaj?? je ime operaterja, argument pa mora biti od njega ločen s presledkom. Operater?? prikaže seznam razdelkov pomoči in imen funkcij, ki vsebujejo določeno besedilo, nato pa vas pozovejo, da vnesete številko razdelka ali opis funkcije, ki si jo želite ogledati:

Slika 12. Klicanje pomoči pri ukazu sistema Maxima, ki vas zanima

Upoštevajte, da v sistemu Maxima ni jasne razlike med operaterji in funkcijami. Še več, vsaka izjava je pravzaprav funkcija.

Vse funkcije in operatorji Maxima delujejo ne samo z realnimi števili, temveč tudi s kompleksnimi števili. Sama kompleksna števila so zapisana v algebraični obliki, pri čemer je imaginarna enota označena z %i; to je v obliki a+b*%i, kjer A in b so realni in imaginarni deli števila.

Razmislimo sintaksa osnovne funkcije Maxima sistemi.

1. Aritmetični operatorji: + , -, *, /, -->. primer:

3. Logični operatorji: in, ali, ne. primer:

4. Funkcija za iskanje faktoriala števila: !

Faktorial je podan v najsplošnejši obliki in je pravzaprav gama funkcija (natančneje x! = gama(x+1)), torej je definiran na množici vseh kompleksnih števil razen negativnih celih števil. Faktoriel naravnega števila (in ničle) se samodejno poenostavi na isto naravno število.

5. Funkcija za iskanje semifaktorila je: !! (zmnožek vseh sodih (za sodi operand) ali lihih števil, ki so manjša ali enaka danemu).

6. Funkcija zanikanja sintaktične enakosti: # Zapis a#b je enakovreden ne a=b Primer:

7. Funkcija za iskanje modula števila x: abs(x) Modul je definiran za vsa kompleksna števila. primer:

8. Funkcija, ki vrne predznak števila x: signum(x)

9. Funkcije, ki vrnejo največjo in najmanjšo vrednost danih realnih števil: max(x1,...,xn) in min(x1,...,xn).

10. Nekatere vgrajene matematične funkcije:

sqrt(x) Kvadratni koren iz x
acos(x) Arkosinus argumenta x
acosh (x) Hiperbolični ark kosinus x
Acot(x) Arkotangens argumenta x
acoth (x) Hiperbolični ark kotangens argumenta x
acsc(x) Arkosekans argumenta x
acsch(x) Hiperbolični arkokosekans argumenta x
asec(x) Arsekant argumenta x
asech(x) Hiperbolični arkussekans argumenta x
asin(x) Arkus sinus argumenta x
asinh(x) Hiperbolični arkus sinus argumenta x
atan (x) Arktangens argumenta x
atanh (x) Hiperbolični arktangens argumenta x
cosh(x) Hiperbolični kosinus argumenta x
coth(x) Hiperbolični kotangens argumenta x
csc(x) Kosekans argumenta x
csch(x) Hiperbolični kosekans argumenta x
sek(x) Sekans argumenta x
sech(x) Hiperbolični sekans argumenta x
greh(x) Sinus od x
sinh(x) Hiperbolični sinus argumenta x
tan (x) Tangenta x
tanh(x) Hiperbolični tangens argumenta x
log(x) Naravni logaritem x
exp(x) Eksponent x

11. Funkcije za delo z matricami:

determinanta – iskanje determinante matrike:

lastne vrednosti - iskanje lastnih vrednosti matrike:

obrniti– pridobitev inverzne matrike:

manjše– definira minor matrike. Prvi argument je matrika, drugi in

tretji so indeksi vrstic in stolpcev:

rang– matrični rang:

podmatrika– vrne matrico, pridobljeno iz originala z odstranitvijo

ustrezne vrstice in/ali stolpce. Parametri so:

število vrstic za brisanje, izvirna matrika, število stolpcev za brisanje.

prestaviti– transpozicija matrike:

Sistemski jezik Maxima vsebuje osnovne izvršljive operatorje, ki jih najdete v katerem koli programskem jeziku. Poglejmo jih.

Operatorji za dodelitev vrednosti (izrazi za poimenovanje).

1. Operator “:” (operator za nastavitev vrednosti spremenljivke).

2. Operator “:=” (operator za podajanje uporabniške funkcije).

3.Razširjene različice operatorjev dodeljevanja in dodeljevanja funkcij, označenih z:: in::=.

Z uporabo operatorja niza uporabniških funkcij je delo z njim veliko lažje, saj se lahko nanj sklicujete po imenu in enostavno in priročno izračunate vrednosti funkcij na danih točkah.

Primer: poiščite vrednost funkcije f (x,y)=cosx + sin l na točki

Operator zanke. Operator zanke je mogoče določiti na več načinov. Način podajanja je odvisen od tega, ali je vnaprej znano, kolikokrat je treba telo zanke izvesti.

Primer: Nastavitev zanke za prikaz vrednosti spremenljivke A v območju od -3 do 10 v korakih po 5:

Naslednja pomembna lastnost sistema Maxima je delo s seznami in nizi.

Če želite ustvariti sezname, uporabite ukaz makelist. Na primer z uporabo ukaza

oblikovali smo seznam z imenom x, sestavljen iz desetih elementov, katerih vrednosti se najdejo po formuli.

Za oblikovanje nizov uporabite ukaz array. Na primer, z uporabo ukaza,

oblikovali smo dvodimenzionalni niz A, sestavljen iz 10 vrstic in 5 stolpcev. Za zapolnitev matrike z elementi bomo uporabili zanko s parametrom. na primer

Za prikaz elementov matrike na zaslonu lahko uporabite ukaz:

Matriko je mogoče oblikovati brez predhodne deklaracije. V naslednjem primeru smo oblikovali enodimenzionalni niz x, sestavljen iz 5 elementov, katerih vrednosti so izračunane s formulo x( jaz)=greh jaz

Neprijetnost pri delu z matrikami je, da so vrednosti elementov matrike prikazane v stolpcu. Veliko bolj priročno je, če so vrednosti (dvodimenzionalne) matrike prikazane kot matrika. Za te namene lahko uporabite ukaz genmatrix. Če želite na primer ustvariti dvodimenzionalni niz (matriko), morate podati ukaz v naslednji obliki:

Izpišimo nastalo matriko:

6. Najenostavnejše transformacije izrazov.

V sistemu Maxima je privzeto aktivna funkcija AutoSimplification, tj. sistem poskuša sam poenostaviti vneseni izraz brez kakršnih koli ukazov.

Primer. Recimo, da morate najti vrednost naslednjega številskega izraza:

Postavimo izraz po pravilih sistemskega jezika Maxima.

Kot lahko vidite, se je sistem odzval z vrednostjo izraza, čeprav nismo podali nobenega ukaza.

Kako lahko prisilite sistem, da ne izpiše rezultata, ampak sam izraz? Če želite to narediti, je treba funkcijo poenostavljanja onemogočiti z ukazom simp: false$. Potem dobimo:

Če želite aktivirati funkcijo poenostavljanja, morate podati ukaz simp:true$. Funkcija samodejne poenostavitve lahko deluje tako s številskimi kot z nekaterimi neštevilskimi izrazi. na primer

Pri vnosu se lahko sklicujemo na katero koli prejšnjo celico z njenim imenom in jo nadomestimo v poljubnih izrazih. Poleg tega je zadnja izhodna celica označena z %, zadnja vhodna celica pa z _. To vam omogoča dostop do najnovejšega rezultata, ne da bi vas motila njegova številka. Toda takih klicev v celice ne bi smeli zlorabljati, saj lahko pri ponovnem ocenjevanju celotnega dokumenta ali njegovih posameznih vnosnih celic pride do neskladja med številkami celic.

Primer. Poiščite vrednost izraza in rezultat povečajte za 5-krat.

Priporočljivo je, da namesto imen celic uporabite spremenljivke in njihova imena dodelite poljubnim izrazom. V tem primeru lahko kateri koli matematični izraz deluje kot vrednost spremenljivke.

Vrednosti imen spremenljivk se ohranijo skozi celotno delo z dokumentom. Spomnimo se, da če je treba odstraniti definicijo iz spremenljivke, je to mogoče storiti s funkcijo kill(name), kjer je ime ime izraza, ki ga je treba uničiti; poleg tega je to lahko ime, ki ste ga dodelili vi, ali katera koli vhodna ali izhodna celica. Podobno lahko počistite ves pomnilnik in sprostite vsa imena tako, da vnesete ukaz kill(all) (ali izberete meni Makhta-> Počisti spomin(Počisti pomnilnik)). V tem primeru bodo počiščene tudi vse V/I celice, njihovo številčenje pa se bo spet začelo od ena.

Funkcija samodejne poenostavitve ne more vedno poenostaviti izraza. Poleg tega obstaja več ukazov, ki so zasnovani za delo z izrazi: racionalnimi in iracionalnimi. Poglejmo jih nekaj.

rat (izraz) - preoblikuje racionalni izraz v kanonično obliko: odpre vse oklepaje, nato vse spravi na skupni imenovalec, sešteje in zmanjša; pretvori vsa števila v končnem decimalnem zapisu v racionalna števila. Kanonična oblika je samodejno "preklicana" v primeru kakršnih koli transformacij, ki niso racionalne

ratsimp (izraz) - poenostavi izraz z racionalnimi transformacijami. Deluje tudi "poglobljeno", kar pomeni, da se iracionalni deli izraza ne obravnavajo kot atomski, ampak so poenostavljeni, vključno z vsemi racionalnimi elementi v njih

fullratsimp(expression) - funkcija za poenostavitev racionalnega izraza z zaporedno uporabo funkcije ratsimp() na posredovan izraz. Zaradi tega je funkcija nekoliko počasnejša od ratsimp(), vendar daje bolj zanesljiv rezultat.

razširi (izraz) - razširi oklepaje v izrazu na vseh ravneh gnezdenja. Za razliko od funkcije ratexpand() ne reducira ulomkov na skupni imenovalec.

radcan(izraz) - funkcija za poenostavitev logaritemskih, eksponentnih in potenčnih funkcij z necelimi racionalnimi eksponenti, to je koreni (radikali).

Pogosto, ko poskušate poenostaviti izraz v Maximi, ga lahko dejansko samo naredite bolj zapletenega. Do povečanja rezultata lahko pride zaradi dejstva, da ni znano, katere vrednosti lahko sprejmejo spremenljivke, vključene v izraz. Da bi se temu izognili, morate omejiti vrednosti, ki jih lahko sprejme spremenljivka. To se naredi s funkcijo prevzame (pogoj). Zato je v nekaterih primerih najboljši rezultat mogoče doseči s kombinacijo radcan() z ratsimp() ali fullratsimp().

Operator zanke

Operator zanke je mogoče določiti na več načinov. Način podajanja je odvisen od tega, ali je vnaprej znano, kolikokrat je treba telo zanke izvesti.

Primer: nastavitev zanke za prikaz vrednosti spremenljivke a v območju od -3 do 10 v korakih po 5:

Primer: zanka za iskanje vsote vseh naravnih števil do vključno 50:

Naslednja pomembna lastnost sistema Maxima je delo s seznami in nizi.

Če želite ustvariti sezname, uporabite ukaz makelist. Na primer z uporabo ukaza

oblikovali smo seznam z imenom x, sestavljen iz desetih elementov, vrednost

Za oblikovanje nizov uporabite ukaz array. Na primer, z uporabo ukaza,

oblikovali smo dvodimenzionalni niz A, sestavljen iz 10 vrstic in 5 stolpcev. Za zapolnitev matrike z elementi bomo uporabili zanko s parametrom. na primer

T.N. Gubina, E.V. Andropova

Za prikaz elementov matrike na zaslonu lahko uporabite ukaz:

Matriko je mogoče oblikovati brez predhodne deklaracije. V naslednjem primeru smo oblikovali enodimenzionalni niz x, sestavljen iz 5 elementov, katerih vrednosti so izračunane po formuli x i = sin i.

Neprijetnost pri delu z matrikami je, da so vrednosti elementov matrike prikazane v stolpcu. Veliko bolj priročno je, če so vrednosti (dvodimenzionalne) matrike prikazane kot matrika. Za te namene lahko uporabite ukaz genmatrix. Če želite na primer ustvariti dvodimenzionalni niz (matriko), morate podati ukaz v naslednji obliki:

Izpišimo nastalo matriko:

1.7. Upravljanje procesa izračuna v Maximi

Računalniško matematični sistem Maxima spada med sisteme simbolne matematike. Zato (privzeto) sistem ustvari rezultat v simbolni obliki. To pomeni, da sistem, če ne podate posebnega ukaza

1. poglavje Osnove dela v računalniško matematičnem sistemu Maxima

ne bo nikoli predstavil rezultatov, pridobljenih med izračuni, v obliki približnega realnega števila. Na primer, če v vnosno celico vnesemo ukaz2, bomo dobili:

Če je treba rezultat, dobljen med izračuni, predstaviti v obliki realnega števila, je v tem primeru potrebno sistemu dati poseben ukaz. Na primer, lahko naredite tole: če želite dobiti približno vrednost 2, izberite točko menija Numerični izračuni → Lebdeti(na številko z eno natančnostjo) (ali na BigFloat

(z dvojno natančno številko)). Rezultat bo videti takole:

Znak "%" v Maximi se uporablja za sklicevanje na rezultat, pridobljen v zadnji seji. To je lahko priročno, če ni treba vnesti uporabniških spremenljivk in nato uporabiti dobljenih vrednosti.

Za nadzor nad procesom izračuna se uporablja t.i "računske ključavnice". Blokiranje se izvede z enim samim apostrofom. Njegovo bistvo:

če pred imenom funkcije ali spremenljivke postavite apostrof, je izračun same funkcije (ne pa njenih argumentov) ali spremenljivke blokiran;

če pred izrazom v oklepaju postavite apostrof, bo celoten izraz, tj. vse funkcije, ki so vanj vključene, in vsi argumenti teh funkcij ostali neizračunani.

Na primer, definirajmo funkcijo f x in primerjajmo rezultate, dobljene pri poskusu izračuna vrednosti funkcije v točki x = 0.

Kot lahko vidimo, je apostrof v prvem primeru blokiral poskus izračuna vrednosti funkcije.

Še en primer:

T.N. Gubina, E.V. Andropova

V nasprotju z blokiranjem izračunov lahko z uporabo dveh znakov apostrofa, nasprotno, prisilite sistem, da izvede izračune - "prisilni izračun". na primer

Kot lahko vidite, je sistem zavrnil izračun integrala, čeprav nismo dali ukaza za blokiranje izračunov. Če pred ukazom postavimo dvojni apostrof, dobimo naslednji rezultat:

Upoštevajte, da so v sistemu Maxima privzeto vsi koti merjeni v radianih. Če boste torej morali delati s koti v stopinjah, se boste morali spomniti formule za pretvorbo iz radianov v stopinje.

V terminologiji Maxima se neocenjena oblika izraza imenuje »samostalniška oblika«, ovrednotena oblika se imenuje »glagolska oblika«.

Naslednja pomembna točka pri delu v računalniških matematičnih sistemih je zmožnost zamenjave vrednosti spremenljivk ali delov izrazov v funkcije in izraze. Oglejmo si nekaj zmogljivosti sistema, ki so na voljo za te namene.

Na primer, v izrazu cos x 4sin x − x je treba zamenjati določeno vrednost namesto spremenljivk x, na primer .

1. poglavje Osnove dela v računalniško matematičnem sistemu Maxima

Tako vam ukaz subst omogoča zamenjavo vrednosti katere koli spremenljivke v izraz. Pravzaprav obstaja več ukazov za zamenjavo vrednosti v izraz ali funkcijo v Maximi.

1.8. Preproste izrazne transformacije

V sistemu Maxima je privzeto aktivna funkcija AutoSimplification, tj. sistem poskuša sam poenostaviti vneseni izraz brez kakršnih koli ukazov.

Primer. Naj bo treba najti vrednost naslednjega številskega izraza

1 1− 4

vpisa: 2 1 4 4 5 7 .

Postavimo izraz po pravilih sistemskega jezika Maxima.

Kot lahko vidite, se je sistem odzval z vrednostjo izraza, čeprav nismo podali nobenega ukaza.

Kako lahko prisilite sistem, da ne izpiše rezultata, ampak sam izraz? Če želite to narediti, je treba funkcijo poenostavljanja onemogočiti z ukazom simp: false$. Potem dobimo:

Če želite aktivirati funkcijo poenostavljanja, morate podati ukaz simp:true$. Funkcija samodejne poenostavitve lahko deluje tako s številskimi kot z nekaterimi neštevilskimi izrazi. na primer

T.N. Gubina, E.V. Andropova

Pri vnosu se lahko sklicujemo na katero koli prejšnjo celico z njenim imenom in jo nadomestimo v poljubnih izrazih. Poleg tega je zadnja izhodna celica označena z %, zadnja vhodna celica pa z _. To vam omogoča dostop do najnovejšega rezultata, ne da bi vas motila njegova številka. Toda takih klicev v celice ne bi smeli zlorabljati, saj lahko pri ponovnem ocenjevanju celotnega dokumenta ali njegovih posameznih vnosnih celic pride do neskladja med številkami celic.

izračunani rezultat je 5-krat.

Priporočljivo je, da namesto imen celic uporabite spremenljivke in njihova imena dodelite poljubnim izrazom. V tem primeru lahko kateri koli matematični izraz deluje kot vrednost spremenljivke.

Vrednosti imen spremenljivk se ohranijo skozi celotno delo z dokumentom. Spomnimo se, da če je treba odstraniti definicijo iz spremenljivke, je to mogoče storiti s funkcijo kill(name), kjer je ime ime izraza, ki ga je treba uničiti; poleg tega je to lahko ime, ki ste ga dodelili vi, ali katera koli vhodna ali izhodna celica. Podobno lahko počistite ves pomnilnik in sprostite vsa imena z vnosom ukaza kill(all) (ali izberete meni Maxima->Clear Memory). V tem primeru bodo počiščene tudi vse V/I celice, njihovo številčenje pa se bo spet začelo od ena.

Funkcija samodejne poenostavitve ne more vedno poenostaviti izraza. Poleg tega obstaja več ukazov, ki so zasnovani za delo z izrazi: racionalnimi in iracionalnimi. Poglejmo jih nekaj.

rat(izraz) - pretvori racionalni izraz v njegovo kanonično obliko: odpre vse oklepaje, nato vse pripelje na skupni imenovalec, sešteje in zmanjša; pretvori vsa števila v končnem decimalnem zapisu v racionalna števila. Kanonična oblika je samodejno "preklicana" v primeru kakršnih koli transformacij, ki niso racionalne

ratsimp(izraz) - poenostavi izraz z racionalnimi transformacijami. Deluje tudi »globinsko«, torej iracionalno

1. poglavje Osnove dela v računalniško matematičnem sistemu Maxima

deli izraza se ne obravnavajo kot atomski, ampak so poenostavljeni, vključno z vsemi racionalnimi elementi v njih

fullratsimp(izraz) - funkcija za poenostavitev racionalnega izraza z zaporedno uporabo funkcije ratsimp() na posredovan izraz. Zaradi tega je funkcija nekoliko počasnejša od ratsimp(), vendar daje bolj zanesljiv rezultat.

expand(expression) - razširi oklepaje v izrazu na vseh ravneh gnezdenja. Za razliko od funkcije ratexpand() ne reducira ulomkov na skupni imenovalec.

radcan(izraz) - funkcija za poenostavitev logaritemskih, eksponentnih in potenčnih funkcij z necelimi racionalnimi eksponenti, to je koreni (radikali).

Pogosto, ko poskušate poenostaviti izraz v Maximi, ga lahko dejansko samo naredite bolj zapletenega. Do povečanja rezultata lahko pride zaradi dejstva, da ni znano, katere vrednosti lahko sprejmejo spremenljivke, vključene v izraz. Da bi se temu izognili, morate omejiti vrednosti, ki jih lahko sprejme spremenljivka. To se naredi s funkcijo prevzame (pogoj). Zato je v nekaterih primerih najboljši rezultat mogoče doseči s kombinacijo radcan() z ratsimp() ali fullratsimp().

− a 2 b 2

aba1/4

Primer. Poenostavite izraz

b a b a 2 1/4

a 2− b 2.

Če uporabimo ukaz za racionalno poenostavitev našega izraza, dobimo:

Uporabimo funkcijo prevzame (pogoj) in z njo uvedemo omejitve njihovih vrednosti za nekatere spremenljivke, vključene v izraz:

T.N. Gubina, E.V. Andropova

Kot lahko vidite, smo dobili kompakten rezultat.

1.9. Reševanje algebrskih enačb in njihovih sistemov

IN Sistem Maxima za reševanje linearnih in nelinearnih enačb uporablja vgrajeno funkcijo reševanja, ki ima naslednjo sintakso:

reši (expr, x) – reši algebraično enačbo expr glede na spremenljivko x

reši (expr) – reši algebraično enačbo expr glede na neznano spremenljivko, vključeno v enačbo.

Na primer, rešimo linearno enačbo 5 x + 8 = 0. To storite tako, da uporabite gumb Reši v orodni vrstici, ob kliku se prikaže pogovorno okno Reši (slika 13). Vnesite prvotno enačbo in kliknite V redu.

riž. 13. Pogovorno okno za reševanje enačb

Posledično bo v delovnem dokumentu ustvarjen ukaz za rešitev enačbe in prikazana najdena rešitev:

1. poglavje Osnove dela v računalniško matematičnem sistemu Maxima

Ukaz za reševanje enačb lahko podamo tako, da enostavno preverimo najdene rešitve. Če želite to narediti, je priporočljivo uporabiti ukaz zamenjave ev.

Na primer, rešimo algebraično enačbo x 3 + 1 = 0 in preverimo najdene rešitve.

Kot rezultat smo dobili tri korenine. Pod imenom resh shranimo seznam vrednosti - korenine enačbe. Elementi seznama so v oglatih oklepajih in ločeni z vejico. Vsak tak element seznama se lahko sklicuje na njegovo številko. Uporabimo to pri preverjanju rešitev: zamenjajmo vsak koren po vrsti v prvotno enačbo.

Z ukazom allroots (expr) poiščite vse približne rešitve algebraične enačbe. Ta ukaz lahko uporabite, če ukaz za reševanje ne najde rešitve enačbe ali pa je rešitev preveč okorna, na primer za naslednjo enačbo: (1 + 2 x )3 = 13,5(1 + x 5 ) .

T.N. Gubina, E.V. Andropova

Z ukazom solve lahko najdete rešitve sistemov linearnih algebrskih enačb. Na primer, sistem linearnih enačb

М x +2 y +3 z +4 k +5 m =13

2 x+ y+ 2 z+ 3 k+ 4 m= 10

2 x + 2 y + z + 2 k + 3 m = 11 je mogoče rešiti na naslednji način:

2 x+ 2 y+ 2 z+ k+ 2 m= 6

ï 2 x +2 y +2 z +2 k +m =3

1. Vsako od enačb sistema shranimo pod imeni eq1, eq2, eq3, eq4, eq5.

2. Najdemo rešitev za sistem.

3. Preverimo najdeno rešitev:

Tako pri zamenjavi nastale rešitve v vsako od enačb sistema dobimo pravilne enakosti.

Funkcija reševanja sistema Maxima lahko rešuje tudi sisteme linearnih enačb, če rešitev ni edinstvena. Nato se zateče k zapisu, kot je %r_number, da pokaže, da je neznana spremenljivka prosta in lahko sprejme poljubno vrednost.

Za reševanje sistemov nelinearnih enačb lahko uporabite ukaz algsys. Na primer, poiščimo rešitev sistema enačb