MATLAB – Ako to začalo

MATLAB je dnes považovaný za komplexný výpočtový systém s veľkým množstvom funkcií. Tvorí ho samotné výpočtové jadro, množstvo rozšírení v podobe toolboxov alebo nástrojov pre grafické modelovanie (Simulink a Stateflow). Tento program sprevádza vývojárov, inžinierov, výskumníkov a študentov viac ako 35 rokov a asi ani netušíte, že je možné v ňom nájsť aj odkaz Alana Turinga.

Ak chceme zistiť ako to celé začalo, musíme sa pozrieť do 50. rokov 20. storočia. Významnú úlohu v tomto príbehu zohral Cleve Moler, John Todd, Jim Wilkinson a Jack Little. Práve Cleve a Jack zohrajú úlohy hlavné. Cleve ako študent Caltechu (California Institute of Technology) nastúpil k profesorovi Johnovi Toddovi. Todd ako veľký nadšenec počítačov a algoritmizácie viedol svojho študenta k tvorbe algoritmov pre počítacie stroje. Cleve riešil zadania jednak na mechanických strojoch, ale neskôr aj na elektrónkovom počítači Burroughs 205 Datatron.

obr.1 Burroughs 205 Datatron, 1959

obr.1 Burroughs 205 Datatron, 1959

Po absolvovaní kurzu numerickej analýzy v roku 1962 vytvoril program vo Fortrane na riešenie systému lineárnych rovníc. Program bol uložený na niekoľkých diernych štítkoch. Moler pokračoval v postgraduálnom štúdiu. V roku 1965 predložil svoju kandidátsku prácu „Finite Difference Methods for the Eigenvalues of Laplace’s Ope­rator“. Experimenty vykonával na tzv. L-funkcii (L-shaped). Práve táto funkcia sa stala neskôr logom spoločnosti The MathWorks.

obr.2 vlastné čísla L-shaped membrány

obr.2 vlastné čísla L-shaped membrány

V roku 1971 vychádza kniha profesora Wilkinsona o rôznych aspektoch počítania s maticami. Wilkinson bol významnou osobnosťou v oblasti numerických metód pomocou ktorých určoval vlastné čísla matíc. Na týchto úlohách pracoval s Alanom Turingom v rámci projektu Pilot ACE. Publikácia Wilkinsona obsahovala aj algoritmy v jazyku Algol. Skupina matematikov, do ktorej patril aj Cleve, prepísala algoritmy do Fortranu. Vznikla tak knižnica EISPACK. Vzápätí nasledovala tvorba knižnice LINPACK. Tá sa zamerala na riešenie sústavy lineárnych rovníc.

obr.3 autori knižnice LINPACK Jack Dongarra, Cleve Moler, Pete Stewart a Jim Bunch, 1978

obr.3 autori knižnice LINPACK Jack Dongarra, Cleve Moler, Pete Stewart a Jim Bunch, 1978

Cleve Moler už ako profesor na univerzite v Novom Mexiku využíval knižnice pri výučbe teórie matíc a numerickej analýzy. Študenti však mali s používaním knižníc problémy, nakoľko ich použitie bolo príliš komplikované. Vyžadovala si znalosť Fortranu a každý zásah do knižnice opätovnú kompiláciu. Cleve sa preto rozhodol knižnice prepojiť a vytvoriť k ním špeciálne rozhranie. V tomto momente vznikol MATLAB. Obsahoval spolu 80 funkcií, ktoré sú v MATLABe dodnes.

obr.4 pôvodné funkcie MATLAB

obr.4 pôvodné funkcie MATLAB

Už vtedy bola matica základným dátovým typom. Preto sa stal MATLAB medzi študentami obľúbený. Pomohol im jednoducho pracovať s maticami, ktoré sú v technických disciplínach kľúčové. Nemuseli tak sústreďovať svoju pozornosť na programovanie komplikovaných algoritmov na prácu s maticami, ale na riešenie svojich technických problémov. Týmto mottom sa v spoločnosti MathWorks riadia dodnes. MATLAB 1.0 bežal na sálových počítačoch. Obsahoval aj jednoduché grafické funkcie.

V roku 1978, keď sa Moler dostal k osobnému počítaču Tektronix 4081, upravil svoj program pre tento počítač.

obr.5 Tektronix 4081, 1978

obr.5 Tektronix 4081, 1978

Jednalo sa o prvú implementáciu MATLABu na osobný počítač. Potenciál MATLABu na osobnom počítači sa rozhodol preskúmať v rámci hosťovania (sabatikal) na Stanforde. Viedol tu kurz numerickej analýzy. Polovicu študentov tvorili matematici a informatici. MATLAB ich nezaujal. Bol podľa nich napísaný v neefektívnom Fortrane. Druhá polovica boli inžinieri. Tí boli pre zmenu z MATLABu nadšení. Zistili, že sa pomocou MATLABu dá riešiť množstvo úloh, ktoré mali v škole v rámci iných predmetov (teória riadenia, spracovanie signálov a predmety s dôrazom na maticové výpočty). MATLAB sa ukázal ako spoľahlivá maticová kalkulačka. Medzi študentami bola aj dvojica Jack Little a Steve Bangert. Jack správne odhadol možnosti prichádzajúcej platformy spoločnosti IBM. Tá v roku 1981 uviedla na trh prvý počítač typu PC. Preto Jack spoločne so svojím kolegom Steveom preprogramovali MATLAB z Fortranu do C. Neskôr pridali aj možnosť pridávať funkcie pomocou .m súborov. Jack naprogramoval aj prvú verziu Control System Toolboxu. Časti pôvodného kódu nájdeme aj v aktuálnej verzií. Práca na novej verzii MATLABu im zabrala jeden a pol roka. Využili pri tom počítač COMPAQ portable. Počítač mal 256kB pamäte, dvojicu FDD 5–1/4“ mechaník. HDD by ste v počítači nenašli.

obr.6 počítač Jacka Little

obr.6 osobný počítač Jacka Little

V roku 1984 Moler, Little a Bengert založili spoločnosť The MathWorks so sídlom v Kalifornii, ktorá uviedla už komerčnú verziu MATLAB 1.0 pre MS DOS. Prvým klientom sa stala univerzita MIT. Vo februári 1985 si objednali 10 kópií MATLABu. V súčasnosti sídli MathWorks v meste Natick neďaleko Bostonu v štáte Massachusetts. Zamestnáva viac ako 3000 pracovníkov. MATLAB má viac ako 2 milióny používateľov po celom svete medzi ktorých patria spoločnosti ako Tesla, Continental, Siemens, Volvo, BMW, Huawei, Apple a mnoho ďalších. Mnoho ich nájdete aj na Slovensku či v Česku.

obr.7 Cleve Moler a Martin Foltin – sales kickoff Boston 2017

obr.7 Cleve Moler a Martin Foltin – sales kickoff Boston 2017


Použité zdroje:

The Origins of MATLAB
The Growth of MATLAB and The Mathworks over Two Decades
Alan Turing and His Connections to MATLAB
Cleve Moler – Origins of MATLAB (youtube)
1976 Matrix Singular Value Decomposition Film (youtube)
Cleve Moler – Evolution of MATLAB – TUM Speakers Series (youtube)
About Dr.Cleve Moler (youtube)

Martin Foltin (HUMUSOFT), 19.6.2018