Hanapin ang maximum ng isang function sa maxima program. Command system, mga kalkulasyon sa Maxima. Mga Conversion ng Pangunahing Expression

  • 08.03.2020

Ang Maxima math package ay isa sa mga pinakamahusay na libreng pagpapalit ng matcad.

Ang aklat-aralin na ito (sa pdf na format) ay maaaring gamitin sa loob ng mga disiplina ng mathematical analysis, differential equation, inilapat na software packages, atbp. sa iba't ibang specialty sa mga institusyon ng mas mataas na propesyonal na edukasyon, kung ang pamantayang pang-edukasyon ng estado ay nagbibigay para sa pag-aaral ng seksyong "Differential Mga equation", pati na rin sa mga elektibong kurso. Maaari rin itong maging kapaki-pakinabang para sa kakilala sa mga sistema ng computer mathematics sa mga espesyal na klase ng mga institusyong pang-edukasyon na may malalim na pag-aaral ng matematika at computer science.

  • Paunang salita
  • Kabanata 1. Mga pangunahing kaalaman sa trabaho sa sistema ng computer mathematics Maxima
    • 1.1. Tungkol sa sistema ng Maxima
    • 1.2. Pag-install ng Maxima sa isang personal na computer
    • 1.3. Maxima pangunahing interface ng window
    • 1.4. Nagtatrabaho sa mga cell sa Maxima
    • 1.5. Paggawa gamit ang Maxima Help System
    • 1.6. Maxima function at command
    • 1.7. Pagkontrol sa Proseso ng Compute sa Maxima
    • 1.8. Mga Conversion ng Pangunahing Expression
    • 1.9. Paglutas ng mga algebraic equation at kanilang mga sistema
    • 1.10. Mga kakayahan sa graphics
  • Kabanata 2. Numerical na Paraan para sa Paglutas ng Differential Equation
    • 2.1. Pag-unawa sa Differential Equation
    • 2.2. Mga numerical na pamamaraan para sa paglutas ng problemang Cauchy para sa isang ordinaryong differential equation ng unang order
      • 2.2.1. Pamamaraan ni Euler
      • 2.2.2. Paraan ng Euler-Cauchy
      • 2.2.3. Paraan ng Runge-Kutta 4 na mga order ng magnitude
    • 2.3. Solusyon ng mga problema sa boundary value para sa ordinaryong differential equation sa pamamagitan ng finite difference method
    • 2.4. Grid method para sa paglutas ng mga partial differential equation
  • Kabanata 3. Paghahanap ng mga solusyon sa differential equation sa Maxima system
    • 3.1. Mga built-in na function para sa paghahanap ng mga solusyon sa mga differential equation
    • 3.2. Paglutas ng mga differential equation at ang kanilang mga sistema sa simbolikong anyo
    • 3.3. Konstruksyon ng mga trajectory at larangan ng mga direksyon ng mga differential equation.
    • 3.4. Pagpapatupad ng mga numerical na pamamaraan para sa paglutas ng problemang Cauchy para sa mga ordinaryong differential equation
      • 3.4.1. Pamamaraan ni Euler
      • 3.4.2. Paraan ng Euler-Cauchy
      • 3.4.3. Paraan ng Runge-Kutta
    • 3.5. Pagpapatupad ng finite-difference method para sa paglutas ng boundary value problem para sa ordinaryong differential equation
    • 3.6. Pagpapatupad ng paraan ng grid para sa mga partial differential equation
  • Mga takdang-aralin sa tulong sa sarili
  • Panitikan

Paunang salita

Ang teorya ng differential equation ay isa sa pinakamalaking sangay ng modernong matematika. Ang isa sa mga pangunahing tampok ng differential equation ay ang direktang koneksyon ng teorya ng differential equation sa mga aplikasyon. Sa pag-aaral ng anumang pisikal na phenomena, ang mananaliksik, una sa lahat, ay lumilikha ng kanyang mathematical idealization o mathematical model, isinulat ang mga pangunahing batas na namamahala sa hindi pangkaraniwang bagay na ito sa mathematical form. Kadalasan ang mga batas na ito ay maaaring ipahayag sa anyo ng mga differential equation. Ito ang mga modelo ng iba't ibang phenomena ng continuum mechanics, chemical reactions, electrical at magnetic phenomena, atbp. Sa pamamagitan ng pag-aaral ng nakuhang differential equation kasama ng mga karagdagang kundisyon, na kadalasang itinatakda sa anyo ng mga paunang kondisyon at hangganan, ang mathematician ay tumatanggap ng impormasyon tungkol sa ang kababalaghan na nangyayari, kung minsan ay alamin ang kanyang nakaraan at hinaharap.

Upang gumuhit ng isang modelo ng matematika sa anyo ng mga equation ng kaugalian, bilang panuntunan, kailangan mong malaman lamang ang mga lokal na koneksyon at hindi kailangan ng impormasyon tungkol sa buong pisikal na kababalaghan sa kabuuan. Ginagawang posible ng modelo ng matematika na pag-aralan ang kababalaghan sa kabuuan, mahulaan ang pag-unlad nito, gumawa ng mga pagtatasa ng husay sa mga sukat na nagaganap dito sa paglipas ng panahon. Batay sa pagsusuri ng mga differential equation, natuklasan ang mga electromagnetic wave.

Masasabi nating ang pangangailangang lutasin ang mga differential equation para sa mga pangangailangan ng mekanika, iyon ay, upang mahanap ang mga trajectory ng mga paggalaw, sa turn, ay ang impetus para sa paglikha ni Newton ng isang bagong calculus. Ang bagong calculus ay inilapat sa mga problema ng geometry at mechanics sa pamamagitan ng ordinaryong differential equation.

Isinasaalang-alang ang modernong pag-unlad ng teknolohiya ng computer at ang masinsinang pag-unlad ng isang bagong direksyon - matematika ng computer - ang mga kumplikadong software na tinatawag na mga sistema ng matematika ng computer ay naging laganap at in demand.

Ang computer mathematics ay isang bagong direksyon sa agham at edukasyon na lumitaw sa intersection ng pangunahing matematika, impormasyon at mga teknolohiya ng computer. Ang computer mathematics system (SCM) ay isang kumplikadong mga programa na nagbibigay ng awtomatiko, pare-pareho sa teknolohiya at saradong pagproseso ng mga problema sa matematika kapag nagtatakda ng kundisyon sa isang espesyal na ibinigay na wika.

Ang mga modernong sistema ng computer mathematics ay mga programang may multi-window na graphical na interface, isang binuo na sistema ng tulong, na ginagawang mas madaling makabisado at magamit ang mga ito. Ang mga pangunahing uso sa pag-unlad ng SCM ay ang paglago ng mga kakayahan sa matematika, lalo na sa larangan ng analytical at symbolic computations, isang makabuluhang pagpapalawak ng visualization tool para sa lahat ng mga yugto ng computations, ang malawakang paggamit ng 2D at 3D graphics, ang pagsasama ng iba't ibang mga system sa isa't isa at iba pang mga tool sa software, malawak na pag-access sa Internet, samahan ng magkasanib na gawain sa mga proyektong pang-edukasyon at pang-agham sa Internet, ang paggamit ng mga animation at mga tool sa pagproseso ng imahe, mga tool sa multimedia, atbp.

Ang isang mahalagang pangyayari na hanggang kamakailan ay humadlang sa malawakang paggamit ng SCM sa edukasyon ay ang mataas na halaga ng propesyonal na software na pang-agham. Kamakailan, gayunpaman, maraming mga kumpanya na bumuo at namamahagi ng mga naturang programa na naroroon (sa pamamagitan ng Internet - http://www.softline.ru) mga nakaraang bersyon ng kanilang mga programa para sa libreng paggamit, malawakang gumagamit ng isang sistema ng mga diskwento para sa mga institusyong pang-edukasyon, namamahagi ng demo o mga trial na bersyon nang libre. mga programa.

Bilang karagdagan, lumilitaw ang mga libreng analog ng mga sistema ng matematika ng computer, halimbawa, Maxima, Scilab, Octave, atbp.

Tinutuklas ng tutorial na ito ang mga kakayahan ng Maxima Computer Mathematics System para sa paghahanap ng mga solusyon sa mga differential equation.

Bakit Maxima?

Una, ang Maxima system ay isang open source, non-profit na proyekto. Nabibilang ang Maxima sa isang klase ng mga produkto ng software na ipinamamahagi sa ilalim ng GNU GPL (General Public License).

Pangalawa, ang Maxima ay isang programa para sa paglutas ng mga problema sa matematika sa parehong numero at simbolikong paraan. Ang saklaw ng mga kakayahan nito ay napakalawak: mga aksyon para sa pagbabago ng mga expression, pagtatrabaho sa mga bahagi ng mga expression, paglutas ng mga problema sa linear algebra, pagsusuri sa matematika, combinatorics, teorya ng numero, pagsusuri ng tensor, mga problema sa istatistika, pag-plot ng mga function sa eroplano at sa espasyo sa iba't ibang mga sistema ng coordinate, atbp. atbp.

Pangatlo, kasalukuyang may makapangyarihan, mahusay at "friendly" cross-platform na graphical interface ang Maxima na tinatawag na WxMaxima (http://wxmaxima.sourceforge.net).

Ang mga may-akda ng libro ay nag-aaral ng mga sistema ng computer mathematics tulad ng Mathematica, Maple, MathCad sa loob ng sampung taon. Samakatuwid, alam ang mga kakayahan ng mga produktong ito ng software, lalo na para sa paghahanap ng mga solusyon sa mga differential equation, nais kong pag-aralan ang isyu na may kaugnayan sa organisasyon ng mga kalkulasyon sa simbolikong anyo sa mga sistema ng matematika ng computer na malayang ipinamamahagi.

Ang manwal na ito ay nagsasabi tungkol sa mga posibilidad ng pag-aayos ng proseso ng paghahanap ng mga solusyon sa mga differential equation batay sa sistema ng Maxima, ay naglalaman ng pangkalahatang impormasyon sa pag-aayos ng trabaho sa system.

Ang manwal ay binubuo ng 3 kabanata. Ang unang kabanata ay nagpapakilala sa mga mambabasa ng wxMaxima graphical na interface ng sistema ng Maxima, ang mga kakaibang gawain dito, ang syntax ng wika ng system. Ang pagsusuri ng system ay nagsisimula sa kung saan mo mahahanap ang distribution kit ng system at kung paano ito i-install. Sa ikalawang kabanata, ang mga pangkalahatang tanong ng teorya ng mga differential equation, ang mga numerical na pamamaraan para sa kanilang solusyon ay isinasaalang-alang.

Ang ikatlong kabanata ay nakatuon sa mga built-in na function ng Maxima computer mathematics system para sa paghahanap ng mga solusyon sa mga ordinaryong differential equation ng 1st at 2nd order sa simbolikong anyo. Gayundin sa ikatlong kabanata, ang pagpapatupad sa sistema ng Maxima ng mga numerical na pamamaraan para sa paglutas ng mga differential equation ay ipinapakita. Sa dulo ng manwal, may mga gawain para sa independiyenteng solusyon.

Inaasahan namin na ang isang malawak na hanay ng mga gumagamit ay magiging interesado sa manual at ito ay magiging kanilang katulong sa pag-master ng isang bagong tool para sa paglutas ng mga problema sa matematika.

T.N. Gubina, E.V. Andropova
Yelets, Hulyo 2009

P.S. Mabilis na pagsisimula: upang isagawa ang mga utos at mga function sa mwMaxima, kailangan mo munang ipasok ang mismong command at pagkatapos ay pindutin ang crtl + Enter.

Ang Maxima system ay may maraming built-in na function. Para sa bawat built-in na function, maaari kang makakuha ng paglalarawan sa dokumentasyon sa help system. Maa-access mo ang tulong gamit ang F1 function key. Ang Maxima ay mayroon ding espesyal na function na nagpapakita ng impormasyon mula sa dokumentasyon para sa mga partikular na salita. Isang pinaikling bersyon ng tawag sa function na ito: ?? pangalan (Larawan 12). Dito?? ay ang pangalan ng operator at ang argumento ay dapat na ihiwalay mula dito ng isang puwang. Operator?? ay nagpapakita ng isang listahan ng mga seksyon ng tulong at mga pangalan ng function na naglalaman ng tinukoy na teksto, pagkatapos ay nag-aalok sila upang ilagay ang numero ng seksyong iyon o paglalarawan ng function na gusto mong tingnan:

Larawan 12. Tumatawag ng tulong para sa utos ng interes sa sistema ng Maxima

Tandaan na walang malinaw na pagkakaiba sa pagitan ng mga operator at function sa Maxima. Bukod dito, ang bawat operator ay talagang isang function.

Gumagana ang lahat ng mga function at operator ng Maxima sa mga kumplikadong numero pati na rin sa mga tunay na numero. Ang mga kumplikadong numero mismo ay nakasulat sa algebraic form, na may isang haka-haka na yunit na tinutukoy ng% i; iyon ay, sa anyong a + b *% i, kung saan a at b- ayon sa pagkakabanggit, ang tunay at haka-haka na mga bahagi ng numero.

Isipin mo pangunahing function syntax Maxima system.

1. Mga operator ng aritmetika: +, -, *, /, ->. Halimbawa:

3. Mga lohikal na operator: at, o, hindi. Halimbawa:

4. Function para sa paghahanap ng factorial ng isang numero:!

Ang factorial ay ibinibigay sa pinaka-pangkalahatang anyo at, sa katunayan, isang gamma function (mas tiyak, x! = Gamma (x + 1)), ibig sabihin, ito ay tinukoy sa hanay ng lahat ng kumplikadong numero, maliban sa negatibo mga integer. Ang factorial mula sa isang natural na numero (at zero) ay awtomatikong pinasimple sa isang natural na numero.

5. Function para sa paghahanap ng chill semi-factorial: !! (ang produkto ng lahat ng kahit na (para sa isang even operand) o odd na mga numero na mas mababa sa o katumbas ng ibinigay na isa).

6. Function ng negasyon ng syntactic equality: # Ang A # b ay katumbas ng hindi a = b. Halimbawa:

7. Function para sa paghahanap ng modulus ng isang numero x: abs (x) Ang modulus ay tinukoy para sa lahat ng kumplikadong numero. Halimbawa:

8. Function na nagbabalik ng sign ng numerong x: signum (x)

9. Mga function na nagbabalik ng pinakamalaki at pinakamaliit na halaga ng mga ibinigay na tunay na numero: max (x1, ..., xn) at min (x1, ..., xn).

10. Ilang built-in na function ng matematika:

sqrt (x) Square root ng x
acos (x) Inverse cosine ng argumento x
acosh (x) Hyperbolic inverse cosine ng argumento x
acot (x) Arc cotangent ng argumento x
acoth (x) Inverse hyperbolic cotangent ng argumento x
acsc (x) Arcsecant ng argumento x
acsch (x) Hyperbolic arcsecant ng argumento x
asec (x) Arksecant ng argumento x
asech (x) Hyperbolic inverse secant ng argumento x
asin (x) Arcsine ng argumento x
asinh (x) Inverse hyperbolic sine ng argumento x
atan (x) Arctangent ng argumento x
atanh (x) Hyperbolic arctangent ng argumento x
mura (x) Hyperbolic cosine ng argumento x
coth (x) Hyperbolic cotangent ng argumento x
csc (x) Cosecant ng argumento x
csch (x) Hyperbolic cosecant ng argumento x
seg (x) Secant of argument x
sech (x) Hyperbolic secant ng argumento x
kasalanan (x) Sine ng argumento x
sinh (x) Hyperbolic sine ng argumento x
kayumanggi (x) Padaplis ng argumento x
tanh (x) Hyperbolic tangent ng argumento x
log (x) Natural logarithm ng x
exp (x) Exponent x

11. Mga function para sa pagtatrabaho sa mga matrice:

determinant - paghahanap ng determinant ng isang matrix:

eigenvalues ​​- paghahanap ng eigenvalues ​​ng isang matrix:

baligtarin- pagkuha ng inverse matrix:

menor de edad- tumutukoy sa menor de edad ng matrix. Ang unang argumento ay isang matrix, ang pangalawa at

ang pangatlo ay ang mga index ng row at column, ayon sa pagkakabanggit:

ranggo- ang ranggo ng matrix:

submatrix- ibinabalik ang matrix na nakuha mula sa orihinal sa pamamagitan ng pagtanggal

katumbas na mga hilera at / o mga hanay. Habang sumusunod ang mga parameter

bilang ng mga tinanggal na row, orihinal na matrix, bilang ng mga column na tatanggalin.

transpose- transposisyon ng matrix:

Ang wika ng sistema ng Maxima ay naglalaman ng mga pangunahing executable na operator na matatagpuan sa anumang programming language. Isaalang-alang natin sila.

Mga operator ng pagtatalaga ng mga halaga (pagpangalan ng mga expression).

1. Operator ":" (operator para sa pagtatakda ng halaga ng isang variable).

2.Operator ": =" (operator ng pagtatakda ng function ng user).

3. Mga pinahabang bersyon ng assignment at function assignment operator, na tinutukoy ng :: at :: =, ayon sa pagkakabanggit.

Ang paggamit ng operator para sa pagtatakda ng isang function ng user ay ginagawang mas madaling magtrabaho kasama nito, dahil maaari mong i-refer ito sa pamamagitan ng pangalan at madali at maginhawang kalkulahin ang mga halaga ng function sa mga ibinigay na punto.

Halimbawa: hanapin ang halaga ng isang function f (x, y) = cosx + kasalanan y sa punto

Operator ng loop. Maaaring tukuyin ang loop operator sa maraming paraan. Ang paraan ng pagtatakda ay depende sa kung ito ay kilala nang maaga kung gaano karaming beses na kinakailangan upang maisagawa ang katawan ng loop.

Halimbawa: pagtukoy ng isang loop upang i-output ang mga halaga ng isang variable a sa hanay mula -3 hanggang 10 sa mga hakbang ng 5:

Ang isa pang mahalagang tampok ng sistema ng Maxima ay gumana sa mga listahan at array.

Ang makelist command ay ginagamit upang bumuo ng mga listahan. Halimbawa, gamit ang command

nakabuo kami ng isang listahan na pinangalanang x, na binubuo ng sampung elemento, ang mga halaga nito ay matatagpuan sa pamamagitan ng formula.

Ang array command ay ginagamit upang bumuo ng mga array. Halimbawa, gamit ang command,

nakabuo kami ng two-dimensional array A, na binubuo ng 10 row at 5 column. Upang punan ang array ng mga elemento, gagamit kami ng loop na may parameter. Halimbawa,

Upang ipakita ang mga elemento ng array sa screen, maaari mong gamitin ang command:

Ang array ay maaaring mabuo nang walang paunang anunsyo. Sa sumusunod na halimbawa, nabuo namin ang isang one-dimensional array x, na binubuo ng 5 elemento, ang mga halaga ay kinakalkula ng formula x ( i) = kasalanan i

Ang abala ng pagtatrabaho sa mga array ay ang mga halaga ng mga elemento ng array ay output sa isang column. Ito ay mas maginhawa kung ang mga halaga ng array (two-dimensional) ay ipinapakita bilang isang matrix. Para sa mga layuning ito, maaari mong gamitin ang utos ng genmatrix. Halimbawa, upang bumuo ng isang two-dimensional array (matrix), dapat mong tukuyin ang command sa sumusunod na form:

Ipakita natin ang resultang array:

6. Ang pinakasimpleng pagbabago ng mga expression.

Bilang default, ang auto-simplification function ay aktibo sa Maxima, i.e. sinusubukan ng system na gawing simple ang ipinasok na expression mismo nang walang anumang utos.

Halimbawa. Ipagpalagay na gusto mong mahanap ang halaga ng sumusunod na numeric na expression:

Itakda natin ang expression ayon sa mga patakaran ng wika ng sistema ng Maxima.

Tulad ng nakikita mo, ibinalik ng system ang halaga ng expression, kahit na hindi namin tinukoy ang anumang utos.

Paano mo mailalabas ang system hindi ang resulta, ngunit ang expression mismo? Upang gawin ito, ang pagpapagaan ng function ay dapat na hindi pinagana gamit ang simp: false $ command. Pagkatapos makuha namin:

Upang maisaaktibo ang pagpapagaan ng function, dapat mong tukuyin ang simp: true $ command. Ang tampok na autosimplification ay maaaring gumana sa parehong numeric at ilang non-numeric na expression. Halimbawa,

Kapag pumapasok, maaari tayong sumangguni sa alinman sa mga nakaraang cell sa pamamagitan ng pangalan nito, na pinapalitan ito sa anumang mga expression. Bilang karagdagan, ang huling output cell ay ipinahiwatig ng%, at ang huling input cell ay ipinahiwatig ng _. Nagbibigay-daan ito sa iyo na sumangguni sa huling resulta nang hindi naaabala sa kung ano ang numero nito. Ngunit ang mga naturang pagtukoy sa mga cell ay hindi dapat abusuhin, dahil kapag muling sinusuri ang buong dokumento o ang mga indibidwal na input cell nito, maaaring mayroong pagkakaiba sa pagitan ng mga numero ng cell.

Halimbawa. Hanapin ang halaga ng expression at dagdagan ang resulta ng 5 beses.

Maipapayo na gumamit ng mga variable sa halip na mga pangalan ng cell at italaga ang kanilang mga pangalan sa anumang mga expression. Sa kasong ito, ang anumang mathematical expression ay maaaring kumilos bilang ang halaga ng variable.

Ang mga halaga ng mga variable na pangalan ay nai-save sa buong trabaho kasama ang dokumento. Alalahanin na kung kinakailangan upang alisin ang kahulugan mula sa isang variable, maaari itong gawin gamit ang function na kill (pangalan), kung saan ang pangalan ay ang pangalan ng expression na papatayin; at ito ay maaaring alinman sa pangalang itinalaga mo, o anumang input o output cell. Katulad nito, maaari mong i-clear ang lahat ng memorya at palayain ang lahat ng mga pangalan sa pamamagitan ng pagpasok ng kill (all) command (o pagpili sa menu Machta-> I-clear ang memorya(I-clear ang Memory)). Sa kasong ito, ang lahat ng I / O na mga cell ay iki-clear din, at ang kanilang pagnunumero ay muling magsisimula sa isa.

Ang autosimplification function ay hindi palaging may kakayahang pasimplehin ang isang expression. Bilang karagdagan dito, mayroong isang bilang ng mga utos na idinisenyo upang gumana sa mga expression: makatuwiran at hindi makatwiran. Tingnan natin ang ilan sa kanila.

daga (expression) - nagko-convert ng rational expression sa canonical form: pinapalawak ang lahat ng bracket, pagkatapos ay dinadala ang lahat sa isang common denominator, sums at abbreviates; ginagawang rational ang lahat ng numero sa huling decimal notation. Ang canonical form ay awtomatikong "kinansela" sa kaso ng anumang mga pagbabagong hindi makatwiran

ratsimp (expression) - Pinapasimple ang pagpapahayag sa pamamagitan ng mga makatwirang pagbabago. Gumagana din ito ng "malalim", iyon ay, ang mga hindi makatwirang bahagi ng expression ay hindi itinuturing na atomic, ngunit pinasimple, kasama ang lahat ng mga makatwirang elemento sa loob ng mga ito.

fullratsimp (expression) - function na gawing simple ang rational expression sa pamamagitan ng sequential application sa naipasa na expression ng ratsimp () function. Dahil dito, medyo mas mabagal ang paggana kaysa sa ratsimp (), ngunit nagbibigay ito ng mas maaasahang resulta.

palawakin (expression) - Pinapalawak ang mga panaklong sa isang expression sa lahat ng antas ng nesting. Hindi tulad ng ratexpand () function, hindi ito nagdadala ng mga fractional terms sa isang common denominator.

radcan (expression) - isang function ng pagpapasimple ng logarithmic, exponential at exponential function na may non-integer rational exponents, iyon ay, mga ugat (radicals).

Kadalasan, kapag sinusubukang gawing simple ang isang expression sa Maxima, maaari lamang itong magdagdag ng pagiging kumplikado. Ang pagtaas sa resulta ay maaaring mangyari dahil sa ang katunayan na hindi alam kung anong mga halaga ang maaaring kunin ng mga variable na kasama sa expression. Upang maiwasan ito, dapat kang magpataw ng mga paghihigpit sa mga halaga na maaaring kunin ng isang variable. Ginagawa ito gamit ang assume (condition) function. Samakatuwid, sa ilang mga kaso, ang pinakamahusay na resulta ay maaaring makamit sa pamamagitan ng pagsasama ng radcan () sa ratsimp () o fullratsimp ().

Dahil sa seryeng ito ng mga artikulo ay pag-uusapan natin ang tungkol sa isang matematikal na programa para sa mga simbolikong kalkulasyon, para sa isang panimula, ang ilang mga salita tungkol sa kung ano ang mga napakasagisag na ito o, bilang sila ay tinatawag ding, analytical na mga kalkulasyon, bilang kabaligtaran sa mga numerical na kalkulasyon. Ang mga computer ay kilala na gumagana gamit ang mga numero (integer at floating point). Halimbawa, ang solusyon sa equation na x 2 = 2 x + 1 ay maaaring makuha bilang −0.41421356 at 2.41421356, at 3 x = 1 bilang 0.33333333. Ngunit gusto kong makakita ng hindi isang tinatayang digital na tala, ngunit ang eksaktong halaga, ibig sabihin, 1 ± √2 sa unang kaso at 1/3 sa pangalawa. Ang pinakasimpleng halimbawang ito ay kung saan nagsisimula ang pagkakaiba sa pagitan ng numerical at symbolic computation. Ngunit bukod dito, mayroon ding mga problema na hindi kayang lutasin sa numero. Halimbawa, ang mga parametric equation, kung saan sa anyo ng isang solusyon ay kinakailangan upang ipahayag ang hindi alam sa mga tuntunin ng isang parameter; o paghahanap ng derivative ng isang function; Oo, halos anumang medyo pangkalahatang problema ay malulutas lamang sa simbolikong anyo. Samakatuwid, hindi nakakagulat na para sa klase ng mga problemang ito, lumitaw ang mga programa sa computer na gumagana hindi lamang sa mga numero, ngunit sa halos anumang mga bagay sa matematika, mula sa mga vectors hanggang sa mga tensor, mula sa mga function hanggang sa mga integro-differential equation, atbp.

Maxima sa Agham at Edukasyon

Kabilang sa mathematical software para sa analytical (symbolic) na mga kalkulasyon, ang pinakakilalang komersyal ( Maple, Mathematica); ito ay isang napakalakas na tool para sa isang siyentipiko o guro, nagtapos na mag-aaral o mag-aaral, na nagpapahintulot na i-automate ang pinakakaraniwang gawain at nangangailangan ng espesyal na atensyon na bahagi ng trabaho, na nagpapatakbo gamit ang analytical data recording, iyon ay, sa katunayan, mga mathematical formula. Ang nasabing programa ay maaaring tawaging isang programming environment, na may pagkakaiba na ang mathematical notation na pamilyar sa isang tao ay gumaganap bilang mga elemento ng isang programming language.

Ang programa na naging paksa ng artikulo ay gumagana sa parehong mga prinsipyo at nagbibigay ng katulad na pag-andar; ang pinaka-radikal na pagkakaiba nito ay hindi ito komersyal o sarado. Sa madaling salita, pinag-uusapan natin ang tungkol sa libreng software. Sa katunayan, ang paggamit ng libreng software ay mas natural para sa pangunahing agham kaysa sa komersyal, dahil ang modelo na ginagamit sa libreng software ay isang modelo ng pagiging bukas at pagiging naa-access ng lahat ng mga pag-unlad. Malinaw, ang parehong mga katangian ay likas sa mga resulta ng aktibidad na pang-agham. Gamit ang pagkakatulad na ito ng mga diskarte, maaari talagang isaalang-alang ng isa ang mga extension ng functionality ng libreng software o karagdagang mga library na maaaring malikha para sa kanilang mga pangangailangan sa proseso ng siyentipikong pananaliksik, bilang isang mahalagang bahagi ng mga resulta ng naturang pananaliksik. At ang mga resultang ito ay maaaring gamitin at ipamahagi sa pagpapasya ng user nang walang pagsasaalang-alang sa mga paghihigpit na ipinataw ng mga lisensya ng orihinal na software. Sa kaso ng komersyal na software, na pagmamay-ari ng tagagawa nito, ang mga naturang kalayaan ay lubos na limitado, mula sa kawalan ng kakayahan na malaya (at legal) na ilipat ang mismong software kasama ang mga pag-unlad at hanggang sa posibleng pag-claim ng patent mula sa software developer kung sakaling mangyari. ng pamamahagi ng mga self-made na karagdagang mga aklatan dito.

Sa kabilang banda, ang pangunahing direksyon, bukod sa mga pang-agham na pag-unlad, kung saan ang mga naturang programa ay hinihiling, ay mas mataas na edukasyon; at ang paggamit ng libreng software para sa mga pangangailangang pang-edukasyon ay isang tunay na pagkakataon kapwa para sa unibersidad at para sa mga mag-aaral at guro na magkaroon sa kanilang pagtatapon ng mga legal na kopya ng naturang software nang walang malaki, o kahit na anumang makabuluhang gastos sa pera.

Binubuksan ng artikulong ito ang serye sa libreng programa para sa analytical computing. Maxima... Sa cycle na ito, susubukan kong ibigay sa iyo ang pinaka kumpletong impression ng programa: ito ay iuukol sa parehong mga prinsipyo at pangunahing kaalaman sa pagtatrabaho kasama si Maxima, pati na rin ang isang paglalarawan ng mas malawak na mga kakayahan at praktikal na mga halimbawa nito.

Medyo kasaysayan

Ang kasaysayan ng proyekto, na kilala ngayon bilang Maxima, ay nagsimula noong huling bahagi ng 60s sa maalamat na MIT (Massachusetts Institute of Technology), nang, sa loob ng balangkas ng malaking proyekto ng MAC na umiral noong mga taong iyon, nagsimula ang trabaho sa isang simbolikong programa sa pag-compute. , na nakatanggap ng pangalang Macsyma (mula sa MAC Symbolic MAnipulation). Ang arkitektura ng system ay binuo noong Hulyo 1968, ang programming mismo ay nagsimula noong Hulyo 1969. Napili ang Lisp bilang wika para sa pagbuo ng system, at ipinakita ng kasaysayan kung gaano ito ang tamang pagpipilian: sa mga programming language na umiiral noon panahon, ito lamang ang patuloy na umuunlad at ngayon - halos kalahating siglo pagkatapos ng pagsisimula ng proyekto. Ang mga prinsipyong pinagbabatayan ng proyekto ay kalaunan ay pinagtibay ng pinaka aktibong pagbuo ng mga komersyal na programa - Mathematica at Maple; kaya, si Macsyma ay talagang naging ninuno ng buong direksyon ng simbolikong mga programa sa matematika. Naturally, ang Macsyma ay isang saradong komersyal na proyekto; pinondohan ito ng mga pampubliko at pribadong organisasyon, kabilang dito ang gumagawa ng kasaysayan na ARPA (Advanced Research Projects Agency; tandaan ang ARPAnet - ang ninuno ng Internet?), ang Departments of Energy & Defense (DOE at DOD). Ang proyekto ay aktibong umuunlad, at ang mga organisasyong kumokontrol dito ay nagbago nang higit sa isang beses, gaya ng palaging nangyayari sa mga matagal nang saradong proyekto. noong 1982, sinimulan ni Propesor William Schelter na bumuo ng kanyang bersyon batay sa parehong code, na tinatawag na Maxima. noong 1998, nakuha ng Shelter ang mga karapatang i-publish ang code sa ilalim ng GPL mula sa DOE. Ang orihinal na proyekto ng Macsyma ay natapos noong 1999. Ipinagpatuloy ni William Shelter ang Maxima hanggang sa kanyang kamatayan noong 2001. Ngunit, na karaniwan para sa open source software, ang proyekto ay hindi namatay kasama ng may-akda at tagapangasiwa nito. Ngayon ang proyekto ay patuloy na aktibong umuunlad, at ang pakikilahok dito ay ang pinakamahusay na calling card para sa mga mathematician at programmer sa buong mundo.

Ilang salita tungkol sa programa

Sa ngayon, ang Maxima ay inilabas para sa dalawang platform: Unix-compatible system, i.e. Linux at * BSD, at MS Windows. Ako, siyempre, ay magsasalita tungkol sa bersyon ng Linux.

Ang Maxima mismo ay isang console program, at iginuhit nito ang lahat ng mathematical formula na may mga ordinaryong simbolo ng text. Ito ay may hindi bababa sa dalawang pakinabang. Sa isang banda, ang Maxima mismo ay maaaring gamitin bilang isang kernel, na bumubuo sa ibabaw nito ng mga graphical na interface para sa bawat panlasa. Marami sa kanila ngayon; sa oras na ito ay tututuon ko ang dalawa sa pinakasikat (tingnan ang sidebar) - at ang pinaka-visual at maginhawa sa trabaho, at pag-uusapan natin ang natitira sa susunod na mga isyu; ang mga ito ay kawili-wili din sa kanilang sariling paraan, bagaman sila ay mas tiyak.

Sa kabilang banda, sa kanyang sarili, nang walang anumang mga add-on ng interface, ang Maxima ay hindi hinihingi sa hardware at maaaring gumana sa mga computer na walang sinuman ang isinasaalang-alang ngayon kahit na mga computer (maaaring ito ay may kaugnayan, halimbawa, para sa isang unibersidad o isang laboratoryo ng pananaliksik, na malamang na walang pera upang i-update ang kanilang fleet ng mga makina, ngunit ang pangangailangan para sa software para sa simbolikong pag-compute ay maaaring lumitaw).

Ang mga pangalan ng mga function at variable sa Maxim ay case sensitive, ibig sabihin, magkaiba ang uppercase at lowercase na mga letra sa mga ito. Hindi ito magiging bago sa sinumang nakipag-ugnayan na sa mga sistemang sumusunod sa POSIX o mga programming language gaya ng C o Perl. Maginhawa rin ito mula sa punto ng view ng isang matematiko, kung saan kaugalian din na ang iba't ibang mga bagay (halimbawa, mga set at ang kanilang mga elemento, ayon sa pagkakabanggit) ay maaaring tukuyin ng malalaking titik at maliliit na titik.

Upang magsimulang magtrabaho kasama ang programa, kailangan mo ang Maxima package; kung wala ito sa mga karaniwang repositoryo ng iyong distribution kit, maaari mo itong dalhin sa website ng proyekto, ang address kung saan ay ibinigay sa sidebar.

Ang mga prinsipyo ng pagtatrabaho sa programa ay hindi nakasalalay sa kung aling interface ang pipiliin mo, kaya susubukan kong i-abstract hangga't maaari mula sa partikular na interface, nililimitahan ang aking sarili sa maliliit na komento lamang sa mga kaso kung saan naiiba ang kanilang pag-uugali.

Sa ngayon, ang pinakabagong bersyon ng programa ay 5.9.3, na kung ano ang pag-uusapan ko; kung ang iyong pamamahagi ay naglalaman pa rin ng mas lumang bersyon, maaari mo itong gamitin: pareho ang kasalukuyang 5.9.2 ilang buwan na ang nakalipas at ang 5.9.1, na inilabas noong katapusan ng nakaraang taon, ay walang mga pangunahing pagkakaiba mula sa kasalukuyan.

Mga graphical na interface sa Maxim

Mula sa punto ng view ng kakilala sa Maxima mismo, dalawang interface ang pinaka-interesado.

Ang una ay isang hiwalay na standalone na graphics program na pinangalanan ... Ito, tulad ng Maxima mismo, bilang karagdagan sa Linux / * BSD, ay umiiral din sa isang bersyon para sa MS Windows. Sa wxMaxima, maglalagay ka ng mga formula sa text form, at ang output ng Maxima ay ipinapakita nang graphical, gamit ang mga pamilyar na simbolo ng matematika. Bilang karagdagan, ang malaking diin ay inilalagay sa kaginhawahan ng pag-input: ang command line ay nahihiwalay mula sa I / O window, at ang mga karagdagang pindutan at ang sistema ng menu ay nagbibigay-daan sa iyo na magpasok ng mga utos hindi lamang sa text mode, kundi pati na rin sa dialog mode. Ang tinatawag na "autocompletion" sa command line ay may pagkakapareho lang dito na tinatawag ng "Tab" key. Sa kasamaang palad, kumikilos ito tulad ng isang matalinong kasaysayan ng mga utos, iyon ay, tinatawag nito ang utos mula sa mga naipasok na sa session na ito, na nagsisimula sa mga character na tinukoy sa command line, ngunit hindi umakma sa mga pangalan ng mga utos at kanilang mga parameter. . Kaya, ang interface na ito ay pinaka-maginhawa kapag kailangan mong kalkulahin ang isang pulutong at makita ang mga resulta sa screen; at gayundin, marahil, kung sakaling hindi ka masyadong mahilig sa pagpasok ng lahat ng mga utos mula sa keyboard. Bilang karagdagan, ang wxMaxima ay nagbibigay ng user-friendly na interface sa dokumentasyon ng system; bagama't dahil ang dokumentasyon ay nasa html na format ang isang regular na browser ay maaaring gamitin sa halip.


Ang pangalawang medyo kawili-wiling interface sa Maxima ay isang karagdagang mode sa editor ... Bagama't ang editor na ito ay nagbabahagi ng isang makasaysayang background sa mga kilalang Emacs, tulad ng iminumungkahi ng pangalan, mayroong maliit na praktikal na pagkakatulad sa pagitan ng dalawa. Ang TeXmacs ay binuo para sa visual na pag-edit ng mga siyentipikong teksto, kung saan makikita mo ang na-edit na teksto sa screen sa halos parehong anyo kung saan ito ipi-print. Sa partikular, mayroon itong tinatawag na mathematical input mode, na napakaginhawa para sa pagtatrabaho sa iba't ibang uri ng mga formula, at maaaring mag-import / mag-export ng teksto sa LaTeX at XML / HTML. Ito ang mga posibilidad para sa pagtatrabaho sa mga formula na ginagamit ni Maxima, na tinawag mula sa TeXmacs. Sa katunayan, ang mga formula ay ipinapakita sa karaniwang mathematical notation, ngunit sa parehong oras maaari silang i-edit at kopyahin sa iba pang mga dokumento tulad ng ordinaryong teksto. Maxima-session ay tinatawag mula sa menu: " ipasokSesyonMaxima", At isang karagdagang menu na may mga utos ni Maxima ay lilitaw. Pagkatapos simulan ang session, maaari kang pumunta sa mathematical input mode sa loob nito (ang input modes menu ay tinatawag ng unang button sa input panel) at kapag pumapasok, maaari mo ring gamitin ang mga elemento ng mathematical notation. Ang interface na ito ay magiging pinaka-maginhawa para sa mga gustong gamitin ang mga resulta ng mga kalkulasyon sa kanilang mga teksto at gustong i-edit ang mga ito nang biswal.



Nagsisimula

Pagkatapos simulan ang session ng Maxima, nakikita namin ang mga sumusunod na linya sa harap namin:

Nag-restart si Maxima. (% i1)

Ang una ay isang mensahe na ang Maxima kernel ay nagsimula pa lamang (sa halip na ito, depende sa bersyon at partikular na pagpupulong, maikling impormasyon tungkol sa programa ay maaaring ipakita); ang pangalawa ay isang prompt upang ipasok ang unang command. Ang command sa Maxim ay anumang kumbinasyon ng mga mathematical expression at built-in na function, na winakasan, sa pinakasimpleng kaso, na may semicolon. Matapos ipasok ang command at pindutin ang Enter, ipapakita ni Maxima ang resulta at maghintay para sa susunod na command:


Ginagamit ang tradisyonal na notasyon para sa mga operasyong aritmetika: -, +, *, /; ** o ^ para sa exponentiation, sqrt () para sa square root.

Kung para sa ilang mga pagtatalaga ay hindi halata kung paano isulat ang mga ito sa isang string, ipapaliwanag ko ito sa kurso ng pagtatanghal.

Tulad ng nakikita mo, ang bawat cell ay may sariling label; ang label na ito ay ang nakakulong na pangalan ng cell. Ang mga input cell ay pinangalanan bilang% i numbered (i from input- input), output cell - bilang% o na may katumbas na numero (o mula sa output- output). Ang lahat ng mga built-in na pangalan ng serbisyo ay nagsisimula sa isang% na senyales: sa isang banda, upang gawing maikli at maginhawang gamitin ang mga ito, at sa kabilang banda, upang maiwasan ang mga posibleng magkakapatong sa mga custom na pangalan, na madalas ding madaling gawing maikli. Salamat sa pagkakaparehong ito, hindi mo na kailangang tandaan, tulad ng kadalasang nangyayari sa ibang mga sistema, kung alin sa mga maikli at maginhawang pangalan na ito ang nakalaan ng programa, at kung saan maaari mong gamitin para sa iyong mga pangangailangan. Halimbawa, ang panloob na mga pangalan% e at% pi ay kumakatawan sa mga kilalang mathematical constants; at% c na may isang numero ay nagsasaad ng mga constant na ginagamit sa pagsasama, kung saan ang paggamit ng titik na "c" ay tradisyonal sa matematika.

Kapag pumapasok, maaari tayong sumangguni sa alinman sa mga nakaraang cell sa pamamagitan ng pangalan nito, na pinapalitan ito sa anumang mga expression. Bilang karagdagan, ang huling output cell ay ipinahiwatig ng%, at ang huling input cell ay ipinahiwatig ng _. Nagbibigay-daan ito sa iyo na sumangguni sa huling resulta nang hindi naaabala sa kung ano ang numero nito.

Dito ang% + 47/59 ay kapareho ng% o1 + 47/59.

Ang output ng resulta ng pagkalkula ay hindi palaging kailangan sa screen; maaari itong patahimikin sa pamamagitan ng pagtatapos ng utos sa $ sa halip na; ... Ang damped na resulta ay kinakalkula pa rin; tulad ng nakikita mo, sa halimbawang ito ang mga cell% o1 at% o2 ay magagamit, bagama't hindi ipinapakita (ang cell% o2 ay na-access sa pamamagitan ng% na simbolo, ang kahulugan nito ay natukoy sa itaas):

Ang bawat susunod na utos ay hindi kailangang isulat sa isang bagong linya; kung magpasok ka ng ilang mga command sa isang linya, ang bawat isa sa kanila ay tumutugma pa rin sa sarili nitong cell name. Halimbawa, dito sa linya pagkatapos ng label na% i1, ang mga cell mula% i1 hanggang% i4 ay ipinasok; cell% i3 ay gumagamit ng% i1 at% i2 (na tinukoy bilang _ - nakaraang input):


Sa wxMaxima at TeXmacs, ang huli o tanging utos sa isang linya ay hindi kailangang wakasan — ito ay gumagana na parang natapos na; , ibig sabihin, hindi mamu-mute ang output. Sa karagdagang mga halimbawa ay madalas kong aalisin; ... Kung pumili ka ng ibang interface, huwag kalimutang idagdag ito.

Bilang karagdagan sa paggamit ng mga pangalan ng cell, kami, siyempre, ay maaaring magbigay ng mga pangalan sa anumang mga expression sa aming sarili. Sa ibang paraan, maaari nating sabihin na nagtatalaga tayo ng mga halaga sa mga variable, na may pagkakaiba na ang anumang mathematical expression ay maaaring kumilos bilang ang halaga ng naturang variable. Ginagawa ito gamit ang isang tutuldok - ang pantay na tanda ay naiwan sa mga equation, na, dahil sa pangkalahatang matematikal na konteksto ng notasyon, ay mas madali at mas pamilyar na basahin. At bukod pa, dahil ang pangunahing malakas na punto ng Maxima ay simbolikong notasyon at analytical na mga kalkulasyon, madalas na ginagamit ang mga equation. Halimbawa:

Sa isang kahulugan, ang tutuldok ay mas malinaw pa sa gayong konteksto kaysa sa katumbas na tanda: ito ay mauunawaan sa paraang nagtatakda tayo ng isang tiyak na pagtatalaga, at pagkatapos, sa pamamagitan ng tutuldok, naiintindihan natin kung ano ang eksaktong kahulugan nito. Matapos pangalanan ang expression, maaari naming tawagan ito sa pamamagitan ng pangalan anumang oras:

Ang anumang pangalan ay maaaring i-clear mula sa expression na itinalaga dito gamit ang kill () function, at palayain ang memorya na inookupahan ng expression na ito. Upang gawin ito, kailangan mo lamang i-type ang pumatay (pangalan), kung saan ang pangalan ay ang pangalan ng expression na papatayin; at ito ay maaaring alinman sa pangalang itinalaga mo, o anumang input o output cell. Katulad nito, maaari mong i-clear ang lahat ng memory nang sabay-sabay at palayain ang lahat ng mga pangalan sa pamamagitan ng pag-type ng kill (lahat). Sa kasong ito, ang lahat ng I / O na mga cell ay iki-clear din, at ang kanilang pagnunumero ay muling magsisimula sa isa. Sa hinaharap, kung ang konteksto ay nangangahulugan ng lohikal na pagpapatuloy ng mga nakaraang linya ng I / O, ipagpapatuloy ko ang pagnunumero (nagamit ko na ang pamamaraang ito sa itaas). Kapag ang bagong "session" ay hindi konektado sa nauna, sisimulan kong muli ang pagnunumero; ito ay isang hindi direktang indikasyon na gawin ang "patayin (lahat)" kung nagta-type ka ng mga halimbawa sa Maxima, dahil ang mga pangalan ng mga variable at mga cell sa naturang "mga session" ay maaaring ulitin.

Access sa dokumentasyon ni Maxima

Sa mga halimbawa sa itaas, gumamit kami ng dalawang built-in na function. Tulad ng maaari mong hulaan mula sa konteksto, ang solve ay ang function ng paglutas ng equation, at ang diff ay ang function ng differentiation. Halos lahat ng functionality ng Maxima ay ipinatupad sa pamamagitan ng mga built-in na function na ito. Ang isang Maxima function ay maaaring magkaroon ng variable na bilang ng mga argumento. Halimbawa, ang solve function, na ginamit namin sa isang argumento, ay madalas na tinatawag na may dalawang argumento. Ang una ay tumutukoy sa equation o function na ang mga ugat ay matatagpuan; ang pangalawa ay ang variable kung saan kailangang lutasin ang equation:


Kung ang formula na nagtatakda ng equation na lutasin ay naglalaman lamang ng isang simbolo, tulad ng sa nakaraang halimbawa, kung gayon ang pangalawang argumento ay maaaring tanggalin, dahil ang pagpipilian kung saan ang equation ay kailangang malutas ay hindi pa rin malabo.

Ang pangalawa sa ating mga bagong kaibigan, diff, ay maaari ding tumagal ng isang argumento; sa kasong ito, nahahanap nito ang pagkakaiba ng ibinigay na expression:

Dito tinutukoy ng del (x) at del (y) ang mga pagkakaiba ng mga katumbas na simbolo.

Ang bawat built-in na function ay inilalarawan sa dokumentasyon ng Maxima. Naglalaman ito ng impormasyon tungkol sa kung anong mga argumento at sa kung anong mga variant ang kinukuha ng function, pati na rin ang paglalarawan ng pagkilos nito sa iba't ibang kaso at mga partikular na halimbawa ng paggamit. Ngunit, siyempre, hindi palaging maginhawa upang maghanap ng isang paglalarawan ng bawat kinakailangang function sa html-documentation o info-pages, lalo na dahil ang impormasyong ito ay kinakailangan, bilang isang panuntunan, sa proseso ng trabaho. Samakatuwid, ang Maxima ay may espesyal na function, ilarawan (), na nagpapakita ng impormasyon mula sa dokumentasyon para sa mga partikular na salita. Bukod dito, partikular para sa kaginhawahan ng pagkuha ng impormasyon ng sanggunian, mayroong isang pinaikling bersyon ng tawag sa function na ito:? pangalan sa halip na ilarawan (pangalan). Dito? ay ang pangalan ng operator, at ang argumento ay dapat na ihiwalay mula dito ng isang puwang (ang? name expression ay ginagamit upang tawagan ang Lisp function na pinangalanang pangalan). Ang paglalarawan ng function at ang operator? magbigay ng isang listahan ng mga seksyon ng tulong at mga pangalan ng function na naglalaman ng tinukoy na teksto, pagkatapos ay nag-aalok sila upang ilagay ang numero ng seksyong iyon o paglalarawan ng function na gusto mong makita:

Kapag pumili ka ng isang seksyon, ang mga nilalaman nito ay ipapakita:


Kung para sa salitang ipinasok mo pagkatapos? o ilarawan, isang solong tugma ang natagpuan, ang paglalarawan nito ay ipapakita kaagad.

Bilang karagdagan sa tulong, may mga halimbawa kung paano gamitin ang mga ito para sa marami sa mga function ni Maxima. Ang halimbawa ay maaaring mai-load ng halimbawa () function. Ang pagtawag sa function na ito nang walang argumento ay magpapakita ng isang listahan ng lahat ng magagamit na mga halimbawang pangalan; Ang isang tawag tulad ng halimbawa (pangalan) ay maglo-load sa kasalukuyang session at isasagawa ang tinukoy na halimbawang file:


Paglutas ng problema sa pagsisimula sa ilalim ng TeXmacs

Kung mayroon kang mga problema sa paglulunsad ng Maxima session mula sa TeXmacs, bigyang-pansin kung sino sa iyong system ang kumikilos sa ilalim ng pangalan / bin / sh. Ang katotohanan ay ang pagsisimula ng lahat ng iba't ibang mga sesyon ay ipinatupad sa TeXmacs sa pamamagitan ng mga script ng shell na tinatawag na eksakto sa / bin / sh. At ang script na responsable para sa session ng Maxima ay gumagamit ng feature na hindi na-standardize ayon sa hinihingi ng / bin / sh, ngunit naroroon sa bash emulation nito. Sa madaling salita, kung ang iyong / bin / sh ay hindi isang link sa / bin / bash, ngunit iba pa, kung gayon maaaring ito ang dahilan para sa imposibilidad ng pagbubukas ng session ng Maxima (halimbawa, sa Debian at mga pamamahagi batay dito, maliban sa bash, ang link / bin / sh para sa sarili nito ay maaaring gustong mag-install ng mas magaan na gitling; sa kasong ito, maaari mong ibalik ang status quo gamit ang dpkg-reconfigure dash). Kung hindi posible na gumawa ng / bin / sh isang link sa / bin / bash, maaari mong subukang baguhin ang #! / Bin / sh sa #! / Bin / bash in / usr / lib / texmacs / TeXmacs / bin / maxima_detect. Isinulat ko ang tungkol sa isyung ito sa mga developer ng TeXmacs, ngunit hindi pa nakakatanggap ng anumang tugon mula sa kanila, kaya hindi ko pa masasabi kung ang kapintasan na ito ay aayusin sa mga susunod na bersyon.

Mga pangunahing prinsipyo

Ang katotohanan na ang Maxima ay nakasulat sa Lisp ay nagiging malinaw sa isang taong pamilyar sa wikang ito na sa simula ng pagtatrabaho sa programa. Sa katunayan, malinaw na sinusubaybayan ni Maxim ang prinsipyo ng "Lisp" ng pagtatrabaho sa data, na lumalabas na lubhang kapaki-pakinabang sa konteksto ng simbolikong matematika at analytical na mga kalkulasyon. Ang punto ay ang Lisp, sa pangkalahatan, ay walang paghihiwalay sa pagitan ng mga bagay at data: ang mga variable na pangalan at expression ay maaaring gamitin sa halos parehong konteksto. Sa Maxima, ang pag-aari na ito ay mas binuo: sa katunayan, maaari naming gamitin ang anumang simbolo, hindi alintana kung ang anumang expression ay itinalaga dito. Bilang default, ang simbolo na nauugnay sa anumang expression ay kakatawan sa expression na iyon; ang isang simbolo na hindi nauugnay sa anumang bagay ay kakatawan sa sarili nito, muling binibigyang kahulugan bilang isang pagpapahayag. Ipaliwanag natin sa isang halimbawa:

Mula dito, sumusunod, sa partikular, na ang halaga ng simbolo na kasama dito ay awtomatikong pinapalitan sa expression lamang kung ang halagang ito ay itinalaga sa simbolo bago tinukoy ang expression:

Kung ang isang simbolo ay mayroon nang kahulugan, maaari ba nating gamitin ang mismong simbolo sa pagpapahayag, at hindi ang kahulugan nito? Syempre. Magagawa ito gamit ang apostrophe - ipinasok bago ang anumang karakter o expression, pinipigilan nito ang pagsusuri:

Ang resulta ng expression na% i12 ay magiging pareho kung ang b at y ay walang anumang mga halaga sa oras na iyon; kaya, maaari nating ligtas na harangan ang pagsusuri ng isang simbolo nang hindi man lang naaalala (o hindi alam) kung may anumang mga expression na itinalaga sa kanila.

Maaari mong gawin ang parehong sa anumang built-in na function kung hindi namin nais na isagawa ito, ngunit gamitin ito sa aming mathematical na konteksto. Halimbawa, ang nabanggit na function ng pagkita ng kaibhan ay maaaring maging kapaki-pakinabang sa amin upang tukuyin ang isang derivative sa isang differential equation; sa kasong ito, siyempre, hindi kinakailangan na kalkulahin ito:

Salamat sa inilarawan na mga tampok, ang trabaho sa Maxim, sa isang banda, ay nagiging sa maraming paraan na katulad ng tradisyonal na "manu-manong" na gawain na may mga pormula sa matematika, na halos tinatanggihan ang sikolohikal na hadlang sa simula ng trabaho sa programa. Sa kabilang banda, kahit na sa unang yugtong ito, ikaw ay aktwal na hinalinhan sa pinakakaraniwang gawaing manu-manong, tulad ng pagsubaybay sa kasalukuyang mga halaga ng simbolo, at maaari kang ganap na tumutok sa gawain mismo. Siyempre, ang pagsusuri sa mga lock ay hindi lamang ang paraan upang maimpluwensyahan kung paano sinusuri ni Maxima ang isang expression; ang prosesong ito ay maaaring kontrolin sa halip na may kakayahang umangkop.

Dito maaari mong i-download ang bagong bersyon ng Maxima math application sa Russian para sa Windows XP / Vista / 7/8/10 nang libre mula sa server o sa opisyal na website.

Paglalarawan ng programa ng Maxima:

Maxima- isang computer algebra system na idinisenyo upang gumana sa simbolikong at numerical na mga expression, kabilang ang integration, differentiation, series expansion, Laplace transform, mga sistema ng linear equation, ordinaryong differential equation, set, polynomial, listahan, vector, matrice at tensor.

Dahil ang programa ay nagsasagawa ng medyo seryosong mga kalkulasyon sa larangan ng engineering at mas mataas na matematika, malamang na hindi ito kailanganin ng isang ordinaryong gumagamit. Ngunit ang mga dalubhasa sa mga kalkulasyon na pang-agham at inhinyero, pati na rin ang maraming mga mag-aaral, ay pahalagahan ang napakalaking kakayahan nito, ang listahan ng mga sinusuportahang gawain at ang mahusay na bilis ng trabaho.

Ang Maxima ay isa sa pinakamakapangyarihang aplikasyong pangmatematika ngayon, na mayroong maraming posibilidad para sa pagkalkula ng medyo malaking bilang ng iba't ibang mga pag-andar. Bilang karagdagan sa mga function sa itaas, ang programa ay nagsasagawa ng mataas na katumpakan na mga pagkalkula ng numero gamit ang mga eksaktong fraction, integer at mga floating-point na numero ng arbitraryong katumpakan. Pinapayagan ka ng system na bumuo ng mga graph ng mga function at data ng istatistika sa dalawa at tatlong dimensyon.

Marahil, ngayon ay walang ganoong lugar ng mga kalkulasyon sa matematika na hindi makikilala ng sistemang ito.

Interface ng programa. sa kabila ng pagiging kumplikado nito, ito ay medyo simple. Ang pangunahing control panel ay may ilang mga seksyon ng menu, kung saan ang lahat ng mga pamamaraan ng mga kalkulasyon ng matematika ay ipinakita. Upang magsimulang magtrabaho sa bawat isa sa mga seksyon, kailangan ng user na ipasok ang paunang problema, at ang programa ay magbibigay ng pinakamainam na solusyon sa awtomatikong mode.

Bukod dito, sa ilang mga kaso posible na makuha ang resulta sa anyo ng isang detalyadong patunay kasama ang lahat ng mga iniresetang pamamaraan at mga katwiran para sa pagtanggap ng huling resulta.

Si Maxima ay isang inapo ng maalamat na Macsyma computer algebra system, na binuo noong unang bahagi ng 60s sa MIT. Ito ang tanging sistemang nakabatay sa Macsyma na available pa rin sa publiko at mayroong aktibong komunidad ng gumagamit dahil sa likas na open source nito. Sa isang pagkakataon, binago ni Macsyma ang computer algebra at naimpluwensyahan ang maraming iba pang mga sistema, kabilang ang Maple at Mathematica.

Pangalan Maxima
Bersyon 5.40.0
Wika Ang Ruso ay
Sistema Windows XP / Vista / 7/8/10
Nag-develop


Mga pagpapatakbo ng Calculus

Mga halaga

Ang sum function ay ginagamit upang mahanap ang mga kabuuan. Syntax ng function:

Sum (expression, variable, variable lower limit, variable upper limit)

Halimbawa:

Kung itatalaga mo ang value ng positive infinity system variable na "inf" sa huling argumento, ito ay magsasaad na walang upper bound at isang walang katapusang halaga ang kakalkulahin. Gayundin, kakalkulahin ang isang walang katapusang halaga kung itatalaga mo sa argument na "ang mas mababang limitasyon ng pagbabago ng variable" ang halaga ng variable ng system na negatibong infinity "minf". Ang parehong mga halaga ay ginagamit sa iba pang mga pag-andar ng calculus.

Halimbawa:


Mga likhang sining

Ang function ng produkto ay ginagamit upang mahanap ang may hangganan at walang katapusan na mga produkto. Ito ay may parehong mga argumento tulad ng sa sum function.

Halimbawa:


Ang mga limitasyon

Ang limit function ay ginagamit upang mahanap ang mga limitasyon.

Syntax ng function:

limitasyon (expression, variable, breakpoint)

Kung ang "breakpoint" na argumento ay nakatakda sa "inf", ito ay magsasaad na walang hangganan.

Halimbawa:

Upang kalkulahin ang isang panig na mga limitasyon, isang karagdagang argumento ang ginagamit, na plus upang kalkulahin ang mga limitasyon sa kanan at minus sa kaliwa.

Halimbawa, magsagawa tayo ng pag-aaral ng pagpapatuloy ng function na arctan (1 / (x - 4)). Ang function na ito ay hindi natukoy sa puntong x = 4. Kalkulahin ang mga limitasyon sa kanan at kaliwa:

Tulad ng nakikita mo, ang puntong x = 4 ay isang discontinuity point ng unang uri para sa function na ito, dahil may mga hangganan sa kaliwa at kanan, na katumbas ng -PI / 2 at PI / 2, ayon sa pagkakabanggit.


Mga pagkakaiba

Ang diff function ay ginagamit upang mahanap ang mga pagkakaiba. Syntax ng function:

diff (expression, variable1, order ng derivative para sa variable1 [, variable2, order of derivative para sa variable2, ...])

kung saan ang expression ay ang function na iiba-iba, ang pangalawang argumento ay ang variable kung saan ang derivative ay kukunin, ang pangatlo (opsyonal) ay ang pagkakasunud-sunod ng derivative (ang default ay ang unang order).

Halimbawa:

Sa pangkalahatan, ang unang argumento lang ang kailangan para sa diff function. Sa kasong ito, ibinabalik ng function ang differential ng expression. Ang pagkakaiba ng kaukulang variable ay tinutukoy ng del (pangalan ng variable):

Tulad ng nakikita mo mula sa syntax ng function, maaaring tukuyin ng user ang ilang mga variable ng pagkita ng kaibhan sa parehong oras at itakda ang pagkakasunud-sunod para sa bawat isa sa kanila:

Kung gagamit ka ng parametric function, ang anyo ng pagsulat ng function ay nagbabago: pagkatapos ng pangalan ng function, ang mga simbolo na ": =" ay nakasulat, at ang function ay tinatawag sa pamamagitan ng pangalan nito na may isang parameter:

Ang derivative ay maaaring kalkulahin sa isang naibigay na punto. Ginagawa ito tulad nito:

Ginagamit din ang diff function upang tukuyin ang mga derivative sa mga differential equation, gaya ng tinalakay sa ibaba.


Mga integral

Ang integrate function ay ginagamit upang mahanap ang mga integral sa system. Upang mahanap ang indefinite integral sa isang function, dalawang argumento ang ginagamit: ang pangalan ng function at ang variable kung saan nagaganap ang integration. Halimbawa:

Kung malabo ang sagot, maaaring magtanong si Maxima ng karagdagang tanong:

Ang sagot ay dapat maglaman ng teksto mula sa tanong. Sa kasong ito, kung ang halaga ng y ay mas malaki kaysa sa "0", ito ay magiging "positibo", kung hindi, ang "negatibo" ay magiging negatibo). Sa kasong ito, ang unang titik lamang ng salita ang maaaring ipasok.

Upang makahanap ng isang tiyak na integral sa isang function, dapat mong tukuyin ang mga karagdagang argumento: ang mga limitasyon ng integral:

Pinapayagan ng Maxima ang mga takdang-aralin at walang katapusang limitasyon ng pagsasama. Para dito, ginagamit ang mga value na "-inf" at "inf" para sa ikatlo at ikaapat na argumento ng function:

Upang mahanap ang tinatayang halaga ng integral sa numerical form, tulad ng nabanggit kanina, piliin ang resulta sa output cell, buksan ang menu ng konteksto dito at piliin ang item na "To Float" mula dito.

Ang sistema ay may kakayahang magkalkula ng maramihang mga integral. Para dito, ang mga integrate function ay naka-nest sa isa't isa. Ang mga sumusunod ay mga halimbawa ng pagkalkula ng double indefinite integral at double definite integral:


Mga Solusyon sa Differential Equation

Sa mga tuntunin ng mga kakayahan nito sa mga tuntunin ng paglutas ng mga differential equation, ang Maxima ay kapansin-pansing mas mababa kaysa, halimbawa, Maple. Ngunit pinapayagan ka pa rin ng Maxima na lutasin ang mga ordinaryong first at second order differential equation, pati na rin ang kanilang mga system. Para dito, depende sa layunin, dalawang pag-andar ang ginagamit. Ang function na ode2 ay ginagamit para sa pangkalahatang solusyon ng mga ordinaryong differential equation, at ang desolve function ay ginagamit upang mahanap ang mga solusyon sa mga equation o sistema ng mga equation sa pamamagitan ng mga unang kundisyon.

Ang ode2 function ay may sumusunod na syntax:

ode2 (equation, dependent variable, independent variable);

Ang diff function ay ginagamit upang tukuyin ang mga derivative sa mga differential equation. Ngunit sa kasong ito, upang maipakita ang pag-asa ng function sa argumento nito, ito ay nakasulat bilang "diff (f (x), x), at ang function mismo ay f (x)."

Halimbawa. Hanapin ang pangkalahatang solusyon ng karaniwang first-order differential equation y "- ax = 0.

Kung ang halaga ng kanang bahagi ng equation ay katumbas ng zero, maaari itong ganap na alisin. Naturally, ang kanang bahagi ng equation ay maaaring maglaman ng isang expression.

Tulad ng makikita mo, kapag nilulutas ang mga differential equation, ginagamit ni Maxima ang integration constant% c, na mula sa punto ng view ng matematika ay isang arbitrary na pare-pareho na tinutukoy mula sa mga karagdagang kondisyon.

Ang solusyon ng isang ordinaryong differential equation ay maaaring isagawa sa ibang paraan, na mas madali para sa user. Upang gawin ito, patakbuhin ang Equation> Solve ODE command at ilagay ang ode2 function arguments sa window na "Solve ODE".

Binibigyang-daan ka ng Maxima na lutasin ang mga second-order na differential equation. Ginagamit din ang function na ode2 para dito. Upang tukuyin ang mga derivatives sa differential equation, ginagamit ang diff function, kung saan idinagdag ang isa pang argumento - ang pagkakasunud-sunod ng equation: "diff (f (x), x, 2). Halimbawa, ang solusyon ng isang ordinaryong segundo- order differential equation a · y" "+ b · y" = 0 ang magiging hitsura ng:

Kasama ang ode2 function, maaari kang gumamit ng tatlong function, ang application nito ay nagpapahintulot sa iyo na makahanap ng solusyon sa ilalim ng ilang mga hadlang batay sa pangkalahatang solusyon ng mga differential equation na nakuha ng ode2 function:

  1. ic1 (ang resulta ng ode2 function, ang inisyal na halaga ng independent variable sa anyong x = x 0, ang halaga ng function sa punto x 0 sa anyong y = y 0). Idinisenyo upang malutas ang isang first order differential equation na may mga paunang kundisyon.
  2. ic2 (ang resulta ng ode2 function, ang inisyal na halaga ng independent variable sa anyong x = x 0, ang halaga ng function sa punto x 0 sa anyong y = y 0, ang inisyal na halaga para sa unang derivative ng ang dependent variable na may kinalaman sa independent variable sa anyong (y, x) = dy 0). Idinisenyo upang lutasin ang isang pangalawang pagkakasunud-sunod na equation ng kaugalian na may mga paunang kundisyon
  3. bc2 (ang resulta ng ode2 function, ang inisyal na halaga ng independent variable sa anyong x = x 0, ang halaga ng function sa punto x 0 sa form na y = y 0, ang huling halaga ng independent variable sa ang form na x = xn, ang halaga ng function sa puntong xn sa form na y = yn). Dinisenyo upang lutasin ang isang problema sa hangganan ng halaga para sa pangalawang pagkakasunud-sunod na differential equation.

Ang detalyadong impormasyon sa syntax ng mga function na ito ay matatagpuan sa dokumentasyon para sa system.

Lutasin natin ang problemang Cauchy para sa first-order equation na y "- ax = 0 na may paunang kundisyon na y (n) = 1.

Magbigay tayo ng halimbawa ng paglutas ng problema sa boundary value para sa second-order differential equation na y "" + y = x na may mga unang kundisyon na y (o) = 0; y (4) = 1.

Dapat itong isipin na madalas na hindi malulutas ng system ang mga differential equation. Halimbawa, kapag sinusubukang maghanap ng pangkalahatang solusyon sa isang ordinaryong first-order differential equation, nakukuha natin ang:

Sa ganitong mga kaso, maaaring maghagis si Maxima ng mensahe ng error (tulad ng sa halimbawang ito) o nagbabalik lang ng "false".

Ang isa pang opsyon para sa paglutas ng mga ordinaryong differential equation ng una at pangalawang order ay inilaan para sa paghahanap ng mga solusyon na may mga paunang kondisyon. Ito ay ipinatupad gamit ang desolve function.

Syntax ng function:

desolve (differential equation, variable);

Kung ang isang sistema ng mga differential equation ay nilulutas o mayroong ilang mga variable, ang equation at / o mga variable ay isinumite sa anyo ng isang listahan:

desolve ([listahan ng mga equation], [variable1, variable2, ...]);

Tulad ng sa nakaraang bersyon, ang diff function ay ginagamit upang tukuyin ang mga derivatives sa differential equation, na may anyong "diff (f (x), x).

Ang mga paunang halaga para sa variable ay ibinibigay ng atvalue function. Ang function na ito ay may sumusunod na syntax:

atvalue (function, variable = point, value at point);

Sa kasong ito, ibinigay na ang mga halaga ng mga function at (o) ang kanilang mga derivatives ay nakatakda sa zero, samakatuwid ang syntax ng atvalue function ay:

atvalue (function, variable = 0, value sa puntong "0");

Halimbawa. Hanapin ang solusyon sa first order differential equation y "= sin (x) na may paunang kondisyon.

Tandaan na sa kawalan ng paunang kundisyon, gagana rin ang function at ibabalik ang resulta:

Nagbibigay-daan ito sa iyong suriin ang solusyon para sa isang partikular na paunang halaga. Sa katunayan, ang pagpapalit ng halaga y (0) = 4 sa resulta na nakuha, makuha lang natin ang y (x) = 5 - cos (x).

Ang desolve function ay nagbibigay-daan sa iyo upang malutas ang mga system ng mga differential equation na may mga paunang kundisyon.

Magbigay tayo ng isang halimbawa ng paglutas ng sistema ng mga differential equation na may mga paunang kondisyon y (0) = 0; z (0) = 1.


Pagproseso ng data

Pagsusuri ng istatistika

Ginagawang posible ng system na kalkulahin ang mga pangunahing istatistikal na naglalarawang istatistika, sa tulong kung saan inilarawan ang mga pinaka-pangkalahatang katangian ng data ng empirikal. Kasama sa mga pangunahing deskriptibong istatistika ang mean, variance, standard deviation, median, mode, maximum at minimum values, range of variation, at quartile. Ang mga kakayahan ni Maxima sa bagay na ito ay medyo katamtaman, ngunit karamihan sa mga istatistikang ito ay medyo madaling kalkulahin sa tulong nito.

Ang pinakamadaling paraan upang makalkula ang mga istatistikal na naglalarawang istatistika ay ang paggamit ng Statistics palette.

Ang panel ay naglalaman ng isang bilang ng mga tool na nakapangkat sa apat na grupo.

  1. Mga tagapagpahiwatig ng istatistika (mga deskriptibong istatistika):
    • ibig sabihin (arithmetic mean);
    • panggitna (median);
    • pagkakaiba-iba
    • paglihis (standard deviation).
  2. Mga pagsubok.
  3. Pagbuo ng limang uri ng mga graph:
    • histogram (Histogram). Pangunahing ginagamit ito sa mga istatistika upang ilarawan ang serye ng pamamahagi ng pagitan. Sa panahon ng pagtatayo nito, ang mga bahagi o frequency ay naka-plot sa kahabaan ng ordinate, at ang mga halaga ng tampok ay naka-plot sa abscissa;
    • Scatter Plot (Correlation Plot, Correlation Field, Scatter Plot) - isang plot ng mga puntos kapag ang mga puntos ay hindi konektado. Ginagamit upang ipakita ang data para sa dalawang variable, ang isa ay factorial at ang isa ay epektibo. Ito ay ginagamit upang graphical na kumatawan sa mga pares ng data sa anyo ng isang hanay ng mga puntos ("ulap") sa coordinate plane;
    • Bar Chart - isang graph sa anyo ng mga patayong bar;
    • sektor, o pie, tsart (Pie Chart). Ang nasabing diagram ay nahahati sa ilang mga segment-sektor, ang lugar ng bawat isa ay proporsyonal sa kanilang bahagi;
    • box diagram (kahon na may bigote, kahon na may bigote, Box Plot, box-and-whisker diagram). Siya ang madalas na ginagamit upang magpakita ng istatistikal na data. Ang impormasyon sa naturang graph ay napaka-kaalaman at kapaki-pakinabang. Ito ay sabay-sabay na nagpapakita ng ilang mga halaga na nagpapakilala sa serye ng variation: minimum at maximum na halaga, mean at median, una at ikatlong quartile.
  4. Mga tool para sa pagbabasa o paglikha ng isang matrix. Upang magamit ang mga tool sa palette, dapat ay mayroon kang paunang data sa anyo ng isang matrix - isang one-dimensional na array. Maaari itong gawin sa isang dokumento na may kasalukuyang session at pagkatapos ay palitan ang pangalan nito bilang input sa palette tool windows sa parehong paraan tulad ng paglutas ng mga equation gamit ang General Math toolbar. Maaari mo ring direktang itakda ang data sa mga kahon ng pag-input. Sa kasong ito, ipinasok ang mga ito sa form na tinanggap sa system, iyon ay, sa mga square bracket at pinaghihiwalay ng mga kuwit. Malinaw na ang unang opsyon ay mas mahusay, dahil nangangailangan lamang ito ng isang beses na pagpasok ng data.

Bukod sa panel, lahat ng mga tool sa istatistika ay maaari ding gamitin sa tulong ng mga kaukulang function.