<?xml version="1.0" encoding="UTF-8"?>
<quiz>
<!-- question: 0  -->
  <question type="category">
    <category>
      <text>$course$/top/Grundbegriffe</text>
    </category>
    <info format="html">
      <text></text>
    </info>
    <idnumber></idnumber>
  </question>

<!-- question: 0  -->
  <question type="category">
    <category>
      <text>$course$/top/Grundbegriffe/Rechenregeln</text>
    </category>
    <info format="moodle_auto_format">
      <text></text>
    </info>
    <idnumber></idnumber>
  </question>

<!-- question: 0  -->
  <question type="category">
    <category>
      <text>$course$/top/Grundbegriffe/Rechenregeln/Partialbruchzerlegung</text>
    </category>
    <info format="html">
      <text></text>
    </info>
    <idnumber></idnumber>
  </question>

<!-- question: 966558  -->
  <question type="stack">
    <name>
      <text>Partialbruchzerlegung (1)</text>
    </name>
    <questiontext format="html">
      <text><![CDATA[<br>
<p style="text-align: justify;">
    Gegeben ist die gebrochenrationale Funktion
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle
     \displaystyle R: \mathbb{R} \rightarrow \mathbb{R},~ x\mapsto \frac{{@factor@}}{{@denominatorExp@}}.
    \)
</p>
<hr>
<p style="text-align: justify;">
    (a) Zerlegen Sie \(\displaystyle R(x) \) in Partialbrüche. Geben Sie den Ansatz an und drücken Sie die unbekannten Koeffizienten durch Großbuchstaben \(\displaystyle A,\, B,\, C,\, \ldots \) aus:
</p>
<p style="text-align: justify;">
    \(\displaystyle R(x) = \) [[input:ans1]]. [[validation:ans1]] [[feedback:prt1]]
</p>
<hr>
<p style="text-align: justify;">
    (b) Berechnen Sie nun alle unbekannten Parameter. Geben Sie diese in Form einer Liste an, d.h. <code>[A=1,B=2,C=3,...]</code>. Verwenden Sie keine Dezimalzahlen.
</p>
<p style="text-align: justify;">
    Die Liste lautet [[input:ans2]]. [[validation:ans2]] [[feedback:prt2]]
</p>
<hr>]]></text>
    </questiontext>
    <generalfeedback format="html">
      <text><![CDATA[<p style="text-align: justify;">
    zu (a) Der Nenner der (echt) gebrochen rationalen Funktion \(\displaystyle R(x)\) kann in Linearfaktoren aufgespaltet werden:
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle {@denominatorExp@}={@(make_multsgn("blank"),denominator)@}.
    \)
</p>
<p style="text-align: justify;">
    Der Ansatz für die Partialbrüche lautet somit
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle \cfrac{{@factor@}}{{@denominatorExp@}} = {@PB1@} + {@PB2@}. \quad (\star)
    \)
</p>
<hr>
<p style="text-align: justify;">
    zu (b) Die unbekannten Koeffizienten können nun folgendermaßen berechnen werden. Hierbei wird Gleichung \( \displaystyle (\star) \) zuerst mit dem Linearfaktor \(\displaystyle ({@denominator1@}) \) multipliziert und nach Koeffizient \(\displaystyle A \) umgeformt:
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle
    \begin{align*}
    A &amp;= \cfrac{{@factor@}}{{@denominatorExp@}}~ ({@denominator1@}) - {@PB2@}~ ({@denominator1@}) \\[1em]
    &amp;= \frac{{@factor@}}{{@denominator2@}} - {@PB2@}~ ({@denominator1@}) ~ \rightarrow ~ \text{NS einsetzen:} ~ x = {@root1@}
    \end{align*}
    \)
</p>
<br>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle \Rightarrow~ A = {@rhs(PBZcoeff[1])@}.
    \)
</p>
<br>
<p style="text-align: justify;">
    Anschließend wird die Gleichung \((\star)\) nach \(\displaystyle B \) umgeformt und mit dem Linearfaktor \(\displaystyle({@denominator2@})\) multipliziert:
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle
    \begin{align*}
    B &amp;= \cfrac{{@factor@}}{{@denominatorExp@}}~ ({@denominator2@}) - \frac{A}{{@denominator1@}}~ ({@denominator2@}) \\[1em]
    &amp;= \frac{{@factor@}}{{@denominator1@}} - \frac{A}{{@denominator1@}}~ ({@denominator2@}) ~ \rightarrow ~ \text{NS einsetzen:} ~ x =
    {@root2@}
    \end{align*}
    \)
</p>
<br>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle \Rightarrow~ B = {@rhs(PBZcoeff[2])@}.
    \)
</p>
<br>
<p style="text-align: justify;">
    Die Partialbruchzerlegung der Funktion \(\displaystyle R(x) \) lautet somit:
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle R(x) = \cfrac{{@factor@}}{{@denominatorExp@}} = {@TAns22@}.
    \)
</p>]]></text>
    </generalfeedback>
    <defaultgrade>1.0000000</defaultgrade>
    <penalty>0.0000000</penalty>
    <hidden>0</hidden>
    <idnumber></idnumber>
    <stackversion>
      <text>2023010400</text>
    </stackversion>
    <questionvariables>
      <text><![CDATA[/*
  Partialbruchzerlegung (1)

  wurde entwickelt von
 
    Michael Kubocz <kubocz[at]physik.rwth-aachen.de>
    
  nach einer Idee von
 
    Michael Kubocz <kubocz[at]physik.rwth-aachen.de>

  an der RWTH Aachen.

  Dieses Werk ist lizenziert unter einer Creative Commons
  Namensnennung-Weitergabe unter gleichen Bedingungen 4.0 International
  Lizenz. Um eine Kopie der Lizenz zu erhalten, besuchen Sie
  http://creativecommons.org/licenses/by-sa/4.0/.

  SPDX-License-Identifier: CC-BY-SA-4.0
*/

/* ------------------------------------- */
/* ------------------------------------- */
/* ------------------------------------- */

/*--- Randomisierung ---*/
factor: rand_with_prohib(-5,5,[0]);
root1: rand_with_prohib(2,6,[0]);
root2: -root1;

/*--- Berechnung der Partialbrüche ---*/
coeff_list: [A,B];

denominator: (x - root1) * (x - root2);
denominatorExp: expand(denominator);

denominator1: x - root1;
/*denominator1print: subst(x=root2,denominator1);*/
/*denominator1print2: ev(- denominator1print,simp);*/
PB1: coeff_list[1] / denominator1;

denominator2: x - root2;
/*denominator2print: subst(x=root1,denominator2);*/
/*denominator2print2: ev(denominator2print,simp);*/
PB2:  coeff_list[2]/ denominator2;

PBZ: PB1 + PB2;
PBZcoeff: [coeff_list[1]=factor/(2*root1), coeff_list[2]=factor/(2*root2)];
PBZnumerator: rhs(PBZcoeff[1]) / denominator1 + rhs(PBZcoeff[2]) / denominator2;

/*--- MLsgn ---*/
TAns1: PBZ;
TAns21: PBZcoeff;
TAns22: PBZnumerator;]]></text>
    </questionvariables>
    <specificfeedback format="html">
      <text></text>
    </specificfeedback>
    <questionnote>
      <text>factor = {@factor@};   root1 = {@root1@};   root2 = {@root2@};
TAns1 = {@TAns1@};
TAns21 = {@TAns21@};
TAns22 = {@TAns22@};</text>
    </questionnote>
    <questionsimplify>1</questionsimplify>
    <assumepositive>0</assumepositive>
    <assumereal>0</assumereal>
    <prtcorrect format="html">
      <text></text>
    </prtcorrect>
    <prtpartiallycorrect format="html">
      <text></text>
    </prtpartiallycorrect>
    <prtincorrect format="html">
      <text></text>
    </prtincorrect>
    <multiplicationsign>dot</multiplicationsign>
    <sqrtsign>1</sqrtsign>
    <complexno>i</complexno>
    <inversetrig>cos-1</inversetrig>
    <logicsymbol>lang</logicsymbol>
    <matrixparens>[</matrixparens>
    <variantsselectionseed></variantsselectionseed>
    <input>
      <name>ans1</name>
      <type>algebraic</type>
      <tans>TAns1</tans>
      <boxsize>30</boxsize>
      <strictsyntax>1</strictsyntax>
      <insertstars>0</insertstars>
      <syntaxhint></syntaxhint>
      <syntaxattribute>0</syntaxattribute>
      <forbidwords>partfrac</forbidwords>
      <allowwords></allowwords>
      <forbidfloat>1</forbidfloat>
      <requirelowestterms>0</requirelowestterms>
      <checkanswertype>0</checkanswertype>
      <mustverify>1</mustverify>
      <showvalidation>3</showvalidation>
      <options>allowempty</options>
    </input>
    <input>
      <name>ans2</name>
      <type>algebraic</type>
      <tans>TAns21</tans>
      <boxsize>15</boxsize>
      <strictsyntax>1</strictsyntax>
      <insertstars>0</insertstars>
      <syntaxhint></syntaxhint>
      <syntaxattribute>0</syntaxattribute>
      <forbidwords>partfrac</forbidwords>
      <allowwords></allowwords>
      <forbidfloat>1</forbidfloat>
      <requirelowestterms>0</requirelowestterms>
      <checkanswertype>0</checkanswertype>
      <mustverify>1</mustverify>
      <showvalidation>3</showvalidation>
      <options>allowempty</options>
    </input>
    <prt>
      <name>prt1</name>
      <value>1.0000000</value>
      <autosimplify>1</autosimplify>
      <feedbackstyle>1</feedbackstyle>
      <feedbackvariables>
        <text>ans1_coeff_no: length(listofvars(ans1))-1;
ans1_ratsimp_denominator: denom(ratsimp(ans1));</text>
      </feedbackvariables>
      <node>
        <name>0</name>
        <answertest>AlgEquiv</answertest>
        <sans>ans1_coeff_no</sans>
        <tans>2</tans>
        <testoptions>0</testoptions>
        <quiet>1</quiet>
        <truescoremode>=</truescoremode>
        <truescore>0</truescore>
        <truepenalty></truepenalty>
        <truenextnode>1</truenextnode>
        <trueanswernote>prt1-1-T</trueanswernote>
        <truefeedback format="html">
          <text></text>
        </truefeedback>
        <falsescoremode>=</falsescoremode>
        <falsescore>0</falsescore>
        <falsepenalty></falsepenalty>
        <falsenextnode>-1</falsenextnode>
        <falseanswernote>prt1-1-F</falseanswernote>
        <falsefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (a) Die Anzahl der unbekannten Koeffizienten ist falsch.</strong>
</p>]]></text>
        </falsefeedback>
      </node>
      <node>
        <name>1</name>
        <answertest>SubstEquiv</answertest>
        <sans>ans1</sans>
        <tans>TAns1</tans>
        <testoptions>[x]</testoptions>
        <quiet>1</quiet>
        <truescoremode>+</truescoremode>
        <truescore>1</truescore>
        <truepenalty></truepenalty>
        <truenextnode>-1</truenextnode>
        <trueanswernote>prt1-2-T</trueanswernote>
        <truefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (a) Ansatz ist richtig.</strong>
</p>]]></text>
        </truefeedback>
        <falsescoremode>-</falsescoremode>
        <falsescore>0</falsescore>
        <falsepenalty></falsepenalty>
        <falsenextnode>-1</falsenextnode>
        <falseanswernote>prt1-2-F</falseanswernote>
        <falsefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (a) Der Ansatz reproduziert nicht den Nenner der Funktion \(\displaystyle R(x) \), d.h.</strong>
</p>
<p style="text-align: justify;margin-left:30px">
    <strong>\(\displaystyle {@ans1_ratsimp_denominator@} \neq {@denominatorExp@}. \)</strong>
</p>]]></text>
        </falsefeedback>
      </node>
    </prt>
    <prt>
      <name>prt2</name>
      <value>1.0000000</value>
      <autosimplify>1</autosimplify>
      <feedbackstyle>1</feedbackstyle>
      <feedbackvariables>
        <text>Sans_pratiodecomp_subst: at(ans1, ans2);</text>
      </feedbackvariables>
      <node>
        <name>0</name>
        <answertest>SubstEquiv</answertest>
        <sans>ans1</sans>
        <tans>TAns1</tans>
        <testoptions></testoptions>
        <quiet>1</quiet>
        <truescoremode>=</truescoremode>
        <truescore>0</truescore>
        <truepenalty></truepenalty>
        <truenextnode>1</truenextnode>
        <trueanswernote>prt2-1-T</trueanswernote>
        <truefeedback format="html">
          <text></text>
        </truefeedback>
        <falsescoremode>=</falsescoremode>
        <falsescore>0</falsescore>
        <falsepenalty></falsepenalty>
        <falsenextnode>-1</falsenextnode>
        <falseanswernote>prt2-1-F</falseanswernote>
        <falsefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (b) Die berechneten Koeffizienten sind aufgrund der falschen Zerlegung in Aufgabenteil (a) falsch.</strong>
</p>]]></text>
        </falsefeedback>
      </node>
      <node>
        <name>1</name>
        <answertest>AlgEquiv</answertest>
        <sans>Sans_pratiodecomp_subst</sans>
        <tans>TAns22</tans>
        <testoptions></testoptions>
        <quiet>1</quiet>
        <truescoremode>+</truescoremode>
        <truescore>1</truescore>
        <truepenalty></truepenalty>
        <truenextnode>-1</truenextnode>
        <trueanswernote>prt2-2-T</trueanswernote>
        <truefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (b) Die berechneten Koeffizienten sind richtig.</strong>
</p>]]></text>
        </truefeedback>
        <falsescoremode>-</falsescoremode>
        <falsescore>0</falsescore>
        <falsepenalty></falsepenalty>
        <falsenextnode>-1</falsenextnode>
        <falseanswernote>prt2-2-F</falseanswernote>
        <falsefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (b) Mindestens einer der berechneten Koeffizienten ist falsch.</strong>
</p>]]></text>
        </falsefeedback>
      </node>
    </prt>
    <qtest>
      <testcase>1</testcase>
      <testinput>
        <name>ans1</name>
        <value>TAns1</value>
      </testinput>
      <testinput>
        <name>ans2</name>
        <value>TAns21</value>
      </testinput>
      <expected>
        <name>prt1</name>
        <expectedscore>1.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt1-2-T</expectedanswernote>
      </expected>
      <expected>
        <name>prt2</name>
        <expectedscore>1.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt2-2-T</expectedanswernote>
      </expected>
    </qtest>
    <qtest>
      <testcase>2</testcase>
      <testinput>
        <name>ans1</name>
        <value>A</value>
      </testinput>
      <testinput>
        <name>ans2</name>
        <value>42</value>
      </testinput>
      <expected>
        <name>prt1</name>
        <expectedscore>0.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt1-1-F</expectedanswernote>
      </expected>
      <expected>
        <name>prt2</name>
        <expectedscore>0.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt2-1-F</expectedanswernote>
      </expected>
    </qtest>
    <qtest>
      <testcase>3</testcase>
      <testinput>
        <name>ans1</name>
        <value>TAns1</value>
      </testinput>
      <testinput>
        <name>ans2</name>
        <value>[A = 42,B = 42]</value>
      </testinput>
      <expected>
        <name>prt1</name>
        <expectedscore>1.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt1-2-T</expectedanswernote>
      </expected>
      <expected>
        <name>prt2</name>
        <expectedscore>0.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt2-2-F</expectedanswernote>
      </expected>
    </qtest>
    <tags>
      <tag><text>Partialbruchzerlegung</text>
</tag>
      <tag><text>PBZ</text>
</tag>
    </tags>
  </question>

<!-- question: 966559  -->
  <question type="stack">
    <name>
      <text>Partialbruchzerlegung (2)</text>
    </name>
    <questiontext format="html">
      <text><![CDATA[<br>
<p style="text-align: justify;">
    Gegeben ist die gebrochenrationale Funktion
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle
    R: \mathbb{R} \rightarrow \mathbb{R},~ x\mapsto \frac{{@numerator@}}{{@(make_multsgn("blank"),denominator_exp)@}}.
    \)
</p>
<hr>
<p style="text-align: justify;">
    (a) Zerlegen Sie \(\displaystyle R(x) \) in reelle Partialbrüche. Geben Sie den Ansatz an und drücken Sie die unbekannten Koeffizienten durch Großbuchstaben \(\displaystyle A,\, B,\, C,\, \ldots \) aus:
</p>
<p style="text-align: justify;">
    \(\displaystyle R(x) = \) [[input:ans1]]. [[validation:ans1]] [[feedback:prt1]]
</p>
<hr>
<p style="text-align: justify;">
    (b) Berechnen Sie nun alle unbekannten Parameter. Geben Sie diese in Form einer Liste an, d.h. <code>[A=1,B=2,C=3,...]</code>. Verwenden Sie keine Dezimalzahlen.
</p>
<p style="text-align: justify;">
    Die Liste lautet [[input:ans2]]. [[validation:ans2]] [[feedback:prt2]]
</p>
<hr>]]></text>
    </questiontext>
    <generalfeedback format="html">
      <text><![CDATA[<p style="text-align: justify;">
    zu (a) Der Nenner der (echt) gebrochen rationalen Funktion \(\displaystyle R(x) \) kann folgendermaßen aufgespaltet werden:
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle {@(make_multsgn("blank"),denominator_exp)@}={@(make_multsgn("blank"),denominator)@}.
    \)
</p>
<p style="text-align: justify;">
    Der Ansatz für die Partialbrüche lautet somit
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle
    \begin{align*}
    &amp; R(x)=\cfrac{{@numerator@}}{{@denominator_exp@}} = {@pratiodecomp@} \quad (\star) \\[1em]
    &amp;\big[ \text{quadr. Term}~ ({@denominator2@})~ \text{kann im Reellen nicht weiter zerlegt werden} \big].
    \end{align*}
    \)
</p>
<hr>
<p style="text-align: justify;">
    zu (b) Es existieren unterschiedliche Methoden die unbekannten Koeffizienten zu berechnen. Hier wird nur eine Methode gezeigt.
</p>
<p style="text-align: justify;">
    Gleichung \( \displaystyle (\star) \) wird zuerst mit dem Linearfaktor \(\displaystyle ({@denominator1@}) \) multipliziert und nach Koeffizienten \(\displaystyle A \) umgeformt:
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle
    \begin{align*}
    A &amp;= \cfrac{{@numerator@}}{{@denominator@}}~ ({@denominator1@}) - {@pratio2@}~ ({@denominator1@}) \\[1em]
    &amp;= \cfrac{{@numerator@}}{{@denominator2@}} - {@pratio2@}~ ({@denominator1@})~ \rightarrow ~ \text{NS einsetzen:} ~ x = {@root1@}
    \end{align*}
    \)
</p>
<br>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle \Rightarrow~ A = {@rhs(pratiodecomp_coeff[1])@}.
    \)
</p>
<br>
<p style="text-align: justify;">
    Anschließend wird der Koeffizient \(\displaystyle A \) in Gleichung \(\displaystyle (\star) \) eingesetzt und die Gleichung durch das Abspalten des Linearfaktors \(\displaystyle({@denominator1@})\) vereinfacht:
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle
    \begin{align*}
    \cfrac{{@numerator@}}{({@denominator1@})~({@denominator2@})} - \left( {@pratio1_subst@} \right) &amp;= {@pratio2@} \\[1em]
    {@term_simp@} &amp;= {@pratio2@}
    \end{align*}
    \)
</p>
<br>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle \Rightarrow~ B = {@rhs(pratiodecomp_coeff[2])@} \quad \text{und} \quad C = {@rhs(pratiodecomp_coeff[3])@} \quad \text{(durch Koeffizientenvergleich)}.
    \)
</p>
<br>
<p style="text-align: justify;">
    Die Partialbruchzerlegung der Funktion \(\displaystyle R(x) \) lautet somit:
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle R(x) =\cfrac{{@numerator@}}{{@denominator_exp@}} = {@pratiodecomp_subst@}.
    \)
</p>]]></text>
    </generalfeedback>
    <defaultgrade>1.0000000</defaultgrade>
    <penalty>0.0000000</penalty>
    <hidden>0</hidden>
    <idnumber></idnumber>
    <stackversion>
      <text>2023010400</text>
    </stackversion>
    <questionvariables>
      <text><![CDATA[/*
  Partialbruchzerlegung (2)

  wurde entwickelt von
 
    Michael Kubocz <kubocz[at]physik.rwth-aachen.de>
    
  nach einer Idee von
 
    Michael Kubocz <kubocz[at]physik.rwth-aachen.de>

  an der RWTH Aachen.

  Dieses Werk ist lizenziert unter einer Creative Commons
  Namensnennung-Weitergabe unter gleichen Bedingungen 4.0 International
  Lizenz. Um eine Kopie der Lizenz zu erhalten, besuchen Sie
  http://creativecommons.org/licenses/by-sa/4.0/.

  SPDX-License-Identifier: CC-BY-SA-4.0
*/

/* ------------------------------------- */
/* ------------------------------------- */
/* ------------------------------------- */


/*--- Definition der rationalen Funktion ---*/
root1: -1;
monomial_x0: 2*rand_with_prohib(-3,3,[0,root1]);

/*--- Berechnung der Partialbrüche ---*/
coeff_list: [A,B,C];
numerator: x^2 + x + monomial_x0;
denominator1: x - root1;
denominator2: x^2 + 1;

denominator: denominator1 * denominator2;
denominator_exp: expand(denominator);
pratio1: coeff_list[1] / denominator1;
pratio2: (coeff_list[2] + coeff_list[3]*x)/ denominator2;
pratiodecomp: pratio1 + pratio2;
pratiodecomp_exp: ratsimp(pratiodecomp);
pratiodecomp_exp_numerator: num(pratiodecomp_exp)-coeff(num(pratiodecomp_exp), x, 0) ;
monomial_x0_list: makelist(coeff(num(pratiodecomp_exp), x, 0));
monomials_list_nox0: maplist (lambda ([monomial ], monomial), pratiodecomp_exp_numerator);
monomials_list: append(monomials_list_nox0, monomial_x0_list);
equations_list: map(lambda ([monomial], coeff(monomial, x, hipow(monomial, x)) = coeff(numerator, x, hipow(monomial, x))), monomials_list);
equations_list_solutions: solve(equations_list, [coeff_list[1], coeff_list[2], coeff_list[3]]);
pratiodecomp_coeff: first(equations_list_solutions);
pratiodecomp_subst: rhs(pratiodecomp_coeff[1]) / denominator1 + (rhs(pratiodecomp_coeff[2]) + rhs(pratiodecomp_coeff[3]) * x ) / denominator2;

/*--- weitere Umformungen ---*/
pratio1_subst: at(pratio1,pratiodecomp_coeff[1]);
term_simp: ratsimp(numerator/denominator - rhs(pratiodecomp_coeff[1]) / denominator1);
pratiodecomp_subst: at(pratio1 + pratio2, pratiodecomp_coeff);

/*--- MLsgn ---*/
TAns1: pratiodecomp;
TAns21: pratiodecomp_coeff;
TAns22: pratiodecomp_subst;]]></text>
    </questionvariables>
    <specificfeedback format="html">
      <text></text>
    </specificfeedback>
    <questionnote>
      <text>root1 = {@root1@}; monomial_x0 = {@monomial_x0@};
TAns1 = {@TAns1@};
TAns21 = {@TAns21@};
TAns22 = {@TAns22@};</text>
    </questionnote>
    <questionsimplify>1</questionsimplify>
    <assumepositive>0</assumepositive>
    <assumereal>0</assumereal>
    <prtcorrect format="html">
      <text></text>
    </prtcorrect>
    <prtpartiallycorrect format="html">
      <text></text>
    </prtpartiallycorrect>
    <prtincorrect format="html">
      <text></text>
    </prtincorrect>
    <multiplicationsign>dot</multiplicationsign>
    <sqrtsign>1</sqrtsign>
    <complexno>i</complexno>
    <inversetrig>cos-1</inversetrig>
    <logicsymbol>lang</logicsymbol>
    <matrixparens>[</matrixparens>
    <variantsselectionseed></variantsselectionseed>
    <input>
      <name>ans1</name>
      <type>algebraic</type>
      <tans>TAns1</tans>
      <boxsize>30</boxsize>
      <strictsyntax>1</strictsyntax>
      <insertstars>0</insertstars>
      <syntaxhint></syntaxhint>
      <syntaxattribute>0</syntaxattribute>
      <forbidwords>partfrac</forbidwords>
      <allowwords></allowwords>
      <forbidfloat>1</forbidfloat>
      <requirelowestterms>0</requirelowestterms>
      <checkanswertype>0</checkanswertype>
      <mustverify>1</mustverify>
      <showvalidation>3</showvalidation>
      <options>allowempty</options>
    </input>
    <input>
      <name>ans2</name>
      <type>algebraic</type>
      <tans>TAns21</tans>
      <boxsize>15</boxsize>
      <strictsyntax>1</strictsyntax>
      <insertstars>0</insertstars>
      <syntaxhint></syntaxhint>
      <syntaxattribute>0</syntaxattribute>
      <forbidwords>partfrac</forbidwords>
      <allowwords></allowwords>
      <forbidfloat>1</forbidfloat>
      <requirelowestterms>0</requirelowestterms>
      <checkanswertype>0</checkanswertype>
      <mustverify>1</mustverify>
      <showvalidation>3</showvalidation>
      <options>allowempty</options>
    </input>
    <prt>
      <name>prt1</name>
      <value>1.0000000</value>
      <autosimplify>1</autosimplify>
      <feedbackstyle>1</feedbackstyle>
      <feedbackvariables>
        <text>ans1_coeff_no: length(listofvars(ans1))-1;</text>
      </feedbackvariables>
      <node>
        <name>0</name>
        <answertest>AlgEquiv</answertest>
        <sans>ans1_coeff_no</sans>
        <tans>3</tans>
        <testoptions></testoptions>
        <quiet>1</quiet>
        <truescoremode>=</truescoremode>
        <truescore>0</truescore>
        <truepenalty></truepenalty>
        <truenextnode>1</truenextnode>
        <trueanswernote>prt1-1-T</trueanswernote>
        <truefeedback format="html">
          <text></text>
        </truefeedback>
        <falsescoremode>=</falsescoremode>
        <falsescore>0</falsescore>
        <falsepenalty></falsepenalty>
        <falsenextnode>-1</falsenextnode>
        <falseanswernote>prt1-1-F</falseanswernote>
        <falsefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (a) Die Anzahl der unbekannten Koeffizienten ist falsch.</strong>
</p>]]></text>
        </falsefeedback>
      </node>
      <node>
        <name>1</name>
        <answertest>SubstEquiv</answertest>
        <sans>ans1</sans>
        <tans>TAns1</tans>
        <testoptions>[x]</testoptions>
        <quiet>1</quiet>
        <truescoremode>=</truescoremode>
        <truescore>1</truescore>
        <truepenalty></truepenalty>
        <truenextnode>-1</truenextnode>
        <trueanswernote>prt1-2-T</trueanswernote>
        <truefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (a) Ansatz ist richtig.</strong>
</p>]]></text>
        </truefeedback>
        <falsescoremode>-</falsescoremode>
        <falsescore>0</falsescore>
        <falsepenalty></falsepenalty>
        <falsenextnode>-1</falsenextnode>
        <falseanswernote>prt1-2-F</falseanswernote>
        <falsefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (a) Ansatz ist falsch.</strong>
</p>]]></text>
        </falsefeedback>
      </node>
    </prt>
    <prt>
      <name>prt2</name>
      <value>1.0000000</value>
      <autosimplify>1</autosimplify>
      <feedbackstyle>1</feedbackstyle>
      <feedbackvariables>
        <text>Sans_pratiodecomp_subst: at(ans1, ans2);</text>
      </feedbackvariables>
      <node>
        <name>0</name>
        <answertest>SubstEquiv</answertest>
        <sans>ans1</sans>
        <tans>TAns1</tans>
        <testoptions></testoptions>
        <quiet>1</quiet>
        <truescoremode>=</truescoremode>
        <truescore>0</truescore>
        <truepenalty></truepenalty>
        <truenextnode>1</truenextnode>
        <trueanswernote>prt2-1-T</trueanswernote>
        <truefeedback format="html">
          <text></text>
        </truefeedback>
        <falsescoremode>=</falsescoremode>
        <falsescore>0</falsescore>
        <falsepenalty></falsepenalty>
        <falsenextnode>-1</falsenextnode>
        <falseanswernote>prt2-1-F</falseanswernote>
        <falsefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (b) Die berechneten Koeffizienten sind aufgrund der falschen Zerlegung in Aufgabenteil (a) falsch.</strong>
</p>]]></text>
        </falsefeedback>
      </node>
      <node>
        <name>1</name>
        <answertest>AlgEquiv</answertest>
        <sans>Sans_pratiodecomp_subst</sans>
        <tans>TAns22</tans>
        <testoptions></testoptions>
        <quiet>1</quiet>
        <truescoremode>+</truescoremode>
        <truescore>1</truescore>
        <truepenalty></truepenalty>
        <truenextnode>-1</truenextnode>
        <trueanswernote>prt2-2-T</trueanswernote>
        <truefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (b) Die berechneten Koeffizienten sind richtig.</strong>
</p>]]></text>
        </truefeedback>
        <falsescoremode>-</falsescoremode>
        <falsescore>0</falsescore>
        <falsepenalty></falsepenalty>
        <falsenextnode>-1</falsenextnode>
        <falseanswernote>prt2-2-F</falseanswernote>
        <falsefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (b) Mindestens einer der berechneten Koeffizienten ist falsch.</strong>
</p>]]></text>
        </falsefeedback>
      </node>
    </prt>
    <qtest>
      <testcase>1</testcase>
      <testinput>
        <name>ans1</name>
        <value>TAns1</value>
      </testinput>
      <testinput>
        <name>ans2</name>
        <value>TAns21</value>
      </testinput>
      <expected>
        <name>prt1</name>
        <expectedscore>1.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt1-2-T</expectedanswernote>
      </expected>
      <expected>
        <name>prt2</name>
        <expectedscore>1.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt2-2-T</expectedanswernote>
      </expected>
    </qtest>
    <qtest>
      <testcase>2</testcase>
      <testinput>
        <name>ans1</name>
        <value>(C*x+B)/(x^2+5)+A/(x+6)</value>
      </testinput>
      <testinput>
        <name>ans2</name>
        <value>[A = 42,B = 42,C = 42]</value>
      </testinput>
      <expected>
        <name>prt1</name>
        <expectedscore>0.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt1-2-F</expectedanswernote>
      </expected>
      <expected>
        <name>prt2</name>
        <expectedscore>0.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt2-1-F</expectedanswernote>
      </expected>
    </qtest>
    <qtest>
      <testcase>3</testcase>
      <testinput>
        <name>ans1</name>
        <value>TAns1</value>
      </testinput>
      <testinput>
        <name>ans2</name>
        <value>[A = 2,B = 2,C = 1];</value>
      </testinput>
      <expected>
        <name>prt1</name>
        <expectedscore>1.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt1-2-T</expectedanswernote>
      </expected>
      <expected>
        <name>prt2</name>
        <expectedscore>0.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt2-2-F</expectedanswernote>
      </expected>
    </qtest>
    <qtest>
      <testcase>4</testcase>
      <testinput>
        <name>ans1</name>
        <value>(B*x)/(x^2+1)+A/(x+1);</value>
      </testinput>
      <testinput>
        <name>ans2</name>
        <value>[A = 1,B = 1];</value>
      </testinput>
      <expected>
        <name>prt1</name>
        <expectedscore>0.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt1-1-F</expectedanswernote>
      </expected>
      <expected>
        <name>prt2</name>
        <expectedscore>0.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt2-1-F</expectedanswernote>
      </expected>
    </qtest>
    <tags>
      <tag><text>Partialbruchzerlegung</text>
</tag>
      <tag><text>PBZ</text>
</tag>
    </tags>
  </question>

<!-- question: 966560  -->
  <question type="stack">
    <name>
      <text>Partialbruchzerlegung (3)</text>
    </name>
    <questiontext format="html">
      <text><![CDATA[<br>
<p style="text-align: justify;">
    Gegeben ist die gebrochenrationale Funktion
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle
    R: \mathbb{R} \rightarrow \mathbb{R},~ x\mapsto \frac{{@numerator@}}{{@(make_multsgn("blank"),denominator_exp)@}}.
    \)
</p>
<hr>
<p style="text-align: justify;">
    (a) Zerlegen Sie \(\displaystyle R(x) \) in reelle Partialbrüche. Geben Sie den Ansatz an und drücken Sie die unbekannten Koeffizienten durch Großbuchstaben \(\displaystyle A,\, B,\, C,\, \ldots \) aus:
</p>
<p style="text-align: justify;">
    \(\displaystyle R(x) = \) [[input:ans1]]. [[validation:ans1]] [[feedback:prt1]]
</p>
<hr>
<p style="text-align: justify;">
    (b) Berechnen Sie nun alle unbekannten Parameter. Geben Sie diese in Form einer Liste an, d.h. <code>[A=1,B=2,C=3,...]</code>. Verwenden Sie keine Dezimalzahlen.
</p>
<p style="text-align: justify;">
    Die Liste lautet [[input:ans2]]. [[validation:ans2]] [[feedback:prt2]]
</p>
<hr>]]></text>
    </questiontext>
    <generalfeedback format="html">
      <text><![CDATA[<p style="text-align: justify;">
    zu (a) Der Nenner der (echt) gebrochen rationalen Funktion \(displaystyle R(x) \) kann folgendermaßen aufgespaltet werden:
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle {@(make_multsgn("blank"),denominator_exp)@}={@(make_multsgn("blank"),denominator)@}.
    \)
</p>
<p style="text-align: justify;">
    Der Ansatz für die Partialbrüche lautet somit
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle
    \begin{align*}
    &amp; R(x)=\cfrac{{@numerator@}}{{@denominator_exp@}} = {@pratiodecomp@} \quad (\star) \\[1em]
    &amp;\big[ \text{quadr. Term}~ ({@denominator3@})~ \text{kann im Reellen nicht weiter zerlegt werden} \big].
    \end{align*}
    \)
</p>
<hr>
<p style="text-align: justify;">
    zu (b) Es existieren unterschiedliche Methoden die unbekannten Koeffizienten zu berechnen. Hier wird nur eine Methode gezeigt.
</p>
<p style="text-align: justify;">
    Gleichung \( \displaystyle (\star) \) wird zuerst mit dem quadrierten Linearfaktor \(\displaystyle {@denominator2@} \) multipliziert und nach Koeffizienten \(\displaystyle B \) umgeformt:
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle
    \begin{align*}
    B &amp;= \cfrac{{@numerator@}}{{@denominator@}}~ {@denominator2@} - {@pratio1@}~ {@denominator2@} \\[1em]
    &amp; -{@pratio3@}~ {@denominator2@} \rightarrow ~ \text{NS einsetzen:} ~ x = {@root1@}.
    \end{align*}
    \)
</p>
<br>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle \Rightarrow~ B = {@rhs(pratiodecomp_coeff[2])@}.
    \)
</p>
<br>
<p style="text-align: justify;">
    Anschließend wird der Koeffizient \(\displaystyle B \) in Gleichung \(\displaystyle (\star) \) eingesetzt und die Gleichung durch das Abspalten von des Linearfaktors \(\displaystyle ({@denominator1@}) \) vereinfacht:
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle
    \begin{align*}
    \cfrac{{@numerator@}}{{@denominator@}} - \left( {@pratio2_subst@} \right) &amp;= {@pratio1@} + {@pratio3@} \\[1em]
    \cfrac{{@term_simp1@}}{({@denominator1@})~({@denominator3@})} &amp;= {@pratio1@} + {@pratio3@} \quad (\star \star)
    \end{align*}
    \)
</p>
<br>
<p style="text-align: justify;">
    Nun wird Gleichung \( \displaystyle (\star \star) \) mit dem Linearfaktor \(\displaystyle ({@denominator1@}) \) multipliziert und nach Koeffizienten \(\displaystyle A \) umgeformt:
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle
    \begin{align*}
    A &amp;= \cfrac{{@term_simp1@}}{({@denominator1@})~({@denominator3@})}~ ({@denominator1@}) - {@pratio3@}~ ({@denominator1@}) \rightarrow ~ \text{NS einsetzen:} ~ x = {@root1@}.
    \end{align*}
    \)
</p>
<br>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle \Rightarrow~ A = {@rhs(pratiodecomp_coeff[1])@}.
    \)
</p>
<br>
<p style="text-align: justify;">
    Im letzten Schritt wird der Koeffizient \(\displaystyle A \) in Gleichung \(\displaystyle (\star \star) \) eingesetzt und die Gleichung durch das Abspalten des Linearfaktors \(\displaystyle({@denominator1@})\) vereinfacht:
</p>
<br>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle
    \begin{align*}
    \cfrac{{@term_simp1@}}{({@denominator1@})~({@denominator3@})} - \left( {@pratio1_subst@} \right) &amp;= {@pratio3@} \\[1em]
    {@term_simp2@} &amp;= {@pratio3@}
    \end{align*}
    \)
</p>
<br>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle \Rightarrow~ C = {@rhs(pratiodecomp_coeff[3])@} \quad \text{und} \quad D = {@rhs(pratiodecomp_coeff[4])@} \quad \text{(durch Koeffizientenvergleich)}.
    \)
</p>
<br>
<p style="text-align: justify;">
    Die Partialbruchzerlegung der Funktion \(\displaystyle R(x) \) lautet somit:
</p>
<p style="text-align: justify;margin-left:30px">
    \(
    \displaystyle R(x) =\cfrac{{@numerator@}}{{@denominator_exp@}} = {@pratiodecomp_subst@}.
    \)
</p>]]></text>
    </generalfeedback>
    <defaultgrade>1.0000000</defaultgrade>
    <penalty>0.0000000</penalty>
    <hidden>0</hidden>
    <idnumber></idnumber>
    <stackversion>
      <text>2023010400</text>
    </stackversion>
    <questionvariables>
      <text><![CDATA[/*
  Partialbruchzerlegung (3)

  wurde entwickelt von
 
    Michael Kubocz <kubocz[at]physik.rwth-aachen.de>
    
  nach einer Idee von
 
    Michael Kubocz <kubocz[at]physik.rwth-aachen.de>

  an der RWTH Aachen.

  Dieses Werk ist lizenziert unter einer Creative Commons
  Namensnennung-Weitergabe unter gleichen Bedingungen 4.0 International
  Lizenz. Um eine Kopie der Lizenz zu erhalten, besuchen Sie
  http://creativecommons.org/licenses/by-sa/4.0/.

  SPDX-License-Identifier: CC-BY-SA-4.0
*/

/* ------------------------------------- */
/* ------------------------------------- */
/* ------------------------------------- */


/*--- Definition der rationalen Funktion ---*/
root1: rand_with_prohib(-3,3,[0]);
numerator: rand_with_prohib(-3,3,[0,root1]);
monomial_x0: rand_with_prohib(1,6,[0,root1,numerator]);

/*--- Berechnung der Partialbrüche ---*/
coeff_list: [A,B,C,D];
denominator1: x - root1;
denominator2: denominator1^2;
denominator3: x^2 + monomial_x0;

denominator: denominator2 * denominator3;
denominator_exp: expand(denominator);

pratio1: coeff_list[1] / denominator1;
pratio2: coeff_list[2] / denominator2;
pratio3: (coeff_list[3] + coeff_list[4]*x)/ denominator3;
pratiodecomp: pratio1 + pratio2 + pratio3;
pratiodecomp_exp: ratsimp(pratiodecomp);
pratiodecomp_exp_numerator: num(pratiodecomp_exp)-coeff(num(pratiodecomp_exp), x, 0) ;
monomial_x0_list: makelist(coeff(num(pratiodecomp_exp), x, 0));
monomials_list_nox0: maplist (lambda ([monomial ], monomial), pratiodecomp_exp_numerator);
monomials_list: append(monomials_list_nox0, monomial_x0_list);
equations_list: map(lambda ([monomial], coeff(monomial, x, hipow(monomial, x)) = coeff(numerator, x, hipow(monomial, x))), monomials_list);
equations_list_solutions: solve(equations_list, [coeff_list[1], coeff_list[2], coeff_list[3], coeff_list[4]]);
pratiodecomp_coeff: first(equations_list_solutions);
pratiodecomp_subst: rhs(pratiodecomp_coeff[1]) / denominator1 + rhs(pratiodecomp_coeff[2]) / denominator2 + (rhs(pratiodecomp_coeff[3]) + rhs(pratiodecomp_coeff[4]) * x ) / denominator3;

/*--- weitere Umformungen ---*/
pratio1_subst: at(pratio1,pratiodecomp_coeff[1]);
pratio2_subst: at(pratio2,pratiodecomp_coeff[2]);
term_simp1_aux: ratsimp(numerator/denominator - pratio2_subst);
term_simp1: ratsimp(term_simp1_aux*denominator1*denominator3);
term_simp2: ratsimp(term_simp1_aux - pratio1_subst);

/*--- MLsgn ---*/
TAns1: pratiodecomp;
TAns21: pratiodecomp_coeff;
TAns22: pratiodecomp_subst;]]></text>
    </questionvariables>
    <specificfeedback format="html">
      <text></text>
    </specificfeedback>
    <questionnote>
      <text>root1 = {@root1@};   numerator = {@numerator@};   monomial_x0 = {@monomial_x0@};
TAns1 = {@TAns1@};
TAns21 = {@TAns21@};
TAns22 = {@TAns22@};</text>
    </questionnote>
    <questionsimplify>1</questionsimplify>
    <assumepositive>0</assumepositive>
    <assumereal>0</assumereal>
    <prtcorrect format="html">
      <text></text>
    </prtcorrect>
    <prtpartiallycorrect format="html">
      <text></text>
    </prtpartiallycorrect>
    <prtincorrect format="html">
      <text></text>
    </prtincorrect>
    <multiplicationsign>dot</multiplicationsign>
    <sqrtsign>1</sqrtsign>
    <complexno>i</complexno>
    <inversetrig>cos-1</inversetrig>
    <logicsymbol>lang</logicsymbol>
    <matrixparens>[</matrixparens>
    <variantsselectionseed></variantsselectionseed>
    <input>
      <name>ans1</name>
      <type>algebraic</type>
      <tans>TAns1</tans>
      <boxsize>30</boxsize>
      <strictsyntax>1</strictsyntax>
      <insertstars>0</insertstars>
      <syntaxhint></syntaxhint>
      <syntaxattribute>0</syntaxattribute>
      <forbidwords>partfrac</forbidwords>
      <allowwords></allowwords>
      <forbidfloat>1</forbidfloat>
      <requirelowestterms>0</requirelowestterms>
      <checkanswertype>0</checkanswertype>
      <mustverify>1</mustverify>
      <showvalidation>3</showvalidation>
      <options>allowempty</options>
    </input>
    <input>
      <name>ans2</name>
      <type>algebraic</type>
      <tans>TAns21</tans>
      <boxsize>25</boxsize>
      <strictsyntax>1</strictsyntax>
      <insertstars>0</insertstars>
      <syntaxhint></syntaxhint>
      <syntaxattribute>0</syntaxattribute>
      <forbidwords>partfrac</forbidwords>
      <allowwords></allowwords>
      <forbidfloat>1</forbidfloat>
      <requirelowestterms>0</requirelowestterms>
      <checkanswertype>0</checkanswertype>
      <mustverify>1</mustverify>
      <showvalidation>3</showvalidation>
      <options>allowempty</options>
    </input>
    <prt>
      <name>prt1</name>
      <value>1.0000000</value>
      <autosimplify>1</autosimplify>
      <feedbackstyle>1</feedbackstyle>
      <feedbackvariables>
        <text>ans1_coeff_no: length(listofvars(ans1))-1;</text>
      </feedbackvariables>
      <node>
        <name>0</name>
        <answertest>AlgEquiv</answertest>
        <sans>ans1_coeff_no</sans>
        <tans>4</tans>
        <testoptions></testoptions>
        <quiet>1</quiet>
        <truescoremode>=</truescoremode>
        <truescore>0</truescore>
        <truepenalty></truepenalty>
        <truenextnode>1</truenextnode>
        <trueanswernote>prt1-1-T</trueanswernote>
        <truefeedback format="html">
          <text></text>
        </truefeedback>
        <falsescoremode>=</falsescoremode>
        <falsescore>0</falsescore>
        <falsepenalty></falsepenalty>
        <falsenextnode>-1</falsenextnode>
        <falseanswernote>prt1-1-F</falseanswernote>
        <falsefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (a) Die Anzahl der unbekannten Koeffizienten ist falsch.</strong>
</p>]]></text>
        </falsefeedback>
      </node>
      <node>
        <name>1</name>
        <answertest>SubstEquiv</answertest>
        <sans>ans1</sans>
        <tans>TAns1</tans>
        <testoptions>[x]</testoptions>
        <quiet>1</quiet>
        <truescoremode>+</truescoremode>
        <truescore>1</truescore>
        <truepenalty></truepenalty>
        <truenextnode>-1</truenextnode>
        <trueanswernote>prt1-2-T</trueanswernote>
        <truefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (a) Ansatz ist richtig.</strong>
</p>]]></text>
        </truefeedback>
        <falsescoremode>-</falsescoremode>
        <falsescore>0</falsescore>
        <falsepenalty></falsepenalty>
        <falsenextnode>-1</falsenextnode>
        <falseanswernote>prt1-2-F</falseanswernote>
        <falsefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (a) Ansatz ist falsch.</strong>
</p>]]></text>
        </falsefeedback>
      </node>
    </prt>
    <prt>
      <name>prt2</name>
      <value>1.0000000</value>
      <autosimplify>1</autosimplify>
      <feedbackstyle>1</feedbackstyle>
      <feedbackvariables>
        <text>Sans_pratiodecomp_subst: at(ans1, ans2);</text>
      </feedbackvariables>
      <node>
        <name>0</name>
        <answertest>SubstEquiv</answertest>
        <sans>ans1</sans>
        <tans>TAns1</tans>
        <testoptions></testoptions>
        <quiet>1</quiet>
        <truescoremode>=</truescoremode>
        <truescore>0</truescore>
        <truepenalty></truepenalty>
        <truenextnode>1</truenextnode>
        <trueanswernote>prt2-1-T</trueanswernote>
        <truefeedback format="html">
          <text></text>
        </truefeedback>
        <falsescoremode>=</falsescoremode>
        <falsescore>0</falsescore>
        <falsepenalty></falsepenalty>
        <falsenextnode>-1</falsenextnode>
        <falseanswernote>prt2-1-F</falseanswernote>
        <falsefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (b) Die berechneten Koeffizienten sind aufgrund der falschen Zerlegung in Aufgabenteil (a) falsch.</strong>
</p>]]></text>
        </falsefeedback>
      </node>
      <node>
        <name>1</name>
        <answertest>AlgEquiv</answertest>
        <sans>Sans_pratiodecomp_subst</sans>
        <tans>TAns22</tans>
        <testoptions></testoptions>
        <quiet>1</quiet>
        <truescoremode>+</truescoremode>
        <truescore>1</truescore>
        <truepenalty></truepenalty>
        <truenextnode>-1</truenextnode>
        <trueanswernote>prt2-2-T</trueanswernote>
        <truefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (b) Die berechneten Koeffizienten sind richtig.</strong>
</p>]]></text>
        </truefeedback>
        <falsescoremode>-</falsescoremode>
        <falsescore>0</falsescore>
        <falsepenalty></falsepenalty>
        <falsenextnode>-1</falsenextnode>
        <falseanswernote>prt2-2-F</falseanswernote>
        <falsefeedback format="html">
          <text><![CDATA[<p style="text-align: justify;">
    <strong>zu (b) Mindestens einer der berechneten Koeffizienten ist falsch.</strong>
</p>]]></text>
        </falsefeedback>
      </node>
    </prt>
    <qtest>
      <testcase>1</testcase>
      <testinput>
        <name>ans1</name>
        <value>TAns1</value>
      </testinput>
      <testinput>
        <name>ans2</name>
        <value>TAns21</value>
      </testinput>
      <expected>
        <name>prt1</name>
        <expectedscore>1.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt1-2-T</expectedanswernote>
      </expected>
      <expected>
        <name>prt2</name>
        <expectedscore>1.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt2-2-T</expectedanswernote>
      </expected>
    </qtest>
    <qtest>
      <testcase>2</testcase>
      <testinput>
        <name>ans1</name>
        <value>TAns1</value>
      </testinput>
      <testinput>
        <name>ans2</name>
        <value>[A=1,B =2,C =3,D=4]</value>
      </testinput>
      <expected>
        <name>prt1</name>
        <expectedscore>1.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt1-2-T</expectedanswernote>
      </expected>
      <expected>
        <name>prt2</name>
        <expectedscore>0.0000000</expectedscore>
        <expectedpenalty>0.0000000</expectedpenalty>
        <expectedanswernote>prt2-2-F</expectedanswernote>
      </expected>
    </qtest>
    <tags>
      <tag><text>Partialbruchzerlegung</text>
</tag>
      <tag><text>PBZ</text>
</tag>
    </tags>
  </question>

</quiz>