Movatterモバイル変換


[0]ホーム

URL:


Ugrás a tartalomhoz
Wikipédia
Keresés

Mathematica

Ellenőrzött
A Wikipédiából, a szabad enciklopédiából

Változat állapota

Ez a lap egy ellenőrzött változata

Ez aközzétett változat,ellenőrizve:2025. december 30.

Pontosságellenőrzött

Ez a lap vagy szakasz tartalmában elavult, korszerűtlen, frissítésre szorul.
Frissítsd időszerű tartalommal, munkád végeztével pedig távolítsd el ezt a sablont!
Mathematica
Mathematica
Mathematica

FejlesztőWolfram Research
Legfrissebb stabil kiadás14.3(stabil verzió, 2025. augusztus 5.)[1]
Programozási nyelvMathematica,C
Operációs rendszertöbbplatformos
Elérhetőangol, kínai, japán
Kategóriamatematikai programcsomag
Licenckereskedelmi, zárt forráskódú
A Mathematica weboldala

AMathematica széles körben használtmatematikaiprogramcsomag, megálmodójaStephen Wolfram, terjesztője az általa alapítottWolfram Research cég. A Mathematica hatékony,szakterület-specifikusprogramozási nyelv is egyben, amely akifejezés-átírásra (term-rewriting) alapozva számosprogramozási paradigma emulálására alkalmas.

Áttekintés

[szerkesztés]

Wolfram1986-ban kezdett dolgozni a programon, és1988-ban bocsátotta ki az első változatot. A Mathematicaprogramozási nyelv a kifejezés-átíráson alapul, de afunkcionális programozás, alistakezelés, amintaillesztés és aprocedurális programozás egyaránt megvalósítható benne, bár általában a funkcionális program a leghatékonyabb.

A Mathematica rendszer három fő részből áll:

  • AC nyelven írtmag (kernel) végzi a tényleges számításokat, az utasítások értelmezését.
  • Az eredményeket afelhasználói felület közli. A mag és a felhasználói felület (vagy bármely máskliens, például a felhasználó által írt programok) közötti kommunikáció aMathLink protokollt használja, gyakran akár hálózaton keresztül is. Több felhasználói felület kapcsolódhat egyetlen maghoz, és egy felhasználói felület kapcsolódhat több maghoz.
  • A harmadik fő részt a csomagok (tulajdonképpenprogramkönyvtárak) alkotják; ezek a Mathematica nyelvén írt kiegészítő programok, amelyek közül néhányhoz a licenc megvásárlásával juthatunk, számos továbbit pedig találhatunk ingyenesen a hálózaton, illetve megvásárolhatunk más cégektől.

Eltérően más matematikai programcsomagoktól, amilyen például aMaxima vagy aMaple, a Mathematica a tárolt szabályokat mindaddig alkalmazni próbálja az adott kifejezés átalakítására, amíg ez lehetséges, tehát egy fix pontot keres. Más szóval a Mathematica egyvégtelen kiértékelő rendszer.

Példák

[szerkesztés]

Az alábbi Mathematica utasítássorozat annak a 6×6-osmátrixnak adeterminánsát számolja ki, amelynek azi,j-edik elemei×j-vel egyenlő:

In[1]:=Det[Array[Times,{6,6}]]Out[1]=0

Tehát egy ilyen mátrix determinánsa 0.

Az alábbiakban numerikusan kiszámoljuk azex =x2 + 2 egyenlet gyökét azx = −1 pontból kiindulva.

In[2]:=FindRoot[Exp[x]==x^2+2,{x,-1}]Out[2]={x->1.31907}

Több programozási paradigma

[szerkesztés]

A Mathematicában több programozási paradigma is használható egy feladat megoldására. Tekintsük a következő egyszerű példát: táblázatot akarunk készíteni az 1 és 5 közötti számokból álló pároklegnagyobb közös osztójából. A beépítettGCD[] függvény visszaadja két egész szám legnagyobb közös osztóját.

AGCD[] függvényt azArray[] függvénnyel használva jutunk a legtömörebb megoldáshoz:

In[3]:=Array[GCD,{5,5}]Out[3]={{1,1,1,1,1},{1,2,1,2,1},{1,1,3,1,1},{1,2,1,4,1},{1,1,1,1,5}}

Legalább három további megoldást is adhatunk:

In[4]:=Table[GCD[x,y],{x,1,5},{y,1,5}]Out[4]={{1,1,1,1,1},{1,2,1,2,1},{1,1,3,1,1},{1,2,1,4,1},{1,1,1,1,5}}

EgyAPL-stílusú megközelítés:

In[5]:=Outer[GCD,Range[5],Range[5]]Out[5]={{1,1,1,1,1},{1,2,1,2,1},{1,1,3,1,1},{1,2,1,4,1},{1,1,1,1,5}}

AzOuter[] függvény a tenzorszorzat általánosítása,Range[] pedig aióta operátor megfelelője.

Egy procedurális megközelítés:

In[6]:=l1={};(*Inicializálás.Kezdetbenl1üreslista.*)Do[l2={};Do[l2=Append[l2,GCD[i,j]],{j,1,5}];l1=Append[l1,l2],(*l1-hezcsatoljukamárfelépítettl2részlistát*){i,1,5}]In[7]:=l1Out[7]={{1,1,1,1,1},{1,2,1,2,1},{1,1,3,1,1},{1,2,1,4,1},{1,1,1,1,5}}

Ez a megoldás lényegesen hosszabb, mint az előzők.

A kifejezések közös reprezentációja

[szerkesztés]

A Mathematica egyik vezérelve, hogy a benne reprezentálható objektumok szinte kivétel nélkül azonos szerkezetűek.Például a x4+1 kifejezés lényegében úgy jelenik meg, ahogyan szokásosan írjuk:

In[8]:=x^4+1Out[8]=1+x<sup>4</sup>

Ha azonban alkalmazzuk aFullForm parancsot:

In[9]:=FullForm[x^4+1]Out[9]=Plus[1,Power[x,4]]

világosabban látszik a belső reprezentáció alakja.

AMathematicában minden objektum kifejezésnek vagy egy (általában többszörösen összetett) függvény helyettesítési értékének tekinthető, ezért alakja ilyen:fej[e1,e2,], ahol az argumentumok további kifejezések(és ami lehetséges, hogy másképp jelenik meg, vagy másképpen lehet bevinni). Például a fenti kifejezés fejePlus, az olyan szimbólumok pedig, mintx, tulajdonképpenSymbol["x"] alakúak. A listák szerkezete is ilyen; itt a fejList.

Ez az elv az alapja annak, hogy listáktól teljesen különbözőszabályos kifejezéseken is elvégezhessük a listaműveleteket.

In[10]:=Expand[(Cos[x]+2Log[x^11])/13][[2,1]]Out[10]=2/13

A megfordításra is gyakran szükségünk lehet – a listák ugyanúgy módosíthatók, mint a szabályos kifejezések:

In[11]:=Map[Reverse,f[{2,x},{3,x},{4,x}]Out[11]=f[{x,2},{x,3},{x,4}].

Felhasználói felületek

[szerkesztés]

Az alapértelmezésként használt Mathematica felhasználói felületnek számos grafikai képessége van – beleértve a képletek szép megjelenítését (prettyprinting) –, és a felhasználóval egy jegyzetfüzeten keresztül kommunikál. A mag által küldött eredményeket (beleértve a grafikaiakat és a hangzókat is) hierarchikusan szervezett cellákba teszi (hasonlóan ahhoz, ahogyan például aMaple is teszi). A jegyzetfüzet formázható, szakaszokra osztható. A program 3.0 változatától kezdve a jegyzetfüzetek is kifejezésekként vannak reprezentálva, a mag ezeket is manipulálhatja.Mivel a felhasználói felület szövegszerkesztési képességei fontosak, ezért ma már elérhető ingyenesen a MathReader program, amelyikkel a Mathematica jegyzetfüzetek – amelyek tulajdonképpen szöveges állományok – olvashatók.

Létezik néhány további felhasználói felület is, mint például a JMath vagy a MASH, de a Mathematica felhasználói felület a legnépszerűbb.

Kapcsolat más alkalmazásokkal

[szerkesztés]

A MathLink protokoll nemcsak a Mathematica mag és a felhasználói felület közötti, hanem a mag és tetszőleges más alkalmazások közötti kommunikációhoz is használható. A Wolfram Research cég ingyenesen terjeszt egy olyan fejlesztői programot, amely arra szolgál, hogy C programozási nyelven írt programokat összekapcsoljon a Mathematica magjával a MathLink-en keresztül, valamint a J/Link-et, amely hasonló, egyszerűen használható csatoló program aJava programozási nyelvhez. Ha a J/Link-et használjuk, akkor megkérhetjük a Mathematica magját, hogy az végezze a számolásokat, továbbá egy Mathematica program betölthet tetszőleges Javaosztályt, manipulálhat Java objektumokat, és meghívhat módszereket (metódusokat), ily módon Mathematicából Javagrafikus felhasználói felületeket építhetünk.

Mathematica a világhálón

[szerkesztés]

AWolfram Research cég egy webMathematica nevű programot is gyárt, ami lehetővé teszi egyszerű webes interfészek fejlesztését a Mathematicához.

ASloane-enciklopédia a Mathematica és a Maple rendszert használja a leggyakrabban a matematikai programcsomagok közül sorozatok kiszámítására; mindkét nyelv saját adatbázissal rendelkezik az Sloane Enciklopédiában.

A Google a:" filetype:nb *.* "keresőkifejezésre (nb:Mathematica notebook) kb. 32000 találatot ad, ezek közül választva, (a szoftver birtokában) és futtatva lehet gyakorlatot szerezni a Mathematica használatában.

A Wolfram Player segítségével tanulmányozhatjuk mások Mathematica szoftverrel készült munkáit.

Források

[szerkesztés]
  1. New Features Everywhere: Launching Version 14.3 of Wolfram Language & Mathematica, 2025. augusztus 5. (Hozzáférés: 2025. november 12.)

További információk

[szerkesztés]
A lap eredeti címe: „https://hu.wikipedia.org/w/index.php?title=Mathematica&oldid=28651924
Kategóriák:
Rejtett kategória:

[8]ページ先頭

©2009-2026 Movatter.jp