Formel mit kbordermatrix ähnlichem Gebilde

Formelsatz für Mathematik, Naturwissenschaften und Technik


BennyS
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 10. Okt 2016, 14:14

Beitrag von BennyS »

Achso, entschuldigung:)
\documentclass[]{article}
\usepackage{amsmath}

\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}

Bordermatrix:

$
\bordermatrix{
  &           \cr
  & u_1       \cr
  & \vdots    \cr
  & u_k       \cr  
1 & u_{k+1}   \cr
  & u_{k+2}   \cr
3 & u_{k+3}   \cr
}
$

Matrix with tikz:

\begin{tikzpicture}
  \matrix
  [
    matrix of math nodes,
    left delimiter={(},
    right delimiter={)},
  ] (m) {
    u_1    \\
    \vdots \\
    u_k    \\
    u_{k+1}\\
    \vdots \\
    u_n    \\
  };
    \node[left=2.5em] at (m-4-1) {$1$};
    \node[left=2.5em] at (m-6-1) {$3$};
    
\draw [thin] (m-4-1.north west) -- (m-4-1.north east); 
\end{tikzpicture}

BMatrix:

$
\begin{pmatrix} u_1 \\ \vdots \\ u_k \\ \hline  u_{k+1} \\ \vdots \\ u_n \end{pmatrix} = \begin{pmatrix} v_1 \\ \vdots \\ v_k \\ \hline v_{k+1} \end{pmatrix} 
$


\end{document}
[/code]

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

BennyS hat geschrieben:-Wie kann ich den rechten Vektor/Matrix "nach oben verschieben" wie in der Zielform? Dies wird wahrscheinlich nur mit TikZ möglich sein oder?
Mit der Option yshift des Befehls \node. Du darfst die pmatrix-Umgebung im mathematischen Modus innerhalb der geschweiften Klammern des genannten TikZ-Befehls einsetzen. Der Knoten kann dann am Gleichheitszeichen ausgerichtet werden, welches an der mittleren Matrix ausgerichtet werden kann.
BennyS hat geschrieben:-Wie könnte ich am Ende dann alle 3 Matrizen zu einer Gleichung verbinden?
Mein Vorschlag:
\documentclass[tikz, border=5pt]{standalone}

\usepackage{upgreek}

\usetikzlibrary{matrix,positioning}

\tikzset{nodes={font=\sffamily}}

\begin{document}
\begin{tikzpicture}[
	mybordermatrix/.style = {
		matrix of math nodes,
		left delimiter={(},
	   right delimiter={)},
		inner xsep=0pt
	}
]

\node (assignment1) {=};


% Linke Matrix
\matrix
[
    mybordermatrix,
    left = of assignment1,
    xshift=5mm
] (left_matrix) {
    \widetilde u_2 \\
    \widetilde u_3 \\
    \cdot \\
    \cdot \\
    \cdot \\
    \cdot \\
    \cdot \\
    \cdot \\
    \cdot \\
    \cdot \\
    \cdot \\
    \cdot \\
    \cdot \\
    \cdot \\
    \widetilde u_1 \\
    \widetilde u_9 \\
    \widetilde u_{19} \\
};

% Waagerechter Strich über u_1
%\draw [very thick] (left_matrix-15-1.north west) -- (left_matrix-15-1.north east);
\draw [very thick] (-1.5,-2.1) -- (-.55,-2.1);

\foreach \i/\j in {15/1, 17/3}
{
    \node[left=1.2em] at (left_matrix-\i-1) {\j};
}


% Mittlere Matrix
\matrix[
    matrix of nodes,
    draw,
%    nodes=draw,
    row 1/.style={minimum height = 6cm},
    column 1/.style={minimum width = 3cm},
    rowheight/.style={minimum height = .5cm},
    columnwidth/.style={minimum width = .5cm},
    row 2/.style={rowheight},
    row 3/.style={rowheight},
    row 4/.style={rowheight},
    column 2/.style={columnwidth},
    column 3/.style={columnwidth},
    column 4/.style={columnwidth},
    right = of assignment1,
    xshift=-8mm,
    very thick,% Linienbreite
    inner sep=0pt,
] (middle_matrix) {
    $\upphi$    & \phantom{?} & ?           & \phantom{?}\\
    \phantom{O} & 1           & \phantom{1} & \phantom{1}\\
    O           & \phantom{1} & 1           & \phantom{1}\\
    \phantom{O} & \phantom{1} & \phantom{1} & 1			 \\	
};

% Waagerechte Trennlinie
\draw [very thick] (middle_matrix-2-1.north west) -- (middle_matrix-2-4.north east);
% Senkrechte Trennlinie
\draw [very thick] (middle_matrix-1-1.north east) -- (middle_matrix-4-1.south east);

% Außenbeschriftung an der rechten unteren Ecke
\node [right=3.7em] at (middle_matrix-2-2) {1};
\node [right=.8em] at (middle_matrix-4-4) {3};
\node [below=.8em] at (middle_matrix-4-4) {3};
\node [below=3.7em] at (middle_matrix-2-2) {1};


% Rechte Matrix
\matrix
[
    mybordermatrix,
    right = of middle_matrix,
    yshift=2.4cm
] (right_matrix) {
    \cdot \\
    \widetilde q \\
    \cdot \\
    \cdot \\
    ~\\
    \widetilde u_H \\
};

% Waagerechter Strich über u_H
%\draw [very thick] (right_matrix-5-1.north west) -- (right_matrix-5-1.north east);
\draw [very thick] (5.85,2) -- (6.6,2);


% Zeichen unter den Matrizen
\node [below = of assignment1, yshift=-3.2cm] (assignment2) {=};
\node [left = of assignment2, xshift=5mm, yshift=.7mm] {$\widetilde u$};
\node [right = of assignment2, xshift=5mm, yshift=.7mm] {$T$};
\node [right = of assignment2, xshift=47mm, yshift=.7mm] {$\widetilde v$};
\end{tikzpicture}
\end{document}
Die waagerechten Striche in der linken und rechten Matrix habe ich mit festen Koordinaten angegeben, weil das Setzen der Striche im Verhältnis zum jeweiligen Knoten immer Lücken ergibt. Bislang konnte ich nicht ergründen, wie diese Leerräumen geschlossen werden können.

Bild
Dateianhänge
3_Matrizen.png
3_Matrizen.png (21.67 KiB) 1726 mal betrachtet

BennyS
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 10. Okt 2016, 14:14

Beitrag von BennyS »

Bartman, danke danke danke!
Du hast mir unglaublich geholfen. Habe das ganze Prinzip jetzt auch besser verstanden und werde deine Vorlage nun noch etwas für meine Arbeit anpassen.
Danke!

rais
Forum-Guru
Forum-Guru
Beiträge: 407
Registriert: Di 21. Sep 2010, 00:37

Beitrag von rais »

Bartman hat geschrieben:Die waagerechten Striche in der linken und rechten Matrix habe ich mit festen Koordinaten angegeben, weil das Setzen der Striche im Verhältnis zum jeweiligen Knoten immer Lücken ergibt. Bislang konnte ich nicht ergründen, wie diese Leerräumen geschlossen werden können.
Die Klammern lassen sich verschieben, Stichwort `every ... delimiter' (hier zwar ausgehend vom Beispiel des OP, aber das tut dieser Problematik ja keinen Abbruch):
\documentclass[]{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}[>=latex,
    every left delimiter/.style={xshift=1em},% linke Klammern weiter rechts
    every right delimiter/.style={xshift=-1em},% rechte Klammern weiter links
    node distance=2em,% etwas einfacher, als jeden Node einzeln zu verschieben
    every node/.style={draw=red}% nur zur Demo: Node-Grenzen visualisiert
    ]
  \matrix[
    matrix of math nodes,
    left delimiter={(},
    right delimiter={)},
  ] (m) {
    u_1    \\
    \vdots\\% zum Vergleich so stehen gelassen, s.u.
    u_k    \\
    u_{k+1}\\% 
    \raisebox{1ex}{% damit die vertikalen Auslassungspunkte etwas zentrierer erscheinen...
      \ensuremath{% der Inhalt einer \raisebox wird (sonst) als Text angesehen
        \vdots}}\\
    u_n    \\
  };
%  \node[left=1.5em] at (m-4-1) {$1$};% entsprechend dem xshift (vgl. `every left delimiter' weiter oben) verkürzte Verschiebung nach links; alternativ:
  \node[left of=m-4-1] {$1$};% s.o. `node distance'
  \node[left of=m-6-1] {$3$};
  \draw[blue, <->] (m-6-1.south) -- +(-2em,0);% nur zur Demo: `node distance'
  \draw [thin] (m-4-1.north west) -- (m-4-1.north east);
\end{tikzpicture}
\end{document}
VG
Rainer
One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)

Antworten