Specifikace MathML 3.0: tabulky, matice a determinanty

28. 11. 2012
Doba čtení: 4 minuty

Sdílet

Další článek, ve kterém budeme pokračovat ve výkladu specifikace MathML 3.0, která, jak už bylo řečeno v minulých dílech, slouží pro zobrazování matematických vzorců ve webovém dokumentu. Minule jsme si vysvětlili pár základních tagů, pro zápis jednodušších rovnic. Dnes se podíváme na zápis matic.

Pokud již máme definovaný jmenný prostor, můžeme začít se zápisem do tagů <math></math>. Jako v každém matematickém zápisu v jazyce MathML, i při zápisu matic je potřeba nejprve použít tag <mrow>.

Nyní, pokud chceme obalit náš zápis závorkami, zapíšeme před vlastní hodnotu matice do tagu Math Operator <mo> ( </mo>.

Pro definování matice má tento jazyk tagy <mtable></mtable>. Samozřejmě jde o zápis matematické tabulky, díky níž můžeme zapisovat nejen již zmíněné matice, ale i determinanty, nebo třeba jen názorné tabulky při určování vlastností funkcí apod.

Po definování matematické tabulky, vytváříme nejprve řádky tabulky pomocí tagů <mtr></mtr>, a následně do nich jednotlivé buňky na řádce pomocí <mtd></mtd>. Číselnou hodnotu samozřejmě obalujeme ještě do Math Number, neboli <mn></mn>.

Pro větší názornost následuje ukázka jednoduché matice.

<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
  <mo> ( </mo>
  <mtable>
    <mtr>
      <mtd> <mn>3</mn> </mtd>
      <mtd> <mn>1</mn> </mtd>
      <mtd> <mn>8</mn> </mtd>
    </mtr>
    <mtr>
      <mtd> <mn>6</mn> </mtd>
      <mtd> <mn>3</mn> </mtd>
      <mtd> <mn>0</mn> </mtd>
    </mtr>
    <mtr>
      <mtd> <mn>6</mn> </mtd>
      <mtd> <mn>8</mn> </mtd>
      <mtd> <mn>8</mn> </mtd>
    </mtr>
  </mtable>
  <mo> ) </mo>
</mrow>
</math>

( 1 3 8 0 1 0 0 0 1 )

Nyní, pokud bychom chtěli, můžeme podle znalostí z minulého dílu, jednoduše dopsat matici nějaké označení (identifikátor) pomocí Math Identifier <mi></mi> před závorku, která nám matici otvírá a pomocí Math Operator, do kterého zapíšeme rovnítko. Takto:

<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
	
<mi>E</mi>
<mo> = </mo>

  <mo> ( </mo>
  <mtable>
    <mtr>
      <mtd> <mn>3</mn> </mtd>
      <mtd> <mn>1</mn> </mtd>
      <mtd> <mn>8</mn> </mtd>
    </mtr>
    <mtr>
      <mtd> <mn>6</mn> </mtd>
      <mtd> <mn>3</mn> </mtd>
      <mtd> <mn>0</mn> </mtd>
    </mtr>
    <mtr>
      <mtd> <mn>6</mn> </mtd>
      <mtd> <mn>8</mn> </mtd>
      <mtd> <mn>8</mn> </mtd>
    </mtr>
  </mtable>
  <mo> ) </mo>
</mrow>
</math>

E = ( 1 3 8 0 1 0 0 0 1 )

Pokud budeme chtít zapisovat determinanty, stačí změnit oblé závorky za svislé čáry |jako u zápisu absolutní hodnoty|. Ukázka je opět zde:

<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
	
<mi>Determinant A</mi>
<mo> = </mo>

  <mo> | </mo>
  <mtable>
    <mtr>
      <mtd> <mn>3</mn> </mtd>
      <mtd> <mn>1</mn> </mtd>
      <mtd> <mn>8</mn> </mtd>
    </mtr>
    <mtr>
      <mtd> <mn>6</mn> </mtd>
      <mtd> <mn>3</mn> </mtd>
      <mtd> <mn>0</mn> </mtd>
    </mtr>
    <mtr>
      <mtd> <mn>6</mn> </mtd>
      <mtd> <mn>8</mn> </mtd>
      <mtd> <mn>8</mn> </mtd>
    </mtr>
  </mtable>
  <mo> | </mo>
</mrow>
</math>

Determinant A = | 1 3 8 0 1 0 0 0 1 |

bitcoin_skoleni

Pokud bychom chtěli vytvořit tabulku pro zjištění průběhu funkce, můžeme postupovat následujícím způsobem. Vytvoříme si první řádek s nulovými body. Vytvoříme oddělující čáru a pod čarou vytvoříme například dvě řádky pro zápis klesajících a rostoucích částí.

Y = | X - 1 |


1 | x - 1 | - | +
<math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle scriptminsize="12pt">   
      <mrow>
      	<mtable>
        	<mtr>
            	<mtd>                 
                </mtd>
                <mtd>                 
                </mtd>
            	<mtd>
                 <mn> 1 </mn>
                </mtd>
            </mtr>
            <mtr>
            	<mtd>
                 <mo> | </mo>
                 <mi> x </mi>
                 <mo> - </mo>
                 <mn> 1 </mn>
                 <mo> | </mo>
                </mtd>
            	<mtd>
                 <mo> - </mo>
                </mtd>
                <mtd>
                 <mo> | </mo>
                </mtd>
                <mtd>
                 <mo> + </mo>
                </mtd>
            </mtr>
        </mtable>
      </mrow>
    </mstyle>
  </math>

Tímto bych završil dnešní díl o tabulkách, maticích a determinantech. Příště se podíváme na zápis elementárních matematických úkonů jako je sčítání, odečítání a násobení pod sebe.

Autor článku

Martin Smola je studentem ČVUT, věnuje se programování, web-designu, grafice a psaní článků. Pracuje na vlastním projektu 4dgraph.com, který umožňuje sdílet fotky, grafiku a textury.