Bilgisayar bilimi dersleri "Özel matematik problemlerini çözmek için Maxima sistem paketi kütüphanesinin yeteneklerinin incelenmesi." Maxima Temelleri Maxima SCM'de bir kullanıcı işlevi ayarlayın

Ders: Komuta sistemi, Maxima'da hesaplamalar.

Hedef: Maxima programını tanımaya devam edin, Maxima komut sistemini tanıtın; hafızayı, dikkati geliştirmek; yetiştirmek bilgi kültürü.

Dersler sırasında:

    Organizasyonel başlangıç:

    Selamlar.

    Görevli memurlarla çalışmak.

    Tekrarlayan eğitim başlangıcı.

    Kartları kullanarak bireysel çalışma.

1 numaralı kart.

    1. Matematiksel hesaplama sistemi kavramı.

      Matematiksel hesaplama sisteminin özellikleri.

2 numaralı kart.

    1. Bilgisayar cebiri kavramı.

      Bilgisayar cebirinin özellikleri.

    Sözlü bireysel anket.

Maxima konsepti. Özellikler. Programı başlatın.

Maxima program arayüzü.

    Yeni materyali anlamaya ve uzmanlaşmaya çalışın.

    Dersin konusunun ve amacının duyurulması.

    Yeni materyal öğrenme.

WxMaxima'ya temel komutları girme

WxMaxima'yı başlattıktan sonra program penceresi görünür.

Maxima arayüz penceresinin üst grafik kısmı size 5.14.0 sürümünün indirildiğini, GNU lisansı altında dağıtıldığını, hangi siteden mevcut olduğunu ve üst öğesinin kim olduğunu gösterir. Alt pencerede ENTER alanında: Maxima komutları kabul etmeye hazır. Komut ayırıcısı bir karakterdir; (noktalı virgül). Bir komutu girdikten sonra, onu işlemek ve sonucu görüntülemek için Enter tuşuna basmanız gerekir.

Maxima'nın ilk sürümlerinde ve bazı kabuklarında (örneğin, xMaxima) ve konsol sürümünde, her komutun ardından noktalı virgül bulunması kesinlikle gereklidir. Bu nedenle Maxima'yı kullanmanızı şiddetle tavsiye ederiz.

noktalı virgül eklemeyi unutmayın; her komuttan sonra. İfadenin görüntülenmesi ve değerlendirilmemesi gereken durumlarda önüne (") işareti (tek tırnak) konulmalıdır. Ancak ifadenin açık bir anlamı olduğunda bu yöntem işe yaramaz,

örneğin Maxim, sin(π) ifadesini kesme işareti olsa bile sıfır olarak ele alır. İfadeleri hesaplamak veya dönüştürmek için Maxima'nın olası kullanım çeşitliliğini öngörmek zordur. Zor durumlarda sertifika almayı deneyebilirsiniz. ingilizce dili. Yardım çağırmak için ENTER alanına yazmanız yeterli. ve Enter'a basın.

Komutların atanması ve hesaplama sonuçları

Girdikten sonra her komuta bir seri numarası atanır. Aşağıdaki şekilde girilen komutlar 1–3 arasında numaralandırılmıştır ve sırasıyla (%i1), (%i2), (%i3) olarak atanmıştır. Hesaplamaların sonuçlarına karşılık gelen bir seri numarası (%o1), (%o2), vb. bulunur. Burada "i" İngilizce'nin kısaltmasıdır. Giriş (giriş) ve "o" İngilizcedir. Çıktı

Bu mekanizma, daha fazla komut yazarken önceden yazılmış olanlara başvurmaya izin verir; örneğin (%i1)+(%i2), ikincinin ifadesinin birinci komutun ifadesine eklenmesi ve ardından sonucun hesaplanması anlamına gelir. Ayrıca hesaplama sonuçlarının sayısını da kullanabilirsiniz, örneğin bunun gibi (%o1)*(%o2).

Maxima'da son yürütülen komut için özel bir gösterim vardır - %.

Örnek: Bir fonksiyonun türevini hesaplama

x=1 noktasında.

Komut (%i9) yürütüldü ve sonuç (%o9) elde edildi. Bu nedenle, bir sonraki komut (%i10) zaten elde edilen sonuca atıfta bulundu, ancak x değişkeninin değerini belirtti, böylece komut (%i10) (%o9), x=1 formunu aldı.

Sayısal bilgilerin girilmesi

Maxima'ya sayı girme kuralları diğer birçok benzer programla tamamen aynıdır. Ondalık kesirlerin tam ve kesirli kısımları nokta simgesiyle ayrılır. Negatif sayıların önüne eksi işareti konur.

Sıradan kesirlerin pay ve paydası / (eğik çizgi) sembolü kullanılarak ayrılır.

Bir işlemin sonucu belirli bir sembolik ifade ise, ancak ondalık kesir biçiminde belirli bir sayısal değer elde etmeniz gerekiyorsa, sayı operatörünü kullanmanın bu sorunu çözeceğini lütfen unutmayın. Özellikle sıradan kesirlerden ondalık sayılara geçmenizi sağlar

Burada Maxima öncelikle varsayılan olarak hareket etti. 3/7 ve 5/3 kesirlerini tam olarak aritmetik kurallarına göre ekledi: ortak bir payda buldu, kesirleri ortak bir paydaya indirgedi ve payları ekledi. Sonunda aldı

44/21. Ancak ondan sayısal bir cevap almasını istedikten sonra, 16 haneli, 2,095238095238095 doğruluğunda yaklaşık bir sayısal cevap buldu.

Sabitler

Maxima'nın hesaplama kolaylığı için bir dizi yerleşik sabiti vardır; bunlardan en yaygın olanları aşağıdaki tabloda gösterilmektedir (Tablo 1):

Aritmetik işlemler

Maxima'da aritmetik işlemlerin gösterimi klasik gösterimden farklı değildir; matematiksel işaretler kullanılır: + – * /.

Üs üç şekilde gösterilebilir: ^, ^^, **. N derecesinin kökünü çıkarmak derece ^^(1/n) olarak yazılır. Maxima'da yerleşik başka bir yararlı işlemi hatırlayalım: bir sayının faktöriyelini bulma. Bu işlem bir ünlem işaretiyle gösterilir

Örneğin, 6!=1⋅ 2⋅ 3⋅ 4⋅ 5⋅ 6=120.

Bir işlemin önceliğini arttırmak için, matematikte olduğu gibi, Maxima için komutlar yazarken parantez () kullanılır.

Değişkenler

Değişkenler ara hesaplamaların sonuçlarını depolamak için kullanılır. Değişkenlerin, fonksiyonların ve sabitlerin adlarını girerken büyük/küçük harfin önemli olduğunu, dolayısıyla x ve X değişkenlerinin iki farklı değişken olduğunu unutmayın.

Bir değişkene değer atamak şu sembol kullanılarak yapılır: (iki nokta üst üste), örneğin x : 5;.

Bir değişkenin değerini kaldırmak gerekiyorsa (temizleyin), kill yöntemi kullanılır:

kill (x) – x değişkeninin değerini silin;

kill (all) – daha önce kullanılan tüm değişkenlerin değerlerini silin.

Buna ek olarak, kill yöntemi çalıştırılabilir komutlar için yeni bir numaralandırma başlatır (yukarıdaki komuta verilen yanıtın (%i 3), sıfır sayısının (%o 0) yapıldığı bir yanıt olduğunu ve ardından komutların numaralandırıldığını unutmayın. birinden devam edildi).

Matematiksel fonksiyonlar

Maxima oldukça geniş bir yerleşik matematiksel işlevler kümesine sahiptir. İşte bunlardan bazıları (Tablo 2). Bazı fonksiyon adlarının yerli literatürde kullanılan isimlerden farklı olduğu unutulmamalıdır: tg - tan yerine, ctg - cot yerine, arcsin - asin yerine, arcos - acos yerine, arctg - atan yerine , arcctg - acot yerine, ln - log yerine, cosec – csc yerine.

Fonksiyon yazma kuralı

Bir fonksiyon yazmak için adını belirtmeniz ve ardından parantez içinde argümanların değerlerini virgülle ayırarak yazmanız gerekir. Bağımsız değişkenin değeri bir liste ise köşeli parantez içine alınır ve listenin öğeleri de virgüllerle ayrılır.

integral(sin(x),x,-5,5); arsa2d(,,);

Özel İşlevler

Kullanıcı kendi fonksiyonlarını tanımlayabilir. Bunu yapmak için önce işlevin adını belirtin, argümanların adları parantez içinde listelenir, = (iki nokta üst üste ve eşittir) işaretlerinden sonra işlevin bir açıklaması vardır. Görevden sonra özel işlev tam olarak Maxima'nın yerleşik işlevleri gibi çağrılır.

Karmaşık ifadeleri doğrusal gösterime çevirme

Yeni başlayan Maxima kullanıcıları için en zor görevlerden biri, kuvvetleri, kesirleri ve diğer yapıları içeren karmaşık ifadeleri doğrusal biçimde (metin biçiminde, ASCII karakterlerini kullanarak, tek satırda) yazmaktır.

Rahatlamak için bu süreç Birkaç öneride bulunmaya değer:

1. Çarpma işaretini koymayı unutmayın! Maxima grafik penceresinde matematik kurallarına göre x değişkeninin double değeri 2x olarak yazılır, ancak ENTER penceresinde: Maxima komutunun 2*x gibi görünmesi gerekir.

2. Şüphe durumunda, “ekstra”, ek parantez () koymak her zaman daha iyidir. Bir ifadenin pay ve paydası her zaman parantez içine alınmalıdır.

Ayrıca bir güce yükseltirken, tabanı ve gücü her zaman parantez içine koymak daha iyidir.

3. Bir fonksiyon, argümanlarından (varsa) ayrı olarak mevcut değildir. Bu nedenle, örneğin, bir kuvvete yükseltirken, parantez içindeki argümanlarla tüm fonksiyonu alabilir ve ardından ortaya çıkan yapıyı istenen kuvvete yükseltebilirsiniz: (sin (x))**2.

Ayrıca birkaç fonksiyon argümanının virgülle ayrılmış olarak parantez içinde yazıldığını unutmayın; örneğin min(x1,x2,x3,xN);

5. sin(2*x) fonksiyonunun sin*2*x veya sin2x biçiminde yazılmasına izin verilmez.

6. Karmaşık bir ifade yazıyorsanız, onu birkaç basit bileşene bölün, bunları ayrı ayrı girin ve ardından girilen komutlar için daha önce tartışılan gösterimi kullanarak bunları birleştirin.

Örnek: Aşağıdaki ifadeyi girmelisiniz:

Bu ifadeyi üç bileşene ayıralım: pay, parantez içindeki ifade ve kuvvet. Her bir bileşeni yazalım ve bunları bir ifadede birleştirelim.

Maxima ifadeyi basitleştirecek

sıçan(ifade). Rasyonel bir ifadeyi kanonik biçimine dönüştürür. O

orada tüm parantezler açılıyor, sonra her şey ortak bir paydaya getiriliyor, özetleniyor ve azaltılıyor; ayrıca sonlu ondalık gösterimdeki tüm sayıları rasyonel sayılara indirger.

    Ev ödevi:

Stakhin N.A., 10-18 arası, destekleyici notlar.

    Ders özeti.

Maxima programının amacı nedir?

Maxima program arayüzünün ana unsurlarını listeleyin.

Temel Maxima komutlarını listeleyin.

Maxima matematiksel fonksiyonları belirtme yeteneğini uygular. Ancak yerleşik işlevlerden bahsederek başlayacağım. Kural olarak bu fonksiyonlar matematiğe benzer şekilde yazılır.

Yalnızca bu matematik Amerika'ya özgüdür, yerli değil. Bu nedenle okuldan aşina olduğumuz tg'nin yerini ten rengi almalı. İşte kendi başıma keşfedebildiğim işlevlerin bir listesi:

Maxima'daki işlev

Matematikte fonksiyon

Hiperbolik sinüs.

Hiperbolik kosinüs.

Hiperbolik tanjant.

Doğal logaritma.

arktanjant

arksinüs

acos(x) Ark kosinüs

Not: 1'den büyük bir sayının ark sinüs/ark kosinüsünü alırsanız karmaşık bir değer elde edeceğinizi biliyor muydunuz?

Elbette çok daha fazla yerleşik fonksiyon var. Başka bir şeye ihtiyacınız olursa wxMaxima/Maxima kılavuzuna başvurmayı deneyin. Acemi sayısal hesaplama meraklıları için pek çok ilginç şey var.

Şekil 8: Maxima'daki yerleşik işlevler.

Programın bilmediği bir fonksiyon girerseniz girdiğiniz satırın birebir aynısını size gösterecektir. Ama dikkat et! Sayısal bayrağı varsayılan konuma ayarladıysanız, verilen işlevle tam olarak aynı şekilde davranacaktır. Dolayısıyla, hâlâ cevabınızı almayı düşünüyorsanız bayrağı değiştirin veya işleve gerçek bir parametre iletin.

Şimdi kendi fonksiyonlarınızı nasıl tanımlayacağınızdan bahsedelim. Matematikte olduğu gibi, bir fonksiyon bir ifadeyle tanımlanabilir. Bir işlevi belirtmek için aşağıdaki ifadeyi kullanmanız gerekir:

Tanımlandıktan sonra onu tıpkı yerleşik işlevler gibi kullanabilirsiniz: f(3)

Bir fonksiyonun ayrıca virgüllerle ayrılmış olarak belirtilen ve aktarılan birçok parametresi olabilir. Aşağıdaki ekran görüntüsünde bir örnek görebilirsiniz.

Şekil 9: wxMaxima'daki yerel işlevler

Gördüğünüz gibi karmaşık bir şey yok. Hesaplamalarınızı basitleştirmek için işlevleri kullanın. İşlevi kullanarak verilerinizi tutarlı bir şekilde hesaplarsanız, zaten güzel bir tabağa sahip olacaksınız.

Döngüsel veri işleme.

Bu belki de eğitimin en zor kısmıdır çünkü programcı olmayanların anlaması zor olan döngüler kullanır. Ancak komutları dikkatli girerseniz ve hata yapmazsanız her şey yoluna girecek.

Diyelim ki giriş bölümünde verilen kurallara göre girdiğiniz A listeniz var. Diyelim ki akımın genlik değerlerini içeriyor. Daha sonra gerçek değerleri elde etmek için her birini 2'ye bölmeniz gerekir.

A'daki I için do ldisp(I/sqrt(2))

Sırayla. Burada for bir döngüyü ifade eden anahtar kelimedir. I, listenin öğelerinden birine karşılık gelen geçici bir değişkendir. A, daha önce girdiğiniz bir dizidir. Anahtar kelime do, maxima'ya diziyi geçerken ne yapması gerektiğini söyler. Dizi birer birer geçilir, yani do'dan sonraki eylem dizideki eleman sayısı kadar gerçekleştirilir ve I değişkeni a,a,...,a[n] değerlerini alır. her yinelemede (yineleme, döngünün bir yürütülmesidir). Daha sonra, burada ne sayıldığını görmemizi sağlayan akıllı ldisp işlevi geliyor. Ve bu fonksiyonun parametresi bir ifadedir. Hiçbir şey anlamıyorsanız bu açıklamalara girmeyin. Bu komutu kendiniz vermeye çalışın ve parametrelerini değiştirin.

Not: Maxim'deki değişkenlerin ve diğer nesnelerin adları büyük/küçük harfe duyarlıdır. Bu, ben ve ben'in iki farklı değişken olduğumuz anlamına gelir.

Şekil 10: Döngü komutu.

Hesaplanan değerlere bakıp daha sonra not defterinizde bir yere yazmak istiyorsanız bu yöntem tam size göre. Ve eğer onlar üzerinde bazı hesaplamalar yapmanız gerekiyorsa, o zaman elbette buna uygun bir biçimde sunulmaları gerekir. Örneğin, orijinal listeye benzer bir listeye veri girebilirsiniz. Öncelikle boş bir liste oluşturmanız gerekir, böylece bu listeye döngüsel olarak veri ekleyebilirsiniz. Bu şu komutla elde edilir:

Şimdi doldurabilirsiniz:

a'daki i için b:append(b, )

Bu döngü öncekine benzer ancak bazı değişiklikler gerektiriyordu

göreve uygun değişiklikler. Artık döngünün her tekrarında b listesi yeniden atanır. Ekleme işlevi tarafından b listesinin önceki bileşiminden derlenen bir listeye ve yalnızca bir değer, yeni hesaplanan öğe içeren başka bir listeye atanır. Sonuç, sanki kendiniz girmişsiniz gibi değiştirebileceğiniz tamamlanmış bir b listesidir. İçinde ne olduğunu görmek için komutu çalıştırmanız yeterli

Listenizi göreceksiniz.

Şekil 11: Sonuçların kaydedildiği hesaplama.

Söylenenlerin hepsi olağan olanı dikkate almak için zaten yeterli laboratuvar işi. Hele ki bunların hepsini okuduysanız. Eylem sıranız şuna benzer olmalıdır:

1. Başlangıç ​​deneysel değerlerinin bir listesini girin.

2. Değerleri hesaplamak için işlevleri ayarlayın.

3. Listelerin döngüsel hesaplanması için komutlar verin.

4. Verileri laboratuvar kitabınıza girin.

5. Dükkanı kapatın ve korkulukta bira içmeye gidin veya başka bir yer.

A Şimdi size çalışmanızı göndermeye hazırlanırken yardımcı olabilecek bazı ek ipuçlarından bahsedeceğim.

Tüm komutlar ENTER alanına girilir, komut ayırıcı bir semboldür; (noktalı virgül). Komutu girdikten sonra Enter tuşuna 2 basmalısınız. İÇİNDE wxMaxima Shift+Enter tuşlarına basmanız gerekir. işlemek ve sonucu çıkarmak için. Daha önceki versiyonlarda Maksimum ve bazı kabukları (örneğin, xMaksima) Her komuttan sonra noktalı virgülün bulunması kesinlikle gereklidir. Girişi $ sembolüyle (noktalı virgül yerine) sonlandırmak, girilen komutun sonucunu hesaplamanıza olanak tanır, ancak bunu ekranda görüntülemez. İfadenin görüntülenmesi ve hesaplanmaması gerekiyorsa, önüne " işareti (tek tırnak) konulmalıdır. Ancak ifade açık bir değere sahip olduğunda bu yöntem işe yaramaz; örneğin, ifade bir ile değiştirilir. değer sıfıra eşittir.

Bir giriş dizesindeki bir ifadeye art arda uygulanan iki tek tırnak, giriş dizesinin, giriş ifadesinin değerlendirilmesinin sonucuyla değiştirilmesine neden olur.

Örnek:

(%i3) sqrt(aa)+bb;

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

2.5.1 Komutların gösterimi ve hesaplama sonuçları

Girdikten sonra her komuta bir seri numarası atanır. Ele alınan örnekte, girilen komutlar 1-5 arasında numaralandırılmıştır ve buna göre (%i1), (%i2), vb. atanmıştır.

Hesaplamanın sonucu aynı zamanda bir seri numarasına da sahiptir; örneğin vb. nerede Ben- İngilizce'den kısaltma. giriş (giriş) ve Ö- İngilizce çıktı. Bu mekanizma, sonraki hesaplamalarda tekrarlardan kaçınmanıza olanak tanır. tam kayıt halihazırda yürütülen komutlar, örneğin (%i1)+(%i2), ilk komutun ifadesine ikinci ve sonraki sonucun hesaplanmasının ifadesinin eklenmesi anlamına gelecektir. Ayrıca hesaplama sonuçlarının sayısını da kullanabilirsiniz; örneğin . Maxima'nın son yürütülen komut için özel bir gösterimi vardır - .

Örnek:

Bir fonksiyonun türevinin değerini hesaplama :

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

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

Önceki işlemin karakterinden önceki çift tırnak, bu karakteri bir değerle değiştirmenize olanak tanır; Metin dizesi farklılaşma sonucu elde edilir.

Başka bir örnek (açık içerikli):

2.6 Sayılar, operatörler ve sabitler

2.6.1 Sayısal bilgilerin girilmesi

Numara girme kuralları Maksimum diğer birçok benzer programla tamamen aynı. Ondalık kesirlerin tam ve kesirli kısımları nokta simgesiyle ayrılır. Negatif sayıların önüne eksi işareti konur. Sıradan kesirlerin pay ve paydası / (eğik çizgi) sembolü kullanılarak ayrılır. Bir işlemin sonucu belirli bir sembolik ifade ise, ancak ondalık kesir biçiminde belirli bir sayısal değer almanız gerekiyorsa, bayrağı kullanmanın bu sorunu çözmenize izin vereceğini lütfen unutmayın. Özellikle sıradan kesirlerden ondalık sayılara geçmenizi sağlar. Kayan nokta formuna dönüştürme de fonksiyon tarafından gerçekleştirilir.

(%i2) 3/7+5/3, değişken;

(%i3) 3/7+5/3, sayı;

(%i4) kayan nokta(5/7);

2.6.2 Aritmetik işlemler

Aritmetik işlemlerin gösterimi Maksimum klasik gösterimden farklı değildir: + , - , * , /. Üs birkaç şekilde gösterilebilir: ^, ^^, **. Derece n'nin kökünün çıkarılması derece olarak yazılır. Faktöriyel bulma işlemi belirtilir Ünlem işareti, örneğin 5!. Bir işlemin önceliğini arttırmak için matematikte olduğu gibi parantez kullanılır: (). Temel aritmetik listesi ve mantıksal operatörler tabloda verilmektedir. 2.1 ve tablo. 2.2 aşağıda.

Tablo 2.2. Mantıksal operatörler
< karşılaştırma operatörü daha az
> karşılaştırma operatörü büyüktür
<= karşılaştırma operatörü küçük veya eşittir
>= karşılaştırma operatörü büyük veya eşittir
# karşılaştırma operatörü eşit değil
= karşılaştırma operatörü eşittir
Ve mantıksal operatör ve
veya mantıksal operatör veya
Olumsuz mantıksal operatör değil

Maxima bilgisayar matematik sistemi bu alandaki programlar arasında gerçek bir emektardır.
sınıf. En azından ünlü ticari meslektaşlarının çoğundan daha yaşlı
yirmi yıldır. Başlangıçta Macsyma adı verilmişti, sonunda oluşturuldu
1960'larda ünlü Massachusetts Teknoloji Enstitüsü'nde ve neredeyse 20
yıllar (1982'den 2001'e kadar) Bill Shelter tarafından desteklendi.
bilim dünyasında dikkat çekici niteliklerini ve şöhretini kazanmıştır.
Sistemin geçmişine ilişkin ayrıntılar, kurulum modülü (sadece 10 MB boyutunda),
Dokümantasyon, kaynak kodu ve diğer ilgili bilgiler Web sitesinde bulunabilir.
paket
Şimdiki versiyonu(5.9.0) altında çalışır Windows kontrolü ve Linux.

Mütevazı boyutuna rağmen Maxima, karmaşık analitik problemleri çözebilen son derece akıllı bir üründür. Çoğu bilgisayar matematik sistemi gibi, kullanıcıyla soru-cevap temelinde etkileşime giren bir komut yorumlayıcısıdır. Bu nedenle, sistemin çalışma alanı bir etiket (kullanıcı girişi için C, sonuç için D) ve bir sayı ile işaretlenmiş bir dizi giriş/çıkış hücresinden oluşur (Şekil 1). Bu gösterim, önceki sonuçlardan birine erişmek için yalnızca istediğiniz hücrenin adını girmenize olanak tanıyan kullanışlı bir bağlantı mekanizması sağlar.

Sayısal İşlemler


Pirinç. 1

Maxima hangi ifadeyle çalışırsa çalışsın,
sonuçları her zaman kesin bir analitik biçimde sunmaya çalışır.
Bu tamamen sayısal hesaplamalar için geçerlidir. Örneğin, komut satırına girerseniz
çizgi ifadesi 1/2+1/3 , o zaman sonuç şöyle olacaktır 5/6 . İçin
Kayan noktalı sayı olarak bir değer elde etmek için bunu açıkça belirtmeniz gerekir.
En basit yol, özel bir tanımlayıcı belirtmektir sayı başından sonuna kadar
Girilen ifadeden sonra virgül.

Yüksek doğrulukta hesaplamalar için Maxima, herhangi bir değeri isteğe bağlı bir bit ızgarasıyla (tabii ki donanım yetenekleri sınırları dahilinde) hesaplamanıza olanak tanıyan özel operatörleri destekler. Bu aynı zamanda tamsayılar için de geçerlidir: sistemdeki boyutları yazılımla sınırlı değildir. Ek olarak, Maxima, yüksek hassasiyetli aritmetikle çok iyi bir çalışma hızına sahiptir; bu, onlarca ve yüzbinlerce basamaklı tamsayılarla hesaplamaların en iyi ticari sistemler düzeyinde performansla yapılmasını mümkün kılar.

Maxima'nın giriş ifadelerinde büyük/küçük harfe duyarlı bir yaklaşım benimsediğini unutmayın. Görünümleri yerleşik bir işlevin adına yakınsa program bu işlevi kullanır. Buna göre bu kural Günah, günah Ve GÜNAH aynı şeyi kastediyorum. Ancak kullanıcı değişkenleri ve işlevleri büyük/küçük harfe duyarlıdır - X Ve X farklı nesneleri temsil edebilir.

Sistem aynı zamanda karmaşık aritmetiği ve bir dizi iyi bilinen matematiksel sabiti de destekler.


Analitik Operasyonlar


Pirinç. 2

Karmaşık analitik işlemleri gerçekleştirme becerisi
ve dönüşümler elbette ürünün başarıyı sağlayan temel özelliği haline geldi
Uzmanlar arasında Maxima. Bu, standart analiz işlemlerini (farklılaştırma,
entegrasyon, limitlerin hesaplanması), ifadelerin genişletilmiş biçimde sunulması,
fonksiyonların serilere genişletilmesi, basitleştirme, dönüştürme, ikame vb.
Bu işlevsellik ciddi bilimsel araştırmalar yürütebilecek kadar esnektir.
Böylece herhangi bir mertebeden kısmi ve adi türevleri, integralleri bulabilirsiniz.
Entegrasyonun sınırları izin verildiği için hem sıradan hem de çoklu olabilir
sonsuzluk vb. Her zaman olduğu gibi, program hesaplanan tüm değerleri temsil etmeye çalışacaktır.
kapalı (kesin) formdaki değerler.

Girilen ifade için net bir sonuç elde edilemezse program yönlendirici soruları neredeyse doğal (İngilizce) dilde soracaktır. Örneğin, fonksiyonun integralini bulmaya çalışırken xn Maxima eşit olup olmadığını netleştirecek n+1 sıfır (bilindiği gibi sonuç önemli ölçüde buna bağlıdır). Ancak, özel operatörler kullanarak, kullanılan parametrelerin ve değişkenlerin değiştirilme kapsamını önceden belirtirseniz bu tür sorulardan kaçınılabilir.

Analitik araç aynı zamanda polinomlarla (iki polinomu bölme, en büyük ortak böleni hesaplama, çarpanlara ayırma) ve trigonometrik ifadelerle cebirsel işlemleri de destekler. Pratik uygulamalarda denklemlerin ve sistemlerin çözümü için sisteme yerleştirilmiş araçlar önemli bir rol oynar çeşitli türler- cebirsel, aşkın ve diferansiyel.


Doğrusal cebir işlemleri

Maxima, vektör matris işlemleri için çok gelişmiş bir mekanizma uygular.
karmaşık cebirsel hesaplamalara izin verir. Matrisler evrensel tarafından tanıtılır
Şebeke matris, daha sonra bunlara olağan doğrusal işlemler uygulanır - toplama,
çıkarma, skalerle çarpma (bunları yazmak için doğal matematik kullanın)
gibi notasyon A+B) ve ayrıca transpozisyon, ters çevirme, determinantların hesaplanması,
spektral özellikler vb.


Grafik yetenekleri


Pirinç. 3

Modern bilgisayar matematik sistemi
evrensel bir türün veri görselleştirme yetenekleri gelişmiş olmalıdır.
Ayrıca Maxima'da da mevcuttur. Sistemdeki grafikler iki fonksiyon kullanılarak oluşturulmuştur - PLOT2D
(iki boyutlu, Şekil 2) ve PLOT3D (üç boyutlu, Şekil 3). Buna rağmen nispeten
Çok geniş bir seçenek değil, bahsedilen araçlar farklı türde grafikleri görüntülemenize olanak tanır
oldukça ince ayarlarla bir uçakta ve uzayda -
özel operatörler veya fonksiyon argümanları ızgara düğümlerinin sayısını belirtir,
gerekli grafiğin, veri aralıklarının, rengin ve diğer özelliklerin oluşturulduğu yer.
Hızlı bir şekilde değiştirmek için etkileşimli ayarları da kullanabilirsiniz.
çizgi kalınlığı, 3 boyutlu yüzey döndürme vb. Dışa aktarma formatlarını seçme
Maxima çok dardır: programdaki çizimler aslında yalnızca PostScript'e kaydedilir.
Genel olarak sistemin görsel araçları, her ne kadar fırsat sağlasa da nispeten mütevazıdır.
bazı türlerde yüksek kaliteli grafikler elde edin.


Programlama Araçları

Herhangi bir bilgisayar matematik sistemi gibi, Maxima da şunları oluşturmanıza olanak sağlar:
karmaşık programlar ve bunları bir komut komutu kullanılarak çözülebilecek görevlerde kullanın
dizeler karmaşık ve verimsiz olabilir.

En basit durumda, kullanıcı tanımlı bir fonksiyon doğrudan Komut satırı

İşlevim(x,y):=x^2+y^2;

Daha sonra İşlevim yerleşik olanlarla birlikte kullanılabilir. Elbette sistem daha karmaşık tasarımları da destekliyor. Bir fonksiyonun gövdesi, operatörlerin dallanma, döngü, giriş/çıkış vb. işlemlerine izin verir. Maxima'daki programlama dilinin bazı özellikleri vardır; bunlardan en önemlisi, fonksiyon argümanlarının sayısının sabitlenmesinin gerekmemesidir. Bir diğeri ise dizilerle çalışmaya yönelik son derece esnek araçlardır; bunlar yalnızca geleneksel dillerde değil aynı zamanda nadiren bulunur. özel sistemler SCM dahil. Aynı kılavuzdan alınan bazı örnekler (Maxima'daki iki nokta atama anlamına gelir):

a:4*u;
a:%PI;
a[x]:gizem;

Tüm operatörler doğrudur ve toplu olarak indeksleri sayılardan oluşan bir diziyi tanımlar 4 , 22/7 ve dize "X" ve elemanların değerleri ifadedir 4*sen, π sayısı (Maxima'da %PI olarak yazılır) ve bir karakter dizisi "gizem". Böylece hemen hemen her ifade hem dizi öğesi hem de dizini olarak işlev görebilir. Maxima'nın orijinal özellikleri bu özelliklerle sınırlı değil (örneğin, işlev dizileri bile destekleniyor), ancak ayrıntılar üzerinde durmayacağız.

Genel olarak Maxima, Lisp'te yazılmıştır ve komutlarının çoğunu doğrudan destekler. Lisp'in sistemin çekirdeği olduğunu ve “düşük seviyeli” programlama sırasında erişilebildiğini söyleyebiliriz. Ancak çoğu durumda bu gerekli değildir. Maxima, kullanımı Lisp operatörlerinden çok daha kolay olan yeterli sayıda hazır araç sağlar.

Gerekirse programlar kaydedilir. harici dosyalar. Komutlar sisteme girildiği şekilde yazılır; yalnızca fonksiyonların tasarımına yönelik bazı özellikler vardır.

Kullanıcıyla ilgilenmek

Ürünün Web sitesinde bulunan belgelere ek olarak paket, Maxima'ya bir giriş ve bir sistem eğitimi içerir (her ikisi de HTML formatında) - Detaylı Açıklama, tüm yeteneklerini derinlemesine tanımak için yeterlidir. Ancak sistemle çalışma oturumu sırasında çoğu zaman çevrimiçi yardım almak gerekir. Bunun için Maxima bir işlev sağlar BETİMLEMEK(), hangi çıktıyı verir detaylar kullanıcının ilgisini çeken operatör hakkında (bu ona bir argüman olarak iletilir). Tam sözdizimini hatırlamamanız önemli değil, ismin ilk birkaç harfini girin; Maxima bu karakter kombinasyonuyla başlayan mevcut tüm isimleri gösterecektir. Bu bilgi yeterli değilse, işlevi kullanabilirsiniz. ÖRNEK() tipik örnekler sunacak. Aynı serinin fonksiyonları şunları içerir: DEMO(), programları sistemle birlikte sağlanan demo dosyalarından çalıştırır. Sistemin böyle bir özelliğini, hesaplama sonuçlarını TeX formatında sunma yeteneği olarak adlandırılan bir işlevi kullanarak not etmek isterim - TEX().


sonuçlar

Bu kısa materyalden sonra okuyucuların hala bir izlenime sahip olmasını umuyoruz.
Maxima fikri gerçekten profesyonel sistem amaçlanan
karmaşık sayısal ve analitik problemlerin yanı sıra grafiksel gösterimlerin çözülmesi için
veri. Özellikle başta da belirttiğimiz gibi program analitik açıdan güçlüdür.
yüksek hassasiyetli hesaplamalar ve aritmetik. Elbette Maxima mükemmel olmaktan uzaktır.
ve birçok bakımdan yetersiz kalıyor ticari Ürünler Maple ve Mathematica gibi.
Ancak bu, avantajlarını azaltmaz - Maxima eğitim amaçlı da kullanılabilir
amaçlarla ve oldukça ciddi bilimsel gelişmelere platform olarak hizmet vermektedir.

Döngü operatörü

Döngü operatörü çeşitli şekillerde belirtilebilir. Belirleme yöntemi, döngü gövdesinin kaç kez çalıştırılması gerektiğinin önceden bilinip bilinmemesine bağlıdır.

Örnek: a değişkeninin değerlerini -3 ila 10 aralığında 5'lik adımlarla görüntülemek için bir döngü kurmak:

Örnek: 50'ye kadar (50 dahil) tüm doğal sayıların toplamını bulan döngü:

Maxima sisteminin bir sonraki önemli özelliği listeler ve dizilerle çalışma.

Liste oluşturmak için makelist komutunu kullanın. Örneğin, komutu kullanarak

on öğeden oluşan x adında bir liste oluşturduk, değer

Dizi oluşturmak için dizi komutunu kullanın. Örneğin, komutu kullanarak,

10 satır ve 5 sütundan oluşan iki boyutlu bir A dizisi oluşturduk. Diziyi öğelerle doldurmak için parametreli bir döngü kullanacağız. Örneğin,

T.N. Gubina, E.V. Andropova

Dizi elemanlarını ekranda görüntülemek için şu komutu kullanabilirsiniz:

Önceden bildirimde bulunulmadan bir dizi oluşturulabilir. Aşağıdaki örnekte, değerleri x i = sin i formülüyle hesaplanan, 5 öğeden oluşan tek boyutlu bir x dizisi oluşturduk.

Dizilerle çalışmanın sakıncası, dizi elemanlarının değerlerinin bir sütunda görüntülenmesidir. (İki boyutlu) bir dizinin değerlerinin matris biçiminde görüntülenmesi çok daha uygundur. Bu amaçlar için genmatrix komutunu kullanabilirsiniz. Örneğin, oluşturmak için iki boyutlu dizi(matris) komut aşağıdaki biçimde verilmelidir:

Ortaya çıkan dizinin çıktısını alalım:

1.7. Maxima'da hesaplama sürecinin yönetilmesi

Maxima bilgisayar matematik sistemi sembolik matematik sistemlerine aittir. Bu nedenle (varsayılan olarak) sistem sonucu sembolik biçimde üretir. Yani özel bir komut belirtmezseniz sistem

Bölüm 1 Maxima bilgisayar matematik sisteminde çalışmanın temelleri

Hesaplamalar sırasında elde edilen sonuçları hiçbir zaman yaklaşık gerçek sayı biçiminde sunmayacaktır. Örneğin, giriş hücresine komut2 girersek şunu elde ederiz:

Hesaplamalar sırasında elde edilen sonucun formda sunulmasına ihtiyaç duyulursa gerçek Numara, bu durumda sisteme özel bir komut vermeniz gerekir. Örneğin şunu yapabilirsiniz: Yaklaşık 2 değeri elde etmek istiyorsanız menü öğesini seçin Sayısal hesaplamalar→Kaymak için(tek bir duyarlık numarasına) (veya BigFloat'a

(çift duyarlıklı sayıda)). Sonuç şöyle görünecek:

Maxima'daki "%" işareti son seansta elde edilen sonucu ifade etmek için kullanılır. Kullanıcı değişkenlerini girmeye ve ardından elde edilen değerleri kullanmaya gerek yoksa bu kullanışlı olabilir.

Hesaplama sürecini kontrol etmek için sözde "hesaplama kilitleri". Engelleme tek bir kesme işareti kullanılarak yapılır. Özü:

bir işlevin veya değişkenin adının önüne kesme işareti koyarsanız, işlevin kendisinin (ancak bağımsız değişkenlerinin değil) veya değişkenin hesaplanması engellenir;

parantez içine alınmış bir ifadenin önüne kesme işareti koyarsanız, ifadenin tamamı, yani içerdiği tüm işlevler ve bu işlevlerin tüm argümanları hesaplanmadan kalacaktır.

Örneğin bir f x fonksiyonu tanımlayalım ve fonksiyonun x = 0 noktasındaki değerini hesaplamaya çalışırken elde edilen sonuçları karşılaştıralım.

Gördüğümüz gibi kesme işareti ilk durumda fonksiyon değerini hesaplama girişimini engelledi.

Başka bir örnek:

T.N. Gubina, E.V. Andropova

İki kesme işareti kullanarak hesaplamaları engellemenin aksine, sistemi hesaplama yapmaya zorlayabilirsiniz - "zorla hesaplama". Örneğin,

Gördüğünüz gibi hesaplamaları engelleme komutunu vermememize rağmen sistem integrali hesaplamayı reddetti. Komutun önüne çift kesme işareti koyarsak aşağıdaki sonucu elde ederiz:

Maxima sisteminde varsayılan olarak tüm açıların radyan cinsinden ölçüldüğünü lütfen unutmayın. Bu nedenle, derece cinsinden açılarla çalışmanız gerekiyorsa, radyanı dereceye dönüştürme formülünü hatırlamanız gerekecektir.

Maxima terminolojisinde bir ifadenin değerlendirilmemiş biçimine “isim biçimi”, değerlendirilmiş biçimine ise “fiil biçimi” denir.

Bilgisayar matematik sistemlerinde çalışırken bir sonraki önemli nokta, değişkenlerin veya ifade parçalarının değerlerini işlevlere ve ifadelere dönüştürme yeteneğidir. Sistemin bu amaçlar için sağlanan bazı yeteneklerine bakalım.

Örneğin cos x 4sin x − x ifadesinde x değişkenleri yerine belirli bir değerin (örneğin, ) kullanılması gerekir.

Bölüm 1 Maxima bilgisayar matematik sisteminde çalışmanın temelleri

Böylece, alt komut herhangi bir değişkenin değerini bir ifadede değiştirmenize olanak sağlar. Aslında Maxima'da değerleri bir ifadeye veya fonksiyona yerleştirmek için birkaç komut vardır.

1.8. Basit ifade dönüşümleri

Maxima sisteminde Otomatik Basitleştirme işlevi varsayılan olarak etkindir; sistem girilen ifadeyi herhangi bir komut olmadan kendisi basitleştirmeye çalışır.

Örnek. Aşağıdaki sayısal ifadenin değerini bulmak gerekli olsun.

1 1− 4

girişler: 2 1 4 4 5 7 .

İfadeyi Maxima sistem dilinin kurallarına göre ayarlayalım.

Gördüğünüz gibi herhangi bir komut belirtmemize rağmen sistem ifadenin değeriyle yanıt verdi.

Sistemi sonucun değil de ifadenin kendisinin çıktısını almaya nasıl zorlayabilirsiniz? Bunu yapmak için basitleştirme işlevi simp: false$ komutu kullanılarak devre dışı bırakılmalıdır. Sonra şunu elde ederiz:

Basitleştirme işlevini etkinleştirmek için simp:true$ komutunu belirtmeniz gerekir. Otomatik basitleştirme işlevi hem sayısal hem de sayısal olmayan bazı ifadelerle çalışabilir. Örneğin,

T.N. Gubina, E.V. Andropova

Girerken, herhangi bir ifadede onu değiştirerek önceki hücrelerden herhangi birine adıyla başvurabiliriz. Ayrıca son çıkış hücresi % ile, son giriş hücresi ise _ ile gösterilir. Bu, numarasının ne olduğuna dikkatinizi dağıtmadan en son sonuca erişmenizi sağlar. Ancak hücrelere yapılan bu tür çağrılar kötüye kullanılmamalıdır, çünkü belgenin tamamı veya bireysel giriş hücreleri yeniden değerlendirilirken hücre sayıları arasında bir tutarsızlık meydana gelebilir.

hesaplanan sonuç 5 katıdır.

Hücre adları yerine değişkenlerin kullanılması ve bunların adlarının herhangi bir ifadeye atanması önerilir. Bu durumda herhangi bir matematiksel ifade değişkenin değeri olarak hareket edebilir.

Değişken adlarının değerleri belgeyle yapılan tüm çalışma boyunca korunur. Bir değişkenin tanımını kaldırmak gerekiyorsa bunun kill(name) işlevi kullanılarak yapılabileceğini hatırlayalım; burada name, yok edilecek ifadenin adıdır; Üstelik bu, sizin tarafınızdan atanan bir ad veya herhangi bir giriş veya çıkış hücresi olabilir. Benzer şekilde, kill(all) komutunu girerek (veya Maxima->Clear Memory menüsünü seçerek) tüm hafızayı temizleyebilir ve tüm isimleri serbest bırakabilirsiniz. Bu durumda tüm G/Ç hücreleri de temizlenecek ve numaralandırmaları yeniden birden başlayacaktır.

Otomatik basitleştirme işlevi her zaman bir ifadeyi basitleştiremez. Buna ek olarak, ifadelerle çalışmak üzere tasarlanmış bir dizi komut vardır: rasyonel ve mantıksız. Bunlardan bazılarına bakalım.

sıçan(ifade) - rasyonel bir ifadeyi kanonik biçimine dönüştürür: tüm parantezleri açar, sonra her şeyi ortak bir paydaya getirir, toplar ve azaltır; sonlu ondalık gösterimdeki tüm sayıları rasyonel sayılara dönüştürür. Rasyonel olmayan herhangi bir dönüşüm durumunda kanonik form otomatik olarak "iptal edilir"

ratsimp(expression) - rasyonel dönüşümler yoluyla ifadeyi basitleştirir. Aynı zamanda “derinlemesine” çalışır, yani irrasyoneldir

Bölüm 1 Maxima bilgisayar matematik sisteminde çalışmanın temelleri

İfadenin bazı kısımları atomik olarak kabul edilmez ancak içlerindeki tüm rasyonel unsurlar dahil edilerek basitleştirilmiştir.

fullratsimp(ifade) - Ratsimp() işlevini iletilen ifadeye sırayla uygulayarak rasyonel bir ifadeyi basitleştirmeye yönelik bir işlev. Bu nedenle fonksiyon ratsimp() fonksiyonundan biraz daha yavaştır ancak daha güvenilir bir sonuç verir.

genişlet(ifade) - bir ifadedeki parantezleri tüm iç içe geçme düzeylerinde genişletir. ratexpand() işlevinden farklı olarak kesirli terimleri ortak bir paydaya indirmez.

radcan(ifade) - logaritmik, üstel ve kuvvet fonksiyonlarını tamsayı olmayan rasyonel üslerle, yani köklerle (radikaller) basitleştirmek için bir işlev.

Çoğu zaman, Maxima'da bir ifadeyi basitleştirmeye çalıştığınızda, bu aslında onu yalnızca daha karmaşık hale getirebilir. İfadede yer alan değişkenlerin hangi değerleri alabileceğinin bilinmemesi nedeniyle sonuçta bir artış meydana gelebilir. Bunu önlemek için bir değişkenin alabileceği değerlere kısıtlamalar getirmelisiniz. Bu, varsayma(koşul) işlevi kullanılarak yapılır. Bu nedenle, bazı durumlarda en iyi sonuç radcan()'ın ratsimp() veya fullratsimp() ile birleştirilmesiyle elde edilebilir.

- a 2 b 2

aba1/4

Örnek. Bir ifadeyi basitleştirme

b a b a 2 1/4

a 2− b 2.

İfademizi rasyonel olarak basitleştirmek için komutu uygularsak şunu elde ederiz:

Varsayalım(koşul) fonksiyonunu kullanalım ve bunu ifadede yer alan bazı değişkenlerin değerlerine kısıtlamalar getirmek için kullanalım:

T.N. Gubina, E.V. Andropova

Gördüğünüz gibi kompakt bir sonuç elde ettik.

1.9. Cebirsel denklemleri ve sistemlerini çözme

İÇİNDE Maxima sistemi, doğrusal ve doğrusal olmayan denklemleri çözmek için aşağıdaki sözdizimine sahip yerleşik çözme işlevini kullanır:

çöz (ifade, x) – cebirsel denklemi ifadeyi x değişkenine göre çözer

çöz (ifade) – cebirsel denklem ifadeyi denklemde yer alan bilinmeyen değişkene göre çözer.

Örneğin 5 x + 8 = 0 doğrusal denklemini çözelim. Bunu yapmak için araç çubuğundaki Çöz düğmesini kullanın, tıklandığında Çöz iletişim kutusu görünür (Şek. 13). Orijinal denklemi girin ve Tamam'a tıklayın.

Pirinç. 13. Denklemleri çözmek için iletişim kutusu

Sonuç olarak, çalışma belgesinde denklemi çözmek için bir komut oluşturulacak ve bulunan çözüm görüntülenecektir:

Bölüm 1 Maxima bilgisayar matematik sisteminde çalışmanın temelleri

Denklem çözme komutu, bulunan çözümleri kontrol etmeyi kolaylaştıracak şekilde belirtilebilir. Bunu yapmak için ev ikame komutunun kullanılması tavsiye edilir.

Örneğin x 3 + 1 = 0 cebirsel denklemini çözelim ve bulunan çözümleri kontrol edelim.

Sonuç olarak üç kök elde ettik. Resh adı altında denklemin kökleri olan değerlerin bir listesini saklıyoruz. Liste öğeleri köşeli parantez içine alınır ve virgülle ayrılır. Bu tür liste öğelerinin her birine numarasıyla başvurulabilir. Çözümleri kontrol ederken bunu kullanalım: Köklerin her birini sırasıyla orijinal denklemde yerine koyalım.

Cebirsel bir denklemin tüm yaklaşık çözümlerini bulmak için allroots (expr) komutunu kullanın. Bu komutçöz komutu denklem için bir çözüm bulamadığında veya çözüm çok kullanışsızsa (örneğin aşağıdaki denklem için) kullanılabilir: (1 + 2 x )3 = 13,5(1 + x 5 ) .

T.N. Gubina, E.V. Andropova

Çöz komutunu kullanarak doğrusal cebirsel denklem sistemlerinin çözümlerini bulabilirsiniz. Örneğin bir doğrusal denklem sistemi

M 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 şu şekilde çözülebilir:

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

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

1. Sistemin denklemlerinin her birini eq1, eq2, eq3, eq4, eq5 isimleri altında kaydedelim.

2. Sisteme çözüm buluyoruz.

3. Bulunan çözümü kontrol edelim:

Böylece ortaya çıkan çözümü sistemin denklemlerinin her birine yerleştirirken doğru eşitlikler elde edilir.

Maxima sisteminin çözme işlevi, çözüm benzersiz değilse doğrusal denklem sistemlerini de çözebilir. Daha sonra bilinmeyen değişkenin serbest olduğunu ve herhangi bir değeri alabileceğini göstermek için %r_number gibi gösterime başvuruyor.

Doğrusal olmayan denklem sistemlerini çözmek için algsys komutunu kullanabilirsiniz. Örneğin denklem sisteminin çözümünü bulalım