<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="pmathml.xsl"?>
<!DOCTYPE html [
  <!ENTITY rightarrow "&#8594;">
  <!ENTITY Rightarrow "&#8658;">
  <!ENTITY Leftrightarrow "&#8660;">
  <!ENTITY Element "&#8712;">
  <!ENTITY Exists "&#8707;">
  <!ENTITY Sum "&#8721;">
  <!ENTITY setminus "&#8726;">
  <!ENTITY VerticalBar "&#8739;">
  <!ENTITY approx "&#8776;">
  <!ENTITY leq "&#8804;">
  <!ENTITY geq "&#8805;">
  <!ENTITY prec "&#8826;">
  <!ENTITY succ "&#8827;">
  <!ENTITY succeq "&#8829;">
  <!ENTITY preceq "&#8828;">
  <!ENTITY asymp "&#8781;">
  <!ENTITY subseteq "&#8838;">
  <!ENTITY Intersection "&#8898;">
  <!ENTITY Kscr "&#61242;">
  <!ENTITY Ropf "&#8477;">
  <!ENTITY Nopf "&#8469;">
  <!ENTITY Zopf "&#8484;">
  <!ENTITY pm "&#177;">
  <!ENTITY epsi "&#949;">
  <!ENTITY Hscr "&#8459;">
  <!ENTITY Lscr "&#8466;">
  <!ENTITY % htmlDTD PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
  %htmlDTD;
]>

<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Automatische Berechnung von Grenzwerten und Implementierung in Mathematica</title><style type="text/css">
     .mathcell {
       padding-left:2%;
     }
     .mathlabel {
       width:4em;
       float:left;
       padding-top:3px;
       color: #454F99;
       font-size: 10px;
       font-family: Helvetica;
     }
     .mathinput {
       position:relative;
       width:90%;
       margin-top:5px;
       border-width:1px 1px 0px 1px;
       border-style:solid;
       padding:0.5em;
       font-weight: bold;
       font-size: 14px;
       left:4em;
       background-color:#dddddd;
     }
     .mathoutput {
       position:relative;
       width:90%;
       margin-bottom:5px;
       border-width:0px 1px 1px 1px;
       border-style:solid;
       padding:0.5em;
       font-size: 14px;
       left:4em;
       background-color:#dddddd;
     }
     .mathprint {
       position:relative;
       width:90%;
       border-width:0px 1px 0px 1px;
       border-style:solid;
       padding:0.5em;
       font-size: 14px;
       left:4em;
       background-color:#cccccc;
     }
     .mathmessage {
       position:relative;
       width:90%;
       border-width:0px 1px 0px 1px;
       border-style:solid;
       padding:0.5em;
       font-size: 14px;
       left:4em;
       background-color:#ffffff;
     }
     .mathcellblock {
       margin-top:1em;
       margin-bottom:1em;       
     }
     .mmldisplay {
       text-align:center;
       margin-top:0.5em;
       margin-bottom:0.5em;       
     }
   </style></head><body>

<a href="Algorithmus.xml">Zurück</a> - <a href="Inhalt.xml">Inhalt</a> - <a href="index.html">Übersicht</a> - <a href="Praxis.xml">Vorwärts</a><br />


<a name="DetailsDerImplementierung" /><h2>5 Details der Implementierung</h2>

<a href="Algorithmus.xml">Zurück</a> - <a href="Inhalt.xml">Inhalt</a> - <a href="index.html">Übersicht</a> - <a href="Quelltext.xml">Vorwärts</a><br />

<a name="Paketdokumentation" /><h3>5.1 Paketdokumentation</h3>

Die Paketdokumentation ist Teil des Mathematica-Paketes MrvLimit und steht auf
der Projekt-Webseite zum Download bereit. Es existiert auch eine komplett in Englisch 
verfasste Version der Paketdokumentation.

<a name="LadenDesPakets" /><h4>5.1.1 Laden des Pakets</h4>
Das Paket wird wie jedes andere Mathematica-Paket mit <tt>Needs</tt> oder <tt>Get</tt> geladen.<br /><br />
Ist die Datei <tt>MrvLimit.m</tt> in einem Verzeichnis des Mathematica-Suchpfads <tt>$Path</tt>, 
kann das Paket direkt geladen werden:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[1]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>Needs</mi> <mo>[</mo> <ms>MrvLimit`</ms> <mo>]</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
<mtext>MrvLimit v1.0 © 2005 by Udo Richter</mtext>
</math></div></div>
<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
<mtext>mail: udo_richter(at)gmx.de</mtext>
</math></div></div>
<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
<mtext>web: http://urichter.cjb.net/MrvLimit</mtext>
</math></div></div>
<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
<mtext>Released under the GNU General Public License.</mtext>
</math></div></div>

</div>

Andernfalls muss beim Laden der komplette Pfad zur Datei angegeben werden:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[2]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>Needs</mi> <mo>[</mo> <mrow> <ms>MrvLimit`</ms> <mo>,</mo>
<ms>Pfad/Zur/Datei/MrvLimit.m</ms> </mrow> <mo>]</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
<mtext>MrvLimit v1.0 © 2005 by Udo Richter</mtext>
</math></div></div>
<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
<mtext>mail: udo_richter(at)gmx.de</mtext>
</math></div></div>
<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
<mtext>web: http://urichter.cjb.net/MrvLimit</mtext>
</math></div></div>
<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
<mtext>Released under the GNU General Public License.</mtext>
</math></div></div>

</div>

Wird das Paket nur innerhalb eines anderen Pakets benötigt, kann es auch 'stillschweigend' geladen werden:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[3]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mtext>MrvLimit`MrvLimitLoadSilent</mtext> <mo>=</mo>
<mi>True</mi> </mrow> <mo>;</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[4]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>Needs</mi> <mo>[</mo> <ms>MrvLimit`</ms> <mo>]</mo> </mrow>
</math></div></div>

</div>




<a name="EinfacheGrenzwertberechnungen" /><h4>5.1.2 Einfache Grenzwertberechnungen</h4>

Einfache Grenzwertberechnungen können analog zu Mathematicas <tt>Limit</tt>-Funktion durchgeführt werden:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[5]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi>f</mi> <mo>=</mo> <mfrac> <msup> <mi>x</mi> <mn>2</mn> </msup>
<mrow> <mrow> <mo>(</mo> <mrow> <mi>x</mi> <mo>+</mo> <mn>1</mn> </mrow>
<mo>)</mo> </mrow> <mo>⁢</mo> <mrow> <mo>(</mo> <mrow> <mi>x</mi>
<mo>-</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>
<mo>;</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[6]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow> <mi>f</mi> <mo>,</mo> <mrow>
<mi>x</mi> <mo>→</mo> <mi>∞</mi> </mrow> </mrow> <mo>]</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[6]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mn>1</mn>
</math></div></div>

</div>

Falls ein eindeutiger Grenzwert nicht existiert, kann die Richtung der Annäherung vorgegeben werden:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[7]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow> <mi>f</mi> <mo>,</mo> <mrow>
<mi>x</mi> <mo>→</mo> <mn>1</mn> </mrow> <mo>,</mo> <mrow>
<mi>Direction</mi> <mo>→</mo> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </mrow>
</mrow> <mo>]</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[7]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mi>∞</mi>
</math></div></div>

</div>

Dabei bedeutet -1 eine Annäherung von oben, +1 eine Annäherung von unten und 0 eine beidseitige Annäherung.
Falls <tt>MrvLimit</tt> im beidseitigen Modus auf eine Unstetigkeit trifft, werden beide einseitigen 
Grenzwerte als Liste ausgegeben:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[8]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow> <mi>f</mi> <mo>,</mo> <mrow>
<mi>x</mi> <mo>→</mo> <mn>1</mn> </mrow> </mrow> <mo>]</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[8]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mo>{</mo> <mrow> <mrow> <mo>-</mo> <mi>∞</mi> </mrow> <mo>,</mo>
<mi>∞</mi> </mrow> <mo>}</mo> </mrow>
</math></div></div>

</div>

Als optisch ansprechende Variante kann die Richtung der Annäherung durch ein 
hochgestelltes + oder - am Grenzwert angegeben werden:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[9]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow> <mi>f</mi> <mo>,</mo> <mrow>
<mi>x</mi> <mo>→</mo> <msup> <mn>1</mn> <mo>+</mo> </msup> </mrow> </mrow>
<mo>]</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[9]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mi>∞</mi>
</math></div></div>

</div>

Sollte <tt>MrvLimit</tt> einen Grenzwert nicht korrekt berechnen können, wird eine entsprechende 
Warnmeldung ausgegeben, und die Grenzwertaufgabe wird unausgewertet zurück geliefert:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[10]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow> <mrow> <mi>Sin</mi> <mo>[</mo> <mrow>
<mn>1</mn> <mo>/</mo> <mi>x</mi> </mrow> <mo>]</mo> </mrow> <mo>,</mo> <mrow>
<mi>x</mi> <mo>→</mo> <mn>0</mn> </mrow> </mrow> <mo>]</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathmessage"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi>MrvLimit</mi> <mtext>::</mtext> <mi>UnsupportedArgument</mi>
</mrow> <mo>⁢</mo> <mrow> <mo>:</mo> <mtext> </mtext> </mrow> 
<mrow> <mtext>MrvLimit does not support </mtext> <mrow> <mi>Sin</mi> <mo>[</mo>
<mi>x</mi> <mo>]</mo> </mrow> <mtext> for </mtext> <mrow> <mi>x</mi>
<mo>→</mo> <mi>∞</mi> </mrow> <mtext>, appearing in </mtext> <mrow>
<mi>Sin</mi> <mo>[</mo> <mi>x</mi> <mo>]</mo> </mrow> </mrow>

 </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[10]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow> <mrow> <mi>Sin</mi> <mo>[</mo>
<mfrac> <mn>1</mn> <mi>x</mi> </mfrac> <mo>]</mo> </mrow> <mo>,</mo> <mrow>
<mi>x</mi> <mo>→</mo> <mn>0</mn> </mrow> </mrow> <mo>]</mo> </mrow>
</math></div></div>

</div>

Die Spezialität des <tt>MrvLimit</tt>-Algorithmus liegt dabei insbesondere bei Funktionen mit verschachtelten 
Exponential- und Logarithmusfunktionen:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[11]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi>f</mi> <mo>=</mo> <mrow> <msup> <mi>ⅇ</mi> <mi>x</mi>
</msup> <mo>⁢</mo> <mrow> <mo>(</mo> <mrow> <mrow> <mo>-</mo> <msup>
<mi>ⅇ</mi> <mrow> <mfrac> <mn>1</mn> <mi>x</mi> </mfrac> <mo>-</mo> <msup>
<mi>ⅇ</mi> <mrow> <mo>-</mo> <msup> <mi>ⅇ</mi> <mi>x</mi> </msup>
</mrow> </msup> </mrow> </msup> </mrow> <mo>+</mo> <msup> <mi>ⅇ</mi>
<mrow> <msup> <mi>ⅇ</mi> <mrow> <mo>-</mo> <mi>x</mi> </mrow> </msup>
<mo>+</mo> <msup> <mi>ⅇ</mi> <mrow> <mo>-</mo> <msup> <mi>x</mi>
<mn>2</mn> </msup> </mrow> </msup> <mo>+</mo> <mfrac> <mn>1</mn> <mi>x</mi>
</mfrac> </mrow> </msup> </mrow> <mo>)</mo> </mrow> </mrow> </mrow> <mo>;</mo>
</mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[12]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow> <mi>f</mi> <mo>,</mo> <mrow>
<mi>x</mi> <mo>→</mo> <mi>∞</mi> </mrow> </mrow> <mo>]</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[12]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mn>1</mn>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[13]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>Limit</mi> <mo>[</mo> <mrow> <mi>f</mi> <mo>,</mo> <mrow> <mi>x</mi>
<mo>→</mo> <mi>∞</mi> </mrow> </mrow> <mo>]</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[13]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>Limit</mi> <mo>[</mo> <mrow> <mrow> <msup> <mi>ⅇ</mi>
<mi>x</mi> </msup> <mo>⁢</mo> <mrow> <mo>(</mo> <mrow> <mrow> <mo>-</mo>
<msup> <mi>ⅇ</mi> <mrow> <mrow> <mo>-</mo> <msup> <mi>ⅇ</mi> <mrow>
<mo>-</mo> <msup> <mi>ⅇ</mi> <mi>x</mi> </msup> </mrow> </msup> </mrow>
<mo>+</mo> <mfrac> <mn>1</mn> <mi>x</mi> </mfrac> </mrow> </msup> </mrow>
<mo>+</mo> <msup> <mi>ⅇ</mi> <mrow> <msup> <mi>ⅇ</mi> <mrow>
<mo>-</mo> <mi>x</mi> </mrow> </msup> <mo>+</mo> <msup> <mi>ⅇ</mi> <mrow>
<mo>-</mo> <msup> <mi>x</mi> <mn>2</mn> </msup> </mrow> </msup> <mo>+</mo>
<mfrac> <mn>1</mn> <mi>x</mi> </mfrac> </mrow> </msup> </mrow> <mo>)</mo>
</mrow> </mrow> <mo>,</mo> <mrow> <mi>x</mi> <mo>→</mo> <mi>∞</mi>
</mrow> </mrow> <mo>]</mo> </mrow>
</math></div></div>

</div>

MrvLimit unterstützt die Grundrechenarten +, -, <math xmlns='http://www.w3.org/1998/Math/MathML'>
<mo>&sdot;</mo>

</math>, /, Potenz und Wurzel und die Funktionen <tt>Log, Gamma, LogGamma, 
PolyGamma, Sin, Cos, Tan, ArcSin, ArcCos, ArcTan, Sec, Csc, Cot, ArcSec, ArcCsc</tt> und <tt>ArcCot</tt>.


<a name="FortgeschritteneOptionen" /><h4>5.1.3 Fortgeschrittene Optionen</h4>

MrvLimit unterstützt einige fortgeschrittene Optionen. Diese Optionen können in beliebiger 
Reihenfolge angegeben werden.

<a name="Ausgabeformat" /><h5>Ausgabeformat</h5>

Mittels <tt>Output→Limit</tt>, <tt>Output→LeadTerm</tt> und <tt>Output→SignedZero</tt>
kann die Ausgabe von MrvLimit verändert werden. Dabei ist <tt>Output→Limit</tt> die Standardvorgabe.<br /><br />

<tt>Limit[<i>f</i>,<i>x</i>→<i>lim</i>, Output→SignedZero]</tt>
gibt den Grenzwert normal aus, wenn der Grenzwert nicht 0 ist. Ist der berechnete Grenzwert 0, wird entweder 
<tt>Zero</tt> oder <tt>-Zero</tt> ausgegeben, je nachdem, ob in der Umgebung des Grenzwertes die Funktion
positiv oder negativ ist.<br /><br />

<tt>Limit[<i>f</i>,<i>x</i>→<i>lim</i>, Output→LeadTerm]</tt> gibt eine bei der 
Grenzwertberechnung ermittelte Asymptote aus. Die Ausgabe hat folgendes Format:<br /><br />

<tt>LeadTerm[<i>const</i>,{pwr[<math xmlns='http://www.w3.org/1998/Math/MathML'>
<mrow><msub><mi>base</mi> <mn>1</mn></msub>
</mrow>
<mo>,</mo><mrow><msub><mi>exp</mi> <mn>1</mn></msub>
</mrow>
</math>],pwr[<math xmlns='http://www.w3.org/1998/Math/MathML'>
<mrow><msub><mi>base</mi> <mn>2</mn></msub>
</mrow>
<mo>,</mo><mrow><msub><mi>exp</mi> <mn>2</mn></msub>
</mrow>
</math>],...
pwr[<math xmlns='http://www.w3.org/1998/Math/MathML'>
<mrow><msub><mi>base</mi> <mi>n</mi></msub>
</mrow>
<mo>,</mo><mrow><msub><mi>exp</mi> <mi>n</mi></msub>
</mrow>
</math>]}]</tt><br /><br />

<i>const</i> ist der nicht von x abhängige Teil der Funktion, <br />
<math xmlns='http://www.w3.org/1998/Math/MathML'>
<msub><mi>base</mi> <mi>i</mi></msub>

</math> sind exponentielle Basisfunktionen, <br />
<math xmlns='http://www.w3.org/1998/Math/MathML'>
<msub><mi>exp</mi> <mi>i</mi></msub>

</math> sind die reellen, konstanten Exponenten, die die Ordnung repräsentieren, 
in der die Basisfunktionen auftreten.<br /><br />

Die zurückgegebenen Terme sind in interner Darstellung belassen, um deren spezielle Struktur zu erhalten. 
Durch Anwendung der Funktion <tt>FromInternal[<i>f</i>,<i>x</i>]</tt> kann die allgemeine Mathematica-Darstellung 
zurück gewonnen werden. Mehr zur internen Darstellung im Kapitel über Hilfsfunktionen.<br /><br />


Alle Basisfunktionen sind Exponentialfunktionen, sind positiv und haben für <math xmlns='http://www.w3.org/1998/Math/MathML'>
<mi>x</mi>
<mo>&rightarrow;</mo><mi>lim</mi><mtext>, </mtext><mi>x</mi><mi>&gt;</mi><mn>0</mn>
</math> den
Grenzwert 0.<br /><br />

Die Basisfunktionen sind dabei nach fallender Wachstumsordnung geordnet. Die erste Funktion mit 
<math xmlns='http://www.w3.org/1998/Math/MathML'>
<msub><mi>exp</mi> <mi>i</mi></msub>
<mo>&ne;</mo><mn>0</mn>
</math> ist dominant und bestimmt das Wachstumsverhalten der Funktion.<br /><br />

Die Asymptote ist dabei die Funktion <math xmlns='http://www.w3.org/1998/Math/MathML'>
<mi>const</mi>
<mo>&sdot;</mo><msup><mrow><msub><mi>base</mi> <mn>1</mn></msub>
</mrow> <mrow><msub><mi>exp</mi> <mn>1</mn></msub>
</mrow></msup><mo>&sdot;</mo><msup><mrow><msub><mi>base</mi> <mn>2</mn></msub>
</mrow> <mrow><msub><mi>exp</mi> <mn>2</mn></msub>
</mrow></msup><mo>&sdot;</mo><mo>&sdot; &sdot; &sdot;</mo><mo>&sdot;</mo><msup><mrow><msub><mi>base</mi> <mi>n</mi></msub>
</mrow> <mrow><msub><mi>exp</mi> <mi>n</mi></msub>
</mrow></msup>
</math>


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[14]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi>f</mi> <mo>=</mo> <mrow> <mrow> <mo>-</mo> <msup>
<mi>ⅇ</mi> <mrow> <mfrac> <mn>1</mn> <mi>x</mi> </mfrac> <mo>-</mo> <msup>
<mi>ⅇ</mi> <mrow> <mo>-</mo> <msup> <mi>ⅇ</mi> <mi>x</mi> </msup>
</mrow> </msup> </mrow> </msup> </mrow> <mo>+</mo> <msup> <mi>ⅇ</mi>
<mrow> <msup> <mi>ⅇ</mi> <mrow> <mo>-</mo> <mi>x</mi> </mrow> </msup>
<mo>+</mo> <msup> <mi>ⅇ</mi> <mrow> <mo>-</mo> <msup> <mi>x</mi>
<mn>2</mn> </msup> </mrow> </msup> <mo>+</mo> <mfrac> <mn>1</mn> <mi>x</mi>
</mfrac> </mrow> </msup> </mrow> </mrow> <mo>;</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[15]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>lt</mi> <mo>=</mo> <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow>
<mi>f</mi> <mo>,</mo> <mrow> <mi>x</mi> <mo>→</mo> <mi>∞</mi>
</mrow> <mo>,</mo> <mrow> <mi>Output</mi> <mo>→</mo> <mi>LeadTerm</mi>
</mrow> </mrow> <mo>]</mo> </mrow> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[15]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>LeadTerm</mi> <mo>[</mo> <mrow> <mn>1</mn> <mo>,</mo> <mrow>
<mo>{</mo> <mrow> <mrow> <mi>pwr</mi> <mo>[</mo> <mrow> <msup> <mi>ⅇ</mi>
<mrow> <mo>-</mo> <msup> <mi>ⅇ</mi> <mi>x</mi> </msup> </mrow> </msup>
<mo>,</mo> <mn>0</mn> </mrow> <mo>]</mo> </mrow> <mo>,</mo> <mrow> <mi>pwr</mi>
<mo>[</mo> <mrow> <msup> <mi>ⅇ</mi> <mrow> <mo>-</mo> <msup> <mi>x</mi>
<mn>2</mn> </msup> </mrow> </msup> <mo>,</mo> <mn>0</mn> </mrow> <mo>]</mo>
</mrow> <mo>,</mo> <mrow> <mi>pwr</mi> <mo>[</mo> <mrow> <msup> <mi>ⅇ</mi>
<mrow> <mo>-</mo> <mi>x</mi> </mrow> </msup> <mo>,</mo> <mn>1</mn> </mrow>
<mo>]</mo> </mrow> <mo>,</mo> <mrow> <mi>pwr</mi> <mo>[</mo> <mrow> <msup>
<mi>ⅇ</mi> <mrow> <mo>-</mo> <mrow> <mi>Log</mi> <mo>[</mo> <mi>x</mi>
<mo>]</mo> </mrow> </mrow> </msup> <mo>,</mo> <mn>0</mn> </mrow> <mo>]</mo>
</mrow> </mrow> <mo>}</mo> </mrow> </mrow> <mo>]</mo> </mrow>
</math></div></div>

</div>

Alle Terme, abgesehen von <math xmlns='http://www.w3.org/1998/Math/MathML'>
<msup><mi>e</mi> <mrow><mo lspace="thinthinmathspace" rspace="0em">-</mo>
<mi>x</mi></mrow></msup>

</math>, treten nur scheinbar auf und spielen für den Grenzwert keine Rolle.<br /><br />

Die Ausgabe erfolgt hier in der internen Funktionsdarstellung von MrvLimit und nicht in normaler 
Mathematica-Darstellung. Durch die Aufhebung der internen Darstellung wird 
<math xmlns='http://www.w3.org/1998/Math/MathML'>
<msup><mi>e</mi> <mrow><mo lspace="thinthinmathspace" rspace="0em">-</mo>
<mo lspace="0em" rspace="thinmathspace">log</mo><mo>(</mo><mi>x</mi><mo>)</mo></mrow></msup>

</math> wieder automatisch zu <math xmlns='http://www.w3.org/1998/Math/MathML'>
<mfrac><mrow><mn>1</mn>
</mrow><mrow><mi>x</mi>
</mrow></mfrac>

</math> vereinfacht:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[16]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>lt</mi> <mo>=</mo> <mrow> <mi>FromInternal</mi> <mo>[</mo> <mrow>
<mi>lt</mi> <mo>,</mo> <mi>x</mi> </mrow> <mo>]</mo> </mrow> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[16]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>LeadTerm</mi> <mo>[</mo> <mrow> <mn>1</mn> <mo>,</mo> <mrow>
<mo>{</mo> <mrow> <mrow> <mi>pwr</mi> <mo>[</mo> <mrow> <msup> <mi>ⅇ</mi>
<mrow> <mo>-</mo> <msup> <mi>ⅇ</mi> <mi>x</mi> </msup> </mrow> </msup>
<mo>,</mo> <mn>0</mn> </mrow> <mo>]</mo> </mrow> <mo>,</mo> <mrow> <mi>pwr</mi>
<mo>[</mo> <mrow> <msup> <mi>ⅇ</mi> <mrow> <mo>-</mo> <msup> <mi>x</mi>
<mn>2</mn> </msup> </mrow> </msup> <mo>,</mo> <mn>0</mn> </mrow> <mo>]</mo>
</mrow> <mo>,</mo> <mrow> <mi>pwr</mi> <mo>[</mo> <mrow> <msup> <mi>ⅇ</mi>
<mrow> <mo>-</mo> <mi>x</mi> </mrow> </msup> <mo>,</mo> <mn>1</mn> </mrow>
<mo>]</mo> </mrow> <mo>,</mo> <mrow> <mi>pwr</mi> <mo>[</mo> <mrow> <mfrac>
<mn>1</mn> <mi>x</mi> </mfrac> <mo>,</mo> <mn>0</mn> </mrow> <mo>]</mo> </mrow>
</mrow> <mo>}</mo> </mrow> </mrow> <mo>]</mo> </mrow>
</math></div></div>

</div>

Durch Ausführung der Potenzen eliminieren sich die scheinbaren Basisfunktionen:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[17]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>lt</mi> <mo>=</mo> <mrow> <mi>lt</mi> <mo>/.</mo> <mrow> <mi>pwr</mi>
<mo>→</mo> <mi>Power</mi> </mrow> </mrow> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[17]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>LeadTerm</mi> <mo>[</mo> <mrow> <mn>1</mn> <mo>,</mo> <mrow>
<mo>{</mo> <mrow> <mn>1</mn> <mo>,</mo> <mn>1</mn> <mo>,</mo> <msup>
<mi>ⅇ</mi> <mrow> <mo>-</mo> <mi>x</mi> </mrow> </msup> <mo>,</mo>
<mn>1</mn> </mrow> <mo>}</mo> </mrow> </mrow> <mo>]</mo> </mrow>
</math></div></div>

</div>

Multiplikation aller Terme ergibt die eigentliche Asymptote:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[18]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>lt</mi> <mo>=</mo> <mrow> <mrow> <mi>lt</mi> <mo>[</mo> <mrow>
<mo>[</mo> <mn>1</mn> <mo>]</mo> </mrow> <mo>]</mo> </mrow> <mo>*</mo> <mrow>
<mi>Apply</mi> <mo>[</mo> <mrow> <mi>Times</mi> <mo>,</mo> <mrow> <mi>lt</mi>
<mo>[</mo> <mrow> <mo>[</mo> <mn>2</mn> <mo>]</mo> </mrow> <mo>]</mo> </mrow>
</mrow> <mo>]</mo> </mrow> </mrow> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[18]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <msup> <mi>ⅇ</mi> <mrow> <mo>-</mo> <mi>x</mi> </mrow> </msup>
</math></div></div>

</div>

Die Überprüfung zeigt, dass die Asymptote gefunden ist:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[19]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow> <mrow> <mi>f</mi> <mo>/</mo>
<mi>lt</mi> </mrow> <mo>,</mo> <mrow> <mi>x</mi> <mo>→</mo>
<mi>∞</mi> </mrow> </mrow> <mo>]</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[19]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mn>1</mn>
</math></div></div>

</div>



<a name="Cachekontrolle" /><h5>Cachekontrolle</h5>

Durch Setzen der Option <tt>ClearCache→True</tt> wird vor der Grenzwertberechnung 
eine Leerung des Algorithmus-internen Ergebniscache veranlasst. Jeder einmal berechnete Grenzwert 
wird darin aufbewahrt, um wiederholte Berechnungen des gleichen Grenzwertes zu verhindern. Eine Leerung des Caches
ist erforderlich, wenn sich Rahmenbedingungen verändern, die Auswirkungen auf die Grenzwertberechnung haben:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[20]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi>Unprotect</mi> <mo>[</mo> <mi>Sign</mi> <mo>]</mo> </mrow>
<mo>;</mo> <mrow> <mrow> <mi>Sign</mi> <mo>[</mo> <mi>a</mi> <mo>]</mo> </mrow>
<mo>=</mo> <mn>1</mn> </mrow> <mo>;</mo> <mrow> <mi>Protect</mi> <mo>[</mo>
<mi>Sign</mi> <mo>]</mo> </mrow> <mo>;</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[21]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow> <msup> <mi>ⅇ</mi> <mrow>
<mi>a</mi> <mo>⁢</mo> <mi>x</mi> </mrow> </msup> <mo>,</mo> <mrow>
<mi>x</mi> <mo>→</mo> <mi>∞</mi> </mrow> </mrow> <mo>]</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[21]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mi>∞</mi>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[22]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi>Unprotect</mi> <mo>[</mo> <mi>Sign</mi> <mo>]</mo> </mrow>
<mo>;</mo> <mrow> <mrow> <mi>Sign</mi> <mo>[</mo> <mi>a</mi> <mo>]</mo> </mrow>
<mo>=</mo> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </mrow> <mo>;</mo> <mrow>
<mi>Protect</mi> <mo>[</mo> <mi>Sign</mi> <mo>]</mo> </mrow> <mo>;</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[23]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow> <msup> <mi>ⅇ</mi> <mrow>
<mi>a</mi> <mo>⁢</mo> <mi>x</mi> </mrow> </msup> <mo>,</mo> <mrow>
<mi>x</mi> <mo>→</mo> <mi>∞</mi> </mrow> </mrow> <mo>]</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[23]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mi>∞</mi>
</math></div></div>

</div>

Dieses Ergebnis ist falsch, da das angenommene Vorzeichen von <tt>a</tt> Auswirkung auf den Grenzwert hat, 
und damit das gecachete Ergebnis keine Gültigkeit mehr hat.


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[24]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow> <msup> <mi>ⅇ</mi> <mrow>
<mi>a</mi> <mo>⁢</mo> <mi>x</mi> </mrow> </msup> <mo>,</mo> <mrow>
<mi>x</mi> <mo>→</mo> <mi>∞</mi> </mrow> <mo>,</mo> <mrow>
<mi>ClearCache</mi> <mo>→</mo> <mi>True</mi> </mrow> </mrow> <mo>]</mo>
</mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[24]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mn>0</mn>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[25]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi>Unprotect</mi> <mo>[</mo> <mi>Sign</mi> <mo>]</mo> </mrow>
<mo>;</mo> <mrow> <mrow> <mi>Sign</mi> <mo>[</mo> <mi>a</mi> <mo>]</mo> </mrow>
<mo>=.</mo> </mrow> <mo>;</mo> <mrow> <mi>Protect</mi> <mo>[</mo> <mi>Sign</mi>
<mo>]</mo> </mrow> <mo>;</mo> </mrow>
</math></div></div>

</div>

Alternativ kann der Cache durch Aufruf von <tt>MrvLimitClearCache[]</tt> geleert werden.<br /><br />
<tt>MrvLimitGetCacheStats[]</tt> liefert eine statistische Ausgabe über den Nutzungsgrad des Caches:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[26]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>MrvLimitGetCacheStats</mi> <mo>[</mo> <mo>]</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[26]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mo>{</mo> <mrow> <mrow> <mi>CacheHits</mi> <mo>→</mo> <mn>52</mn>
</mrow> <mo>,</mo> <mrow> <mi>CacheMisses</mi> <mo>→</mo> <mn>13</mn>
</mrow> </mrow> <mo>}</mo> </mrow>
</math></div></div>

</div>

<tt>CacheHits</tt> gibt dabei an, wie viele Grenzwertberechnungen durch gecachete 
Ergebnisse vermieden werden konnten, <tt>CacheMisses</tt> gibt an, wie viele Grenzwertberechnungen
tatsächlich ausgeführt wurden.




<a name="Debuginformationen" /><h5>Debuginformationen</h5>

Mit <tt>Debug→<i>n</i></tt> wird die Debug-Ausgabe des MrvLimit-Algorithmus aktiviert. Dabei gibt 
<tt><i>n</i></tt> an, bis zu welcher rekursiven Schachtelungstiefe die Debuginformationen ausgegeben werden 
sollen. <tt>Debug→∞</tt> gibt Debuginformationen in beliebiger Schachtelungstiefe
aus.


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[27]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow> <mrow> <mi>E</mi> <mo>^</mo>
<mi>x</mi> </mrow> <mo>,</mo> <mrow> <mi>x</mi> <mo>→</mo>
<mi>∞</mi> </mrow> <mo>,</mo> <mrow> <mi>Debug</mi> <mo>→</mo>
<mn>1</mn> </mrow> <mo>,</mo> <mrow> <mi>ClearCache</mi> <mo>→</mo>
<mi>True</mi> </mrow> </mrow> <mo>]</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Enter Level </mtext>
<mtext>​</mtext> <mn>1</mn> <mtext>​</mtext> <mtext> Call </mtext>
<mtext>​</mtext> <mrow> <mi>MrvLimitInf</mi> <mo>[</mo> <mrow> <msup>
<mi>ⅇ</mi> <mi>x</mi> </msup> <mo>,</mo> <mi>x</mi> <mo>,</mo> <mrow>
<mi>Debug</mi> <mo>→</mo> <mi>∞</mi> </mrow> </mrow> <mo>]</mo>
</mrow> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Calculating limit of </mtext>
<mtext>​</mtext> <msup> <mi>ⅇ</mi> <mi>x</mi> </msup> </mrow>

</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Calculating Mrv set of </mtext>
<mtext>​</mtext> <msup> <mi>ⅇ</mi> <mi>x</mi> </msup> </mrow>

</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Ω=</mtext>
<mtext>​</mtext> <mrow> <mo>{</mo> <mrow> <mi>MrvF</mi> <mo>[</mo> <mrow>
<msup> <mi>ⅇ</mi> <mi>x</mi> </msup> <mo>,</mo> <mn>3</mn> <mo>,</mo>
<mi>∞</mi> </mrow> <mo>]</mo> </mrow> <mo>}</mo> </mrow> </mrow>

</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>ω=</mtext>
<mtext>​</mtext> <msup> <mi>ⅇ</mi> <mi>x</mi> </msup> </mrow>

</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext>
<mtext>Replacing ω→1/ω: ω=</mtext> <mtext>​</mtext>
<msup> <mi>ⅇ</mi> <mrow> <mo>-</mo> <mi>x</mi> </mrow> </msup> </mrow>

</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Prepare to rewrite g=</mtext>
<mtext>​</mtext> <msup> <mi>ⅇ</mi> <mi>x</mi> </msup>
<mtext>​</mtext> <mtext> to A*ω^c</mtext> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>c=</mtext>
<mtext>​</mtext> <mrow> <mo>-</mo> <mn>1</mn> </mrow>
<mtext>​</mtext> <mtext> A=</mtext> <mtext>​</mtext> <mn>1</mn>
</mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Rewriting </mtext>
<mtext>​</mtext> <msup> <mi>ⅇ</mi> <mi>x</mi> </msup>
<mtext>​</mtext> <mo>→</mo> <mtext>​</mtext> <mfrac>
<mn>1</mn> <mi>ω</mi> </mfrac> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>  </mtext> <mtext>​</mtext> <mtext>f=</mtext>
<mtext>​</mtext> <mfrac> <mn>1</mn> <mi>ω</mi> </mfrac> </mrow>

</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext>
<mtext>Calculating power series: f=</mtext> <mtext>​</mtext> <mfrac>
<mn>1</mn> <mi>ω</mi> </mfrac> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Series expansion: </mtext>
<mtext>​</mtext>  <mrow> <mfrac> <mn>1</mn> <mi>ω</mi>
</mfrac> <mo>+</mo>  <msup> <mrow> <mi>O</mi> <mo>[</mo>
<mi>ω</mi> <mo>]</mo> </mrow> <mn>2</mn> </msup>  </mrow>
 </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Dominant term: </mtext>
<mtext>​</mtext> <mfrac> <mn>1</mn> <mi>ω</mi> </mfrac>
<mtext>​</mtext> <mtext> , ω=</mtext> <mtext>​</mtext> <msup>
<mi>ⅇ</mi> <mrow> <mo>-</mo> <mi>x</mi> </mrow> </msup> </mrow>

</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Dominant asymptotic: </mtext>
<mtext>​</mtext> <mn>1</mn> <mo>⁢</mo> <mtext>​</mtext>
<mfrac> <mn>1</mn> <msup> <mi>ⅇ</mi> <mrow> <mo>-</mo> <mi>x</mi> </mrow>
</msup> </mfrac> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Leave Level </mtext>
<mtext>​</mtext> <mn>1</mn> <mtext>​</mtext> <mtext> Call </mtext>
<mtext>​</mtext> <mrow> <mrow> <mi>MrvLimitInf</mi> <mo>[</mo> <mrow>
<msup> <mi>ⅇ</mi> <mi>x</mi> </msup> <mo>,</mo> <mi>x</mi> <mo>,</mo>
<mrow> <mi>Debug</mi> <mo>→</mo> <mi>∞</mi> </mrow> </mrow>
<mo>]</mo> </mrow> <mo>==</mo> <mi>∞</mi> </mrow> </mrow>

</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[27]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mi>∞</mi>
</math></div></div>

</div>






<a name="Hilfsfunktionen" /><h4>5.1.4 Hilfsfunktionen</h4>

<a name="ToInternalFromInternal" /><h5>ToInternal / FromInternal</h5>

MrvLimit verwendet intern eine Funktionsdarstellung, in der bestimmte Funktionen durch alternative 
Schreibweisen ersetzt werden. Durch diese Ersetzung werden störende Effekte durch automatische 
Transformationen vermieden. MrvLimit übersetzt die Eingabe und Ausgabe automatisch in die interne 
Darstellung und zurück. Nur bei einigen fortgeschrittenen Eingriffsmöglichkeiten trifft man auf die interne
Darstellung.<br /><br />

Funktionen und ihre interne Darstellung in <tt>MrvLimit</tt>:<br /><br />

<table>
<tr><td>Funktion</td><td>Darstellung</td></tr>
<tr>
    <td><tt>Power</tt></td><td><tt>power</tt></td></tr>
<tr><td><tt>Log</tt></td><td><tt>log</tt></td></tr>
<tr><td><tt>Sin</tt></td><td><tt>sin</tt></td></tr>
<tr><td><tt>Cos</tt></td><td><tt>cos</tt></td></tr>
<tr><td><tt>Tan</tt></td><td><tt>tan</tt></td></tr>
<tr><td><tt>ArcSin</tt></td><td><tt>arcsin</tt></td></tr>
<tr><td><tt>ArcCos</tt></td><td><tt>arccos</tt></td></tr>
<tr><td><tt>ArcTan</tt></td><td><tt>arctan</tt></td></tr>
<tr><td><tt>Gamma</tt></td><td><tt>gamma</tt></td></tr>
<tr><td><tt>LogGamma</tt></td><td><tt>loggamma</tt></td></tr>
<tr><td><tt>PolyGamma</tt></td><td><tt>polygamma</tt></td></tr>
</table><br /><br />

Die Anzeige der Funktionen durch Mathematica entspricht jeweils der normalen Anzeige:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[28]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi>power</mi> <mo>[</mo> <mrow> <mi>E</mi> <mo>,</mo> <mi>x</mi>
</mrow> <mo>]</mo> </mrow> <mo>+</mo> <mrow> <mi>Power</mi> <mo>[</mo> <mrow>
<mi>E</mi> <mo>,</mo> <mi>x</mi> </mrow> <mo>]</mo> </mrow> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[28]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <msup> <mi>ⅇ</mi> <mi>x</mi> </msup> <mo>+</mo> <msup>
<mi>ⅇ</mi> <mi>x</mi> </msup> </mrow>
</math></div></div>

</div>

Zur Konvertierung zwischen Mathematica-Darstellung und normaler Darstellung dienen die Hilfsfunktionen 
<tt>ToInternal[<i>f</i>,<i>x</i>]</tt> und <tt>FromInternal[<i>f</i>,<i>x</i>]</tt>:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[29]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>f</mi> <mo>=</mo> <mrow> <mi>ToInternal</mi> <mo>[</mo> <mrow> <mrow>
<mrow> <mi>E</mi> <mo>^</mo> <mi>x</mi> </mrow> <mo>*</mo> <mrow> <mrow>
<mi>Sin</mi> <mo>[</mo> <mi>x</mi> <mo>]</mo> </mrow> <mo>^</mo> <mi>c</mi>
</mrow> </mrow> <mo>,</mo> <mi>x</mi> </mrow> <mo>]</mo> </mrow> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[29]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <msup> <mi>ⅇ</mi> <mi>x</mi> </msup> <mo>⁢</mo> <msup> <mrow>
<mi>Sin</mi> <mo>[</mo> <mi>x</mi> <mo>]</mo> </mrow> <mi>c</mi> </msup> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[30]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>f</mi> <mo>=</mo> <mrow> <mi>f</mi> <mo>/.</mo> <mrow> <mi>c</mi>
<mo>→</mo> <mn>0</mn> </mrow> </mrow> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[30]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <msup> <mi>ⅇ</mi> <mi>x</mi> </msup> <mo>⁢</mo> <msup> <mrow>
<mi>Sin</mi> <mo>[</mo> <mi>x</mi> <mo>]</mo> </mrow> <mn>0</mn> </msup> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[31]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>FromInternal</mi> <mo>[</mo> <mrow> <mi>f</mi> <mo>,</mo> <mi>x</mi>
</mrow> <mo>]</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[31]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <msup> <mi>ⅇ</mi> <mi>x</mi> </msup>
</math></div></div>

</div>

<tt>ToInternal</tt> verarbeitet nur Funktionen, die für den Algorithmus als bekannt gelten:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[32]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>ToInternal</mi> <mo>[</mo> <mrow> <mrow> <mi>Foo</mi> <mo>[</mo>
<mi>x</mi> <mo>]</mo> </mrow> <mo>,</mo> <mi>x</mi> </mrow> <mo>]</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathmessage"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi>MrvLimit</mi> <mtext>::</mtext> <mi>UnsupportedFunction</mi>
</mrow> <mo>⁢</mo> <mrow> <mo>:</mo> <mtext> </mtext> </mrow> 
<mrow> <mtext>MrvLimit does not support this function: </mtext> <mrow>
<mi>Foo</mi> <mo>[</mo> <mi>x</mi> <mo>]</mo> </mrow> </mrow>

 </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[32]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>ToInternal</mi> <mo>[</mo> <mrow> <mrow> <mi>Foo</mi> <mo>[</mo>
<mi>x</mi> <mo>]</mo> </mrow> <mo>,</mo> <mi>x</mi> </mrow> <mo>]</mo> </mrow>
</math></div></div>

</div>




<a name="Erweiterungsschnittstellen" /><h4>5.1.5 Erweiterungsschnittstellen</h4>

<a name="Potenzreihen" /><h5>Potenzreihen</h5>

<tt>MrvLimit</tt> ist abhängig von einem guten Algorithmus zur Potenzreihenentwicklung, kann selbst 
aber nur auf die beschränkten Möglichkeiten des <tt>Series</tt>-Kommandos von Mathematica zurückgreifen. 
Oft genügt aber schon eine kleine Modifikation an der auftretenden Funktion, um die Potenzreihe zu ermitteln. 
Oder es steht ein gänzlich anderer Algorithmus zur Potenzreihenentwicklung
zur Verfügung. Über die Variable <tt>$MrvSeriesHead</tt> kann eine solche Methode eingebunden werden:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[33]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow> <msup> <mrow> <mo>(</mo> <mrow>
<msup> <mi>ⅇ</mi> <mi>x</mi> </msup> <mo>⁢</mo> <mi>x</mi> </mrow>
<mo>)</mo> </mrow> <mfrac> <mn>1</mn> <mi>x</mi> </mfrac> </msup> <mo>,</mo>
<mrow> <mi>x</mi> <mo>→</mo> <mi>∞</mi> </mrow> </mrow> <mo>]</mo>
</mrow>
</math></div></div>

<div class="mathcell"><div class="mathmessage"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi>MrvLimit</mi> <mtext>::</mtext> <mi>SeriesFail</mi> </mrow>
<mo>⁢</mo> <mrow> <mo>:</mo> <mtext> </mtext> </mrow>  <mrow>
<mtext>Series failed at </mtext> <msup> <mi>ⅇ</mi> <mfrac> <mrow>
<mi>Log</mi> <mo>[</mo> <mfrac> <mi>x</mi> <mi>ω</mi> </mfrac> <mo>]</mo>
</mrow> <mi>x</mi> </mfrac> </msup> </mrow>

 </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[33]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow> <msup> <mrow> <mo>(</mo> <mrow>
<msup> <mi>ⅇ</mi> <mi>x</mi> </msup> <mo>⁢</mo> <mi>x</mi> </mrow>
<mo>)</mo> </mrow> <mfrac> <mn>1</mn> <mi>x</mi> </mfrac> </msup> <mo>,</mo>
<mrow> <mi>x</mi> <mo>→</mo> <mi>∞</mi> </mrow> </mrow> <mo>]</mo>
</mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[34]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mrow> <mi>SeriesHelper</mi> <mo>[</mo> <mrow> <mtext>f_</mtext>
<mo>,</mo> <mtext>x_</mtext> <mo>,</mo> <mtext>ω_</mtext> <mo>,</mo>
<mtext>logω_</mtext> <mo>,</mo> <mtext>dprint_</mtext> </mrow> <mo>]</mo>
</mrow> <mo>:=</mo> <mrow> <mi>Module</mi> <mo>[</mo> <mrow> <mrow> <mo>{</mo>
<mo>}</mo> </mrow> <mo>,</mo> <mtext></mtext> <mrow> <mrow> <mi>If</mi>
<mo>[</mo> <mrow> <mrow> <mrow> <mi>FromInternal</mi> <mo>[</mo> <mrow>
<mi>f</mi> <mo>,</mo> <mi>x</mi> </mrow> <mo>]</mo> </mrow> <mo>===</mo> <msup>
<mrow> <mo>(</mo> <mfrac> <mi>x</mi> <mi>ω</mi> </mfrac> <mo>)</mo> </mrow>
<mfrac> <mn>1</mn> <mi>x</mi> </mfrac> </msup> </mrow> <mo>,</mo>
<mtext></mtext> <mrow> <mrow> <mi>Return</mi> <mo>[</mo> <mrow>
<mo>{</mo> <mrow> <mrow> <mi>ToInternal</mi> <mo>[</mo> <mrow> <msup>
<mi>ⅇ</mi> <mrow> <mn>1</mn> <mo>+</mo> <mfrac> <mrow> <mi>Log</mi>
<mo>[</mo> <mi>x</mi> <mo>]</mo> </mrow> <mi>x</mi> </mfrac> </mrow> </msup>
<mo>,</mo> <mi>x</mi> </mrow> <mo>]</mo> </mrow> <mo>,</mo> <mn>0</mn> </mrow>
<mo>}</mo> </mrow> <mo>]</mo> </mrow> <mo>;</mo> </mrow> </mrow>
<mtext></mtext> <mo>]</mo> </mrow> <mo>;</mo> <mtext></mtext>
<mrow> <mi>MrvSeriesHead</mi> <mo>[</mo> <mrow> <mi>f</mi> <mo>,</mo> <mi>x</mi>
<mo>,</mo> <mi>ω</mi> <mo>,</mo> <mi>logω</mi> <mo>,</mo>
<mi>dprint</mi> </mrow> <mo>]</mo> </mrow> </mrow> </mrow>
<mtext></mtext> <mo>]</mo> </mrow> </mrow> <mo>;</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[35]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi><dollar xmlns="http://www.w3.org/1999/xhtml" />MrvSeriesHead</mi> <mo>=</mo> <mi>SeriesHelper</mi>
</mrow> <mo>;</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[36]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi>res</mi> <mo>=</mo> <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow>
<msup> <mrow> <mo>(</mo> <mrow> <msup> <mi>ⅇ</mi> <mi>x</mi> </msup>
<mo>⁢</mo> <mi>x</mi> </mrow> <mo>)</mo> </mrow> <mfrac> <mn>1</mn>
<mi>x</mi> </mfrac> </msup> <mo>,</mo> <mrow> <mi>x</mi> <mo>→</mo>
<mi>∞</mi> </mrow> <mo>,</mo> <mrow> <mi>ClearCache</mi> <mo>→</mo>
<mi>True</mi> </mrow> </mrow> <mo>]</mo> </mrow> </mrow> <mo>;</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[37]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi><dollar xmlns="http://www.w3.org/1999/xhtml" />MrvSeriesHead</mi> <mo>=</mo> <mi>MrvSeriesHead</mi>
</mrow> <mo>;</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[38]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mi>res</mi>
</math></div></div>

<div class="mathcell"><div class="mathlabel">Out[38]=</div><div class="mathoutput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mi>ⅇ</mi>
</math></div></div>

</div>

Für die genaue Implementierung der Schnittstelle sollte der Quelltext der Funktion <tt>MrvSeriesHead</tt> herangezogen werden.


<a name="Nulltests" /><h5>Nulltests</h5>

Genau wie das Series-Kommando von Mathematica sind auch die Nulltests eine kritische Schwäche des 
Algorithmus. Auch sie können einfach ersetzt werden. <tt>$MrvTestZero</tt> verweist auf eine 
Funktion, die zum Testen von Termen auf den Wert 0 verwendet wird. Die Standardvorgabe
ist <tt>$MrvTestZero = MrvTestZero</tt> mit:<br /><br />

<tt>MrvTestZero[term_,x_] := Simplify[FromInternal[term,x] == 0];</tt><br /><br />

Alternativ bietet sich die schnellere, aber ungenauere folgende Variante an:<br />
<tt>FromInternal[term,x] == 0</tt>,<br />
oder die gründlichere, aber erheblich langsamere folgende Variante :<br />
<tt>Simplify[FromInternal[term, x] == 0, Element[x, Reals]]</tt><br />
Mathematica steuert außerdem noch die folgende Variante bei:<br />
<tt>Developer`ZeroQ[FromInternal[term, x]]</tt><br /><br />

Um Funktionen in der Umgebung eines Grenzwertes (normalerweise ∞) auf die 
Nullfunktion zu testen, wird <tt>$MrvTestZeroInterval</tt> verwendet.
Die Standardvorgabe ist hierbei <tt>$MrvTestZeroInterval = MrvTestZeroInterval</tt>, definiert als:<br /><br />

<tt>MrvTestZeroInterval[term_,x_→∞] := Simplify[FromInternal[term, x] == 0];</tt><br /><br />

Neben den bereits genannten Varianten kann hier auch die konkrete Umgebung berücksichtigt 
werden, zum Beispiel mit <tt>Simplify[FromInternal[term, x] == 0, x &gt; <math xmlns='http://www.w3.org/1998/Math/MathML'>
<msup><mn>10</mn> <mrow><mn>1000</mn>
</mrow></msup>

</math>]</tt>.
Leider ist auch dieser Aufruf mit unkalkulierbaren Laufzeiten verbunden, weshalb als Standard 
nur ein einfacher Nulltest ohne Bezug auf x durchgeführt wird.


<a name="Debugausgabe" /><h5>Debugausgabe</h5>

Falls man an einer anderen Ausgabeform der <tt>Debug</tt>-Option interessiert ist, kann man diese über 
<tt>$DebugPrint</tt> bekannt machen:



<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[39]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mrow> <mi>MyPrint</mi> <mo>[</mo> <mrow> <mtext>Indent_</mtext>
<mo>,</mo> <mtext>Text__</mtext> </mrow> <mo>]</mo> </mrow> <mo>:=</mo> <mrow>
<mi>Print</mi> <mo>[</mo> <mrow> <ms>Debug[</ms> <mo>,</mo> <mi>Indent</mi>
<mo>,</mo> <ms>]:</ms> <mo>,</mo> <mi>Text</mi> </mrow> <mo>]</mo> </mrow>
</mrow> <mo>;</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[40]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi><dollar xmlns="http://www.w3.org/1999/xhtml" />DebugPrint</mi> <mo>=</mo> <mi>MyPrint</mi> </mrow>
<mo>;</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[41]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow> <mrow> <mi>E</mi> <mo>^</mo>
<mi>x</mi> </mrow> <mo>,</mo> <mrow> <mi>x</mi> <mo>→</mo>
<mi>∞</mi> </mrow> <mo>,</mo> <mrow> <mi>Debug</mi> <mo>→</mo>
<mn>1</mn> </mrow> </mrow> <mo>]</mo> </mrow> <mo>;</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[42]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi><dollar xmlns="http://www.w3.org/1999/xhtml" />DebugPrint</mi> <mo>=</mo> <mi>IndentPrint</mi>
</mrow> <mo>;</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>Debug[</mtext> <mtext>​</mtext> <mn>0</mn>
<mtext>​</mtext> <mtext>]:</mtext> <mtext>​</mtext>
<mtext>Enter Level </mtext> <mtext>​</mtext> <mn>1</mn>
<mtext>​</mtext> <mtext> Call </mtext> <mtext>​</mtext> <mrow>
<mi>MrvLimitInf</mi> <mo>[</mo> <mrow> <msup> <mi>ⅇ</mi> <mi>x</mi>
</msup> <mo>,</mo> <mi>x</mi> <mo>,</mo> <mrow> <mi>Debug</mi> <mo>→</mo>
<mn>1</mn> </mrow> </mrow> <mo>]</mo> </mrow> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>Debug[</mtext> <mtext>​</mtext> <mn>0</mn>
<mtext>​</mtext> <mtext>]:</mtext> <mtext>​</mtext>
<mtext>Taking cached result</mtext> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>Debug[</mtext> <mtext>​</mtext> <mn>0</mn>
<mtext>​</mtext> <mtext>]:</mtext> <mtext>​</mtext>
<mtext>Leave Level </mtext> <mtext>​</mtext> <mn>1</mn>
<mtext>​</mtext> <mtext> Call </mtext> <mtext>​</mtext> <mrow>
<mrow> <mi>MrvLimitInf</mi> <mo>[</mo> <mrow> <msup> <mi>ⅇ</mi> <mi>x</mi>
</msup> <mo>,</mo> <mi>x</mi> <mo>,</mo> <mrow> <mi>Debug</mi> <mo>→</mo>
<mn>1</mn> </mrow> </mrow> <mo>]</mo> </mrow> <mo>==</mo> <mi>∞</mi>
</mrow> </mrow> 
</math></div></div>

</div>



<a name="Ausgabesteuerung" /><h5>Ausgabesteuerung</h5>

Da die Ausgabe von Funktionsteilen und die Debugausgabe sehr umfangreich sein kann, ist es u.U. 
sinnvoll, solche Ausgaben zu filtern. Mit der Variable <tt>$OutputProcessor</tt> kann 
jede Debugausgabe und jede Meldungsausgabe nachbearbeitet werden:


<div class="mathcellblock">
<div class="mathcell"><div class="mathlabel">In[43]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi>f</mi> <mo>=</mo> <mrow> <msup> <mi>ⅇ</mi> <mrow> <msup>
<mi>ⅇ</mi> <mrow> <mi>h</mi> <mo>-</mo> <mi>x</mi> </mrow> </msup>
<mo>+</mo> <mi>h</mi> <mo>-</mo> <mfrac> <mi>x</mi> <mrow> <mn>1</mn> <mo>+</mo>
<mi>h</mi> </mrow> </mfrac> </mrow> </msup> <mtext> </mtext> <mo>/.</mo> <mrow>
<mi>h</mi> <mo>-&gt;</mo> <mtext> </mtext> <mfrac> <mn>1</mn> <mrow> <mn>1</mn>
<mo>+</mo> <msup> <mi>ⅇ</mi> <mrow> <mo>-</mo> <mi>x</mi> </mrow> </msup>
</mrow> </mfrac> </mrow> </mrow> </mrow> <mo>;</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[44]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi><dollar xmlns="http://www.w3.org/1999/xhtml" />OutputProcessor</mi> <mo>=</mo> <mrow> <mo>(</mo>
<mrow> <mrow> <mrow> <mi>FromInternal</mi> <mo>[</mo> <mrow> <mtext>#</mtext>
<mo>,</mo> <mi>x</mi> </mrow> <mo>]</mo> </mrow> <mo>/.</mo> <mrow> <mo>{</mo>
<mrow> <mfrac> <mn>1</mn> <mrow> <mn>1</mn> <mo>+</mo> <msup> <mi>ⅇ</mi>
<mrow> <mo>-</mo> <mi>x</mi> </mrow> </msup> </mrow> </mfrac> <mo>→</mo>
<mi>h</mi> </mrow> <mo>}</mo> </mrow> </mrow> <mo>&amp;</mo> </mrow> <mo>)</mo>
</mrow> </mrow> <mo>;</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[45]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi>MrvLimit</mi> <mo>[</mo> <mrow> <mi>f</mi> <mo>,</mo> <mrow>
<mi>x</mi> <mo>→</mo> <mi>∞</mi> </mrow> <mo>,</mo> <mrow>
<mi>Debug</mi> <mo>→</mo> <mn>1</mn> </mrow> <mo>,</mo> <mrow>
<mi>ClearCache</mi> <mo>→</mo> <mi>True</mi> </mrow> </mrow> <mo>]</mo>
</mrow> <mo>;</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathlabel">In[46]:=</div><div class="mathinput"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
 <mrow> <mrow> <mi><dollar xmlns="http://www.w3.org/1999/xhtml" />OutputProcessor</mi> <mo>=</mo> <mi>Identity</mi>
</mrow> <mo>;</mo> </mrow>
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Enter Level </mtext>
<mtext>​</mtext> <mn>1</mn> <mtext>​</mtext> <mtext> Call </mtext>
<mtext>​</mtext> <mrow> <mi>MrvLimitInf</mi> <mo>[</mo> <mrow> <msup>
<mi>ⅇ</mi> <mrow> <msup> <mi>ⅇ</mi> <mrow> <mrow> <mo>-</mo>
<mi>x</mi> </mrow> <mo>+</mo> <mi>h</mi> </mrow> </msup> <mo>+</mo> <mi>h</mi>
<mo>-</mo> <mfrac> <mi>x</mi> <mrow> <mn>1</mn> <mo>+</mo> <mi>h</mi> </mrow>
</mfrac> </mrow> </msup> <mo>,</mo> <mi>x</mi> <mo>,</mo> <mrow> <mi>Debug</mi>
<mo>→</mo> <mn>1</mn> </mrow> </mrow> <mo>]</mo> </mrow> </mrow>

</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Calculating limit of </mtext>
<mtext>​</mtext> <msup> <mi>ⅇ</mi> <mrow> <msup> <mi>ⅇ</mi>
<mrow> <mi>h</mi> <mo>-</mo> <mi>x</mi> </mrow> </msup> <mo>+</mo> <mi>h</mi>
<mo>-</mo> <mfrac> <mi>x</mi> <mrow> <mn>1</mn> <mo>+</mo> <mi>h</mi> </mrow>
</mfrac> </mrow> </msup> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Calculating Mrv set of </mtext>
<mtext>​</mtext> <msup> <mi>ⅇ</mi> <mrow> <msup> <mi>ⅇ</mi>
<mrow> <mi>h</mi> <mo>-</mo> <mi>x</mi> </mrow> </msup> <mo>+</mo> <mi>h</mi>
<mo>-</mo> <mfrac> <mi>x</mi> <mrow> <mn>1</mn> <mo>+</mo> <mi>h</mi> </mrow>
</mfrac> </mrow> </msup> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Ω=</mtext>
<mtext>​</mtext> <mrow> <mo>{</mo> <mrow> <mrow> <mi>MrvF</mi> <mo>[</mo>
<mrow> <msup> <mi>ⅇ</mi> <mrow> <mo>-</mo> <mi>x</mi> </mrow> </msup>
<mo>,</mo> <mn>5</mn> <mo>,</mo> <mn>0</mn> </mrow> <mo>]</mo> </mrow>
<mo>,</mo> <mrow> <mi>MrvF</mi> <mo>[</mo> <mrow> <msup> <mi>ⅇ</mi> <mrow>
<mi>h</mi> <mo>-</mo> <mi>x</mi> </mrow> </msup> <mo>,</mo> <mn>15</mn>
<mo>,</mo> <mn>0</mn> </mrow> <mo>]</mo> </mrow> <mo>,</mo> <mrow> <mi>MrvF</mi>
<mo>[</mo> <mrow> <msup> <mi>ⅇ</mi> <mrow> <msup> <mi>ⅇ</mi> <mrow>
<mi>h</mi> <mo>-</mo> <mi>x</mi> </mrow> </msup> <mo>+</mo> <mi>h</mi>
<mo>-</mo> <mfrac> <mi>x</mi> <mrow> <mn>1</mn> <mo>+</mo> <mi>h</mi> </mrow>
</mfrac> </mrow> </msup> <mo>,</mo> <mn>43</mn> <mo>,</mo> <mn>0</mn> </mrow>
<mo>]</mo> </mrow> </mrow> <mo>}</mo> </mrow> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>ω=</mtext>
<mtext>​</mtext> <msup> <mi>ⅇ</mi> <mrow> <mo>-</mo> <mi>x</mi>
</mrow> </msup> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Prepare to rewrite g=</mtext>
<mtext>​</mtext> <msup> <mi>ⅇ</mi> <mrow> <msup> <mi>ⅇ</mi>
<mrow> <mi>h</mi> <mo>-</mo> <mi>x</mi> </mrow> </msup> <mo>+</mo> <mi>h</mi>
<mo>-</mo> <mfrac> <mi>x</mi> <mrow> <mn>1</mn> <mo>+</mo> <mi>h</mi> </mrow>
</mfrac> </mrow> </msup> <mtext>​</mtext> <mtext> to A*ω^c</mtext>
</mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>c=</mtext>
<mtext>​</mtext> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac>
<mtext>​</mtext> <mtext> A=</mtext> <mtext>​</mtext> <msup>
<mi>ⅇ</mi> <mrow> <msup> <mi>ⅇ</mi> <mrow> <mi>h</mi> <mo>-</mo>
<mi>x</mi> </mrow> </msup> <mo>+</mo> <mi>h</mi> <mo>+</mo> <mfrac> <mi>x</mi>
<mn>2</mn> </mfrac> <mo>-</mo> <mfrac> <mi>x</mi> <mrow> <mn>1</mn> <mo>+</mo>
<mi>h</mi> </mrow> </mfrac> </mrow> </msup> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Rewriting </mtext>
<mtext>​</mtext> <msup> <mi>ⅇ</mi> <mrow> <msup> <mi>ⅇ</mi>
<mrow> <mi>h</mi> <mo>-</mo> <mi>x</mi> </mrow> </msup> <mo>+</mo> <mi>h</mi>
<mo>-</mo> <mfrac> <mi>x</mi> <mrow> <mn>1</mn> <mo>+</mo> <mi>h</mi> </mrow>
</mfrac> </mrow> </msup> <mtext>​</mtext> <mo>→</mo>
<mtext>​</mtext> <mrow> <msup> <mi>ⅇ</mi> <mrow> <msup>
<mi>ⅇ</mi> <mrow> <mi>h</mi> <mo>-</mo> <mi>x</mi> </mrow> </msup>
<mo>+</mo> <mi>h</mi> <mo>+</mo> <mfrac> <mi>x</mi> <mn>2</mn> </mfrac>
<mo>-</mo> <mfrac> <mi>x</mi> <mrow> <mn>1</mn> <mo>+</mo> <mi>h</mi> </mrow>
</mfrac> </mrow> </msup> <mo>⁢</mo> <msqrt> <mi>ω</mi> </msqrt>
</mrow> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>  </mtext> <mtext>​</mtext> <mtext>f=</mtext>
<mtext>​</mtext> <mrow> <msup> <mi>ⅇ</mi> <mrow> <msup>
<mi>ⅇ</mi> <mrow> <mi>h</mi> <mo>-</mo> <mi>x</mi> </mrow> </msup>
<mo>+</mo> <mi>h</mi> <mo>+</mo> <mfrac> <mi>x</mi> <mn>2</mn> </mfrac>
<mo>-</mo> <mfrac> <mi>x</mi> <mrow> <mn>1</mn> <mo>+</mo> <mi>h</mi> </mrow>
</mfrac> </mrow> </msup> <mo>⁢</mo> <msqrt> <mi>ω</mi> </msqrt>
</mrow> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Prepare to rewrite g=</mtext>
<mtext>​</mtext> <msup> <mi>ⅇ</mi> <mrow> <mi>h</mi> <mo>-</mo>
<mi>x</mi> </mrow> </msup> <mtext>​</mtext> <mtext> to A*ω^c</mtext>
</mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>c=</mtext>
<mtext>​</mtext> <mn>1</mn> <mtext>​</mtext> <mtext> A=</mtext>
<mtext>​</mtext> <msup> <mi>ⅇ</mi> <mi>h</mi> </msup> </mrow>

</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Rewriting </mtext>
<mtext>​</mtext> <msup> <mi>ⅇ</mi> <mrow> <mi>h</mi> <mo>-</mo>
<mi>x</mi> </mrow> </msup> <mtext>​</mtext> <mo>→</mo>
<mtext>​</mtext> <mrow> <msup> <mi>ⅇ</mi> <mi>h</mi> </msup>
<mo>⁢</mo> <mi>ω</mi> </mrow> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>  </mtext> <mtext>​</mtext> <mtext>f=</mtext>
<mtext>​</mtext> <mrow> <msup> <mi>ⅇ</mi> <mrow> <mi>h</mi>
<mo>+</mo> <mfrac> <mi>x</mi> <mn>2</mn> </mfrac> <mo>-</mo> <mfrac> <mi>x</mi>
<mrow> <mn>1</mn> <mo>+</mo> <mi>h</mi> </mrow> </mfrac> <mo>+</mo> <mrow>
<msup> <mi>ⅇ</mi> <mi>h</mi> </msup> <mo>⁢</mo> <mi>ω</mi>
</mrow> </mrow> </msup> <mo>⁢</mo> <msqrt> <mi>ω</mi> </msqrt>
</mrow> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Prepare to rewrite g=</mtext>
<mtext>​</mtext> <msup> <mi>ⅇ</mi> <mrow> <mo>-</mo> <mi>x</mi>
</mrow> </msup> <mtext>​</mtext> <mtext> to A*ω^c</mtext> </mrow>

</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>c=</mtext>
<mtext>​</mtext> <mn>1</mn> <mtext>​</mtext> <mtext> A=</mtext>
<mtext>​</mtext> <mn>1</mn> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Rewriting </mtext>
<mtext>​</mtext> <msup> <mi>ⅇ</mi> <mrow> <mo>-</mo> <mi>x</mi>
</mrow> </msup> <mtext>​</mtext> <mo>→</mo> <mtext>​</mtext>
<mi>ω</mi> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>  </mtext> <mtext>​</mtext> <mtext>f=</mtext>
<mtext>​</mtext> <mrow> <msup> <mi>ⅇ</mi> <mrow> <mfrac> <mi>x</mi>
<mn>2</mn> </mfrac> <mo>+</mo> <mrow> <msup> <mi>ⅇ</mi> <mfrac> <mn>1</mn>
<mrow> <mn>1</mn> <mo>+</mo> <mi>ω</mi> </mrow> </mfrac> </msup>
<mo>⁢</mo> <mi>ω</mi> </mrow> <mo>+</mo> <mfrac> <mn>1</mn> <mrow>
<mn>1</mn> <mo>+</mo> <mi>ω</mi> </mrow> </mfrac> <mo>-</mo> <mfrac>
<mi>x</mi> <mrow> <mn>1</mn> <mo>+</mo> <mfrac> <mn>1</mn> <mrow> <mn>1</mn>
<mo>+</mo> <mi>ω</mi> </mrow> </mfrac> </mrow> </mfrac> </mrow> </msup>
<mo>⁢</mo> <msqrt> <mi>ω</mi> </msqrt> </mrow> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext>
<mtext>Calculating power series: f=</mtext> <mtext>​</mtext> <mrow> <msup>
<mi>ⅇ</mi> <mrow> <mfrac> <mi>x</mi> <mn>2</mn> </mfrac> <mo>+</mo> <mrow>
<msup> <mi>ⅇ</mi> <mfrac> <mn>1</mn> <mrow> <mn>1</mn> <mo>+</mo>
<mi>ω</mi> </mrow> </mfrac> </msup> <mo>⁢</mo> <mi>ω</mi>
</mrow> <mo>+</mo> <mfrac> <mn>1</mn> <mrow> <mn>1</mn> <mo>+</mo>
<mi>ω</mi> </mrow> </mfrac> <mo>-</mo> <mfrac> <mi>x</mi> <mrow> <mn>1</mn>
<mo>+</mo> <mfrac> <mn>1</mn> <mrow> <mn>1</mn> <mo>+</mo> <mi>ω</mi>
</mrow> </mfrac> </mrow> </mfrac> </mrow> </msup> <mo>⁢</mo> <msqrt>
<mi>ω</mi> </msqrt> </mrow> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Series expansion: </mtext>
<mtext>​</mtext>  <mrow> <mrow> <mi>ⅇ</mi>
<mo>⁢</mo> <msqrt> <mi>ω</mi> </msqrt> </mrow> <mo>+</mo> 
<msup> <mrow> <mi>O</mi> <mo>[</mo> <mi>ω</mi> <mo>]</mo> </mrow> <mrow>
<mn>3</mn> <mo>/</mo> <mn>2</mn> </mrow> </msup>  </mrow>
 </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Dominant term: </mtext>
<mtext>​</mtext> <mrow> <mi>ⅇ</mi> <mo>⁢</mo> <msqrt>
<mi>ω</mi> </msqrt> </mrow> <mtext>​</mtext>
<mtext> , ω=</mtext> <mtext>​</mtext> <msup> <mi>ⅇ</mi> <mrow>
<mo>-</mo> <mi>x</mi> </mrow> </msup> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Dominant asymptotic: </mtext>
<mtext>​</mtext> <mi>ⅇ</mi> <mo>⁢</mo> <mtext>​</mtext>
<msqrt> <msup> <mi>ⅇ</mi> <mrow> <mo>-</mo> <mi>x</mi> </mrow> </msup>
</msqrt> </mrow> 
</math></div></div>

<div class="mathcell"><div class="mathprint"><math xmlns="http://www.w3.org/1998/Math/MathML" mode="inline">
  <mrow> <mtext>​</mtext> <mtext>Leave Level </mtext>
<mtext>​</mtext> <mn>1</mn> <mtext>​</mtext> <mtext> Call </mtext>
<mtext>​</mtext> <mrow> <mrow> <mi>MrvLimitInf</mi> <mo>[</mo> <mrow>
<msup> <mi>ⅇ</mi> <mrow> <msup> <mi>ⅇ</mi> <mrow> <mrow> <mo>-</mo>
<mi>x</mi> </mrow> <mo>+</mo> <mi>h</mi> </mrow> </msup> <mo>+</mo> <mi>h</mi>
<mo>-</mo> <mfrac> <mi>x</mi> <mrow> <mn>1</mn> <mo>+</mo> <mi>h</mi> </mrow>
</mfrac> </mrow> </msup> <mo>,</mo> <mi>x</mi> <mo>,</mo> <mrow> <mi>Debug</mi>
<mo>→</mo> <mn>1</mn> </mrow> </mrow> <mo>]</mo> </mrow> <mo>==</mo>
<mn>0</mn> </mrow> </mrow> 
</math></div></div>

</div>





<br /><a href="Algorithmus.xml">Zurück</a> - <a href="Inhalt.xml">Inhalt</a> - <a href="index.html">Übersicht</a> - <a href="Quelltext.xml">Vorwärts</a>


<br /><a href="Algorithmus.xml">Zurück</a> - <a href="Inhalt.xml">Inhalt</a> - <a href="index.html">Übersicht</a> - <a href="Praxis.xml">Vorwärts</a>
</body></html>
