Difference between revisions of "Matrix in maths"

From Wiki
Jump to navigation Jump to search
(Adding description of the optional parameter of \VL and \HL)
m
 
(3 intermediate revisions by 2 users not shown)
Line 83: Line 83:
 
\stopmymatrix
 
\stopmymatrix
 
\stopformula
 
\stopformula
Here is block matrix:
+
Here is a block matrix:
 
\startformula
 
\startformula
 
\startmymatrix
 
\startmymatrix
Line 93: Line 93:
 
</context>
 
</context>
  
The two commands {{cmd|VL}} and {{cmd|HL}} take an optional parameter which defines the thickness of the rule and its color. So '''\HL[3, red]''' will produce a red horizontal rule three times thicker than the default matrix rule. The rule thickness for a specific matrix is defined with the '''rulethickness''' parameter of {{cmd|definemathmatrix}}.
+
{{todo|regenerate examples after the wiki context has been updated}}
 +
 
 +
The two commands {{cmd|VL}} and {{cmd|HL}} take an optional parameter which defines the thickness of the rule and its color. So {{cmd|HL|[3,red]}} will produce a red horizontal rule three times thicker than the default matrix rule. The rule thickness for a specific matrix is defined with the {{code|1=[rulethickness=]}} parameter of {{cmd|definemathmatrix}}.
  
 
<context source=yes>
 
<context source=yes>
Line 108: Line 110:
 
</context>
 
</context>
  
A '''\VL''' counts as a hidden cell. To interrupt a vertical line, use an empty cell.
+
A {{cmd|VL}} counts as a hidden cell. To interrupt a vertical line, use an empty cell.
  
 
<context source=yes>
 
<context source=yes>
 
\definemathmatrix[mymatrix][matrix:parentheses]
 
\definemathmatrix[mymatrix][matrix:parentheses]
  
 +
\starttext
 
Weird matrix
 
Weird matrix
 
\starttext
 
 
\startformula
 
\startformula
 
\startmymatrix
 
\startmymatrix

Latest revision as of 10:59, 30 November 2020

In order to type matrices in math formulas, there is the command \definemathmatrix. Once a certain type of matrix is defined, one can also add a simple command in order to type matrices in a Matlab or Scilab format.

Here are a few examples

%% defining matrix with parentheses
\definemathmatrix[pmatrix]
	[matrix:parentheses]
	[simplecommand=pmatrix]

%% defining matrix with brackets
\definemathmatrix[bmatrix]
	[matrix:brackets]
	[simplecommand=bmatrix]
 
%% defining determinant with bars
\definemathmatrix[determinant]
	[matrix:bars]
	[simplecommand=thedeterminant]
\starttext
Let $A$ be the matrix
\startformula
A := 
	\startpmatrix
		\NC 2 \NC 3 \NR
		\NC 1 \NC 2 \NR
	\stoppmatrix.
\stopformula
Show that
\startformula
{\rm det}(A) = \startdeterminant
	\NC 2 \NC 3 \NR
	\NC 1 \NC 2 \NR
\stopdeterminant = 1.
\stopformula
Compute the matrix $AB$ where $B$ is the matrix
\startformula
B := \pmatrix{2, -3 ; -1, 2}.
\stopformula
\stoptext

It is possible to have different delimiters on the left and on the right. For instance:

\definemathmatrix[pvmatrix]
	[left={\left(\thinspace},
	right={\thinspace\right|}]
	
\definemathmatrix[rpmatrix]
	[left={\left.\thinspace},
	right={\thinspace\right)}]

\starttext
\startformula
	\startpvmatrix
		\NC 11 \NC 12 \NC 13 \NR
		\NC 21 \NC 22 \NC 23 \NR
		\NC 31 \NC 32 \NC 33 \NR
	\stoppvmatrix
	\startrpmatrix
		\NC  0 \NR
		\NC  1 \NR
		\NC  2 \NR
	\stoprpmatrix
\stopformula

\stoptext

In ConTeXt LMTX beginning version 2020-11-27, it is possible to create « block » matrices where the blocks are separated by vertical or horizontal lines (respectively \VL and \HL). For instance the above example can be typeset more easily by the following (the output may be incorrect on this wiki: if this is the case copy the code below and typeset it on your machine with ConTeXt LMTX):

\definemathmatrix[mymatrix]
	[left={\left\lparent\thinspace}, % instead of the left parenthesis, one can use any other fence
	right={\thinspace\right\rparent}] % instead of the right parenthesis, one can use any other fence

\starttext
Here is $3 \times 3$ matrix with a column added to it
\startformula
	\startmymatrix
		\NC 11 \NC 12 \NC 13 \VL 0 \NR
		\NC 21 \NC 22 \NC 23 \VL 1 \NR
		\NC 31 \NC 32 \NC 33 \VL 2 \NR
	\stopmymatrix
\stopformula
Here is a block matrix:
\startformula
	\startmymatrix
		\NC A \VL  B \NR
		\HL
		\NC C \VL  D \NR
	\stopmymatrix
\stopformula


TODO: regenerate examples after the wiki context has been updated (See: To-Do List)


The two commands \VL and \HL take an optional parameter which defines the thickness of the rule and its color. So \HL[3,red] will produce a red horizontal rule three times thicker than the default matrix rule. The rule thickness for a specific matrix is defined with the [rulethickness=] parameter of \definemathmatrix.

\definemathmatrix[mymatrix][matrix:parentheses][rulethickness=2pt]

\starttext
\startformula
	\startmymatrix
		\NC A \VL[3,green]  B \NR
		\HL[10,red]
		\NC C \VL D \NR
	\stopmymatrix
\stopformula

A \VL counts as a hidden cell. To interrupt a vertical line, use an empty cell.

\definemathmatrix[mymatrix][matrix:parentheses]

\starttext
Weird matrix
\startformula
	\startmymatrix
		\NC A \VL B \NR
		\HL[red]
		\NC C \NC \NC D \NR
	\stopmymatrix
\stopformula

This allows things like

\startformula
	\startmymatrix
		\NC A \VL B \NR
		\HL
		\NC \NC C \NC \NR
	\stopmymatrix
	\qquad
	\startmymatrix
		\NC A_1 \VL B_1 \NR
		\HL
		\NC \vdots \NC \vdots \NC \vdots \NR
		\HL
		\NC A_n \VL B_n \NR
	\stopmymatrix
\stopformula
\stoptext