erweiterte Koeffizientenmatrix mit gauss?

Formelsatz für Mathematik, Naturwissenschaften und Technik


Keba
Forum-Anfänger
Forum-Anfänger
Beiträge: 21
Registriert: Do 18. Nov 2010, 19:57

erweiterte Koeffizientenmatrix mit gauss?

Beitrag von Keba »

Hallo,

Ich will LGS lösen und dafür soll ich die Koeffizientenmatrix-Schreibweise verwenden, Google hat da diese Lösung gefunden:
% preamble ...
% Allowing matrices like {pmatrix}[cc|c]
\makeatletter
\renewcommand*\env@matrix[1][*\c@MaxMatrixCols c]{%
\hskip -\arraycolsep
\let\@ifnextchar\new@ifnextchar
\array{#1}}
\makeatother

\begin{document}
\begin{align*}
   \begin{pmatrix}[c|c]
      1 & 2\\
      2 & 3\\
   \end{pmatrix}
\end{align*}
\end{document}
Allerdings funktioniert dieser „Preamble-Hack“ nicht mit dem gauss-Paket. Wie bekomme ich am einfachsten eine senkrechte Linie in meine Matrix gezeichnet?

Grüße, Keba.

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

Hallo bitte erstelle doch ein Minimalbeispiel [2] ich habe nicht wirklich Lust zu raten welche Pakete du verwendest.
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

So ich habe mir grad gauss angeschaut und bin zum Schluss gekommen, dass es nicht so einfach umzudefinieren ist. Deshalb ein Vorschlag mit tkz-linknodes. Das ist recht pfiffig (also das Paket) und geht für mich etwas schneller als jetzt durch gauss durchsteigen. Allerdings muss man ein paar Parameter anpassen:
\documentclass{scrartcl} 
\usepackage[T1]{fontenc} 
\usepackage[ngerman]{babel} 
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{tkz-linknodes}% kann sein, dass das unter Windows anders heißt. 
\makeatletter 
\renewcommand*\env@matrix[1][*\c@MaxMatrixCols c]{% 
\hskip -\arraycolsep 
\let\@ifnextchar\new@ifnextchar 
\array{#1}%
}
\makeatother 

\begin{document}

\tikzset{ArrowStyle/.style={>=latex,->,text=black, shorten <=2pt, shorten >=6.5pt}} 
\tikzset{NodeStyle/.style={ inner xsep =0pt}}
\begin{NodesList}
\begin{align*} 
   \begin{pmatrix}[c|c] 
      1 & 2\AddNode\\
      2 & 3\AddNode\\
      0&0\AddNode\\
   \end{pmatrix}
\end{align*} 
\LinkNodes[margin=1 cm]{Von da nach da} 
\LinkNodes[margin=4 cm]{und da nach da} 
\end{NodesList}
\end{document}
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


Keba
Forum-Anfänger
Forum-Anfänger
Beiträge: 21
Registriert: Do 18. Nov 2010, 19:57

Beitrag von Keba »

Hallo,

Das wäre ein Minimalbeispiel:
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}         % Utf-8 encoding
\usepackage[T1]{fontenc}            % Makes umlauts searchable
\usepackage{lmodern}                % Nice font
\usepackage[ngerman]{babel}         % German typography
\usepackage{fancyhdr}               % Nice headers and footers
\usepackage{amsmath}                % Math: General
\usepackage{amssymb}                % Math: Symbols
\usepackage{amsthm}                 % Math: Theorems
\usepackage{amsfonts}               % Math: Fonts
\usepackage{gauss}                  % Math: Solving LES using Gauss algorithm
\usepackage{graphicx}               % Graphics support
\usepackage{tikz}                   % Create graphics
\usetikzlibrary{shapes,backgrounds} % Needed for tikz
\usepackage{pgfplots}               % Lets plot :)
% \usepackage{subfig}                 % Multiple figures
\usepackage{booktabs}               % Beautiful tables
\usepackage{marginnote}             % Margin to do commands
\usepackage{hyperref}               % Links

% Allowing matrices like {pmatrix}[cc|c]
\makeatletter
\renewcommand*\env@matrix[1][*\c@MaxMatrixCols c]{%
\hskip -\arraycolsep
\let\@ifnextchar\new@ifnextchar
\array{#1}}
\makeatother

\begin{document}
\section{pmatrix mit Hack}
\begin{equation*}
  (A|b) =  \begin{pmatrix}[ccc|c]
      1 & 0      & -3       & -3\\
      0 & \alpha & 7        &  4\\
      0 & 2      & \alpha+3 &  4
           \end{pmatrix}
\end{equation*}

\section{gauss}
\begin{equation*}
  (A|b) = \begin{gmatrix}[p]
      1 & 0      & -3       & -3\\
      0 & \alpha & 7        &  4\\
      0 & 2      & \alpha+3 &  4
      \rowops
        \mult{1}{\cdot \frac{1}{\alpha}}
        \swap{0}{2}
  \end{gmatrix}
\end{equation*}

\end{document}
Ich werde dann bald (vermutlich erst Sonntag) mal mit deiner Lösung rumspielen, danke dafür :)

Grüße, Keba.

guy.brush™
Forum-Century
Forum-Century
Beiträge: 185
Registriert: So 8. Aug 2010, 19:43
Wohnort: Earth

Beitrag von guy.brush™ »

Ich persönlich würde das gauss-Paket nutzen und auf den vertikalen Strich verzichten, weil es eigentilch auch ohne Strich einfach genug ist :).

Ansonsten wäre eine weitere, aber nicht so schöne, Lösung, eine weitere Spalte mit jeweils \vert einzufügen, der Strich wäre dann aber nicht durchgehend :).
Arch Linux - KDE - TeXLive - Kile - \me = Advanced Newbie

Interessensschwerpunkte: Mathematik- und Formelsatz sowie mathematische (Mikro-)Typographie
Offenes Problem: negierte \xarrow-Pfeile beliebiger Länge

Keba
Forum-Anfänger
Forum-Anfänger
Beiträge: 21
Registriert: Do 18. Nov 2010, 19:57

Beitrag von Keba »

guy.brush™ hat geschrieben:Ich persönlich würde das gauss-Paket nutzen und auf den vertikalen Strich verzichten, weil es eigentilch auch ohne Strich einfach genug ist :).
Find ich auch, meine Dozentin sieht das allerdings anders. Auf den Strich darf ich also nicht verzichten.
guy.brush™ hat geschrieben:Ansonsten wäre eine weitere, aber nicht so schöne, Lösung, eine weitere Spalte mit jeweils \vert einzufügen, der Strich wäre dann aber nicht durchgehend :).
Darauf bin ich sogar selber gekommen, allerdings habe ich einfach "|" verwendet, funktioniert -- wirklich schön ist es allerdings nicht.

Grüße, Keba.

guy.brush™
Forum-Century
Forum-Century
Beiträge: 185
Registriert: So 8. Aug 2010, 19:43
Wohnort: Earth

Beitrag von guy.brush™ »

Ohje, welch Kindergarten :(. Ich verstehe nicht, wieso man so engstirnig an der Uni oder FH noch sein muss.

Ich habe mir bloodworks Lösung nicht genau angeschaut, aber mir wäre das wohl zu viel Aufwand. Sofern du es nicht sonderlich häufig (also jetzt nur für 1-3 Übungsblätter) brauchst, würde ich dann auf die \vert-Variante zurückgreifen.

Falls du allerdings lediglich den Ergebnisvektor, bei uns oft $b$ genannt, nur extra kennzeichnen musst und eine vertikale Linie nur eine Möglichkeit ist, so fiel mir gerade noch farbliche Trennung ein, dass du die eine Spalte z.B. blau machst. Aber auch keine mega schöne Lösung.

Oder du spielst ein bisschen Revoluzer, nimmst nur die gauss-Variante und wackelst nachher ohne Lineal eine Linie hinein ;).


Edit: Mir ist noch etwas eingefallen und dann habe ich keine Ruhe gefunden. Ich finde, dass das die beste Lösung ist, wenn auch bisschen geschummelt :).
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}

\usepackage{amsmath}	% muss man wohl vor gauss laden
\usepackage{gauss}

\newmatrix{.}{)}{knuffig}	% ich glaube, das package "mathtools" implementiert \lparen und \rparen (oder so), die würde ich bevorzugen zu ")"

\begin{document}

\[
  \left(\begin{matrix}
    a_{11}	&	a_{12}	&	a_{13}\\
    a_{21}	&	a_{22}	&	a_{23}\\
    a_{31}	&	a_{32}	&	a_{33}
  \end{matrix}\,\right\vert	% ein \, sollte reichen, vielleicht gefällt dir aber auch \: oder \; besser
  \begin{gmatrix}[knuffig]
    b_1\\
    b_2\\
    b_3
    \rowops
      \mult{2}{\cdot \frac{1}{13} e^{\frac{2 \pi i 3}{11}} (e^{i \pi} + 1)}
      \add[\cdot 42]{2}{0}
      \add[\cdot \sin(2 \pi)]{2}{1}
  \end{gmatrix}
\]

\end{document}
Ich würde aber wohl stets bei \add immer den \cdot im optionalen Argument setzen, damit klar ist, dass man erst die Zeile multipliziert und dann addiert. Alternativ machst erst ein \mult und dann ein \add ohne optionales Argument.

Es befindet sich ein kleiner Witz in meinem Beispiel ;). Aber Achtung, man findet ihn vermutlich nur lustig, wenn man Mathematik mag und etwas nerdig und freakig drauf ist ;).
Arch Linux - KDE - TeXLive - Kile - \me = Advanced Newbie

Interessensschwerpunkte: Mathematik- und Formelsatz sowie mathematische (Mikro-)Typographie
Offenes Problem: negierte \xarrow-Pfeile beliebiger Länge

Benutzeravatar
localghost
Forum-Meister
Forum-Meister
Beiträge: 826
Registriert: Di 8. Jul 2008, 15:40
Wohnort: Braunschweig

Trick

Beitrag von localghost »

Es gäbe noch die Möglichkeit, mit einer zusätzlichen Spalte in der Gauss-Matrix einen Trennstrich einzufügen.
\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{%
  adieresis={ä},
  germandbls={ß},
  Euro={€}
}
\usepackage{babel}
\usepackage{lmodern}
\usepackage{gauss}

\newcommand*{\vsep}{\kern-\tabcolsep\vrule height\arraystretch\ht\strutbox depth\arraystretch\dp\strutbox\kern-\tabcolsep}


\begin{document}
  \begin{equation*}
    (A|b)=
    \begin{gmatrix}[p]
      1 & 0      & -3       & \vsep & -3\\
      0 & \alpha & 7        & \vsep &  4\\
      0 & 2      & \alpha+3 & \vsep &  4
      \rowops
        \mult{1}{\cdot \frac{1}{\alpha}}
        \swap{0}{2}
    \end{gmatrix}
  \end{equation*}
\end{document}

Thorsten
TeX und LaTeX, Fragen und Antworten – TeXwelt

¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
² System: TeX Live 2024, TeXworks

orak

Zusatzspalte

Beitrag von orak »

Hallo,
mir schien die Zusatzspalte ebenfalls die einfachste Lösung zu sein,
allerdings hatte ich bei dem Beispiel noch einen Abstand zwischen den
senkrechten Linien.
arraystretch scheint mir für gauss auch keine Rolle zu spielen.
Daher der folgende Vorschlag:
%\renewcommand{\arraystretch}{4} %test arraystretch ohne Wirkung
%arraystretch wird nicht verwendet
 \newdimen\asep 
 \asep=0.25\baselineskip
% \the\baselineskip \the\asep 
% \multiply \asep by 4
% \the\asep
\providecommand{\vo}{
 \text{\raisebox{-\asep}[0pt][0pt]{\rule[0pt]{0.8pt}{3.5\asep}}}}
\providecommand{\vu}{
 \text{\raisebox{-0.5\asep}[0pt][0pt]{\rule[0pt]{0.8pt}{\baselineskip}}}}
\providecommand{\vm}{
 \text{\raisebox{-\asep}[0pt][0pt]{\rule[0pt]{0.8pt}{\baselineskip}}}}
\begin{flalign*}
  &      
   \begin{gmatrix}[p]
    1   &  1  &  1  &   1 &\vo& 38\\
    27  &  9  &  3  &   1 &\vm& 52\\
    3   &  2  &  1  &     &\vm& 15 \\
    18  &  2  &     &     &\vu& 0
   \rowops     
     \add[\cdot (-1)]{0}{1}
  \end{gmatrix}  
%hier kommt mehr
\end{flalign*}
Grüße

Antworten