Exercise linearalgebra.systemwithmatrix

Description
Solve Linear System with Matrix

Strategy

<label name="generalsolutiontoalinearsystemmatrixapproach">
  <sequence>
    <let>
      <decl var="0">
        <orelse>
          <sequence>
            <label name="dropequations">
              <choice>
                <label name="inconsistentsystem01">
                  <rule name="linearalgebra.linsystem.inconsistent"/>
                </label>
                <label name="drop00equation">
                  <rule name="linearalgebra.linsystem.trivial"/>
                </label>
              </choice>
            </label>
            <var var="0"/>
          </sequence>
          <succeed/>
        </orelse>
      </decl>
      <var var="0"/>
    </let>
    <rule name="linearalgebra.linsystem.tomatrix"/>
    <label name="gaussianelimination">
      <sequence>
        <label name="forwardpass">
          <sequence>
            <rule name="simplify"/>
            <let>
              <decl var="1">
                <orelse>
                  <sequence>
                    <label name="findj-thcolumn">
                      <rule name="linearalgebra.gaussianelim.findcolumnj"/>
                    </label>
                    <label name="exchangerows">
                      <orelse>
                        <rule name="linearalgebra.gaussianelim.exchange"/>
                        <succeed/>
                      </orelse>
                    </label>
                    <label name="scalerow">
                      <orelse>
                        <rule name="linearalgebra.gaussianelim.scale"/>
                        <succeed/>
                      </orelse>
                    </label>
                    <label name="zerosinj-thcolumn">
                      <let>
                        <decl var="0">
                          <orelse>
                            <sequence>
                              <rule name="linearalgebra.gaussianelim.add"/>
                              <var var="0"/>
                            </sequence>
                            <succeed/>
                          </orelse>
                        </decl>
                        <var var="0"/>
                      </let>
                    </label>
                    <label name="coveruptoprow">
                      <rule name="linearalgebra.gaussianelim.coverrow"/>
                    </label>
                    <var var="1"/>
                  </sequence>
                  <succeed/>
                </orelse>
              </decl>
              <var var="1"/>
            </let>
          </sequence>
        </label>
        <label name="backwardpass">
          <sequence>
            <rule name="simplify"/>
            <let>
              <decl var="1">
                <orelse>
                  <sequence>
                    <label name="uncoverrow">
                      <rule name="linearalgebra.gaussianelim.uncoverrow"/>
                    </label>
                    <label name="sweep">
                      <let>
                        <decl var="0">
                          <orelse>
                            <sequence>
                              <rule name="linearalgebra.gaussianelim.add"/>
                              <var var="0"/>
                            </sequence>
                            <succeed/>
                          </orelse>
                        </decl>
                        <var var="0"/>
                      </let>
                    </label>
                    <var var="1"/>
                  </sequence>
                  <succeed/>
                </orelse>
              </decl>
              <var var="1"/>
            </let>
          </sequence>
        </label>
      </sequence>
    </label>
    <rule name="linearalgebra.linsystem.frommatrix"/>
    <let>
      <decl var="0">
        <orelse>
          <sequence>
            <label name="dropequations">
              <choice>
                <label name="inconsistentsystem01">
                  <rule name="linearalgebra.linsystem.inconsistent"/>
                </label>
                <label name="drop00equation">
                  <rule name="linearalgebra.linsystem.trivial"/>
                </label>
              </choice>
            </label>
            <var var="0"/>
          </sequence>
          <succeed/>
        </orelse>
      </decl>
      <var var="0"/>
    </let>
  </sequence>
</label>

Locations

LocationLabel
[]generalsolutiontoalinearsystemmatrixapproach
[0]...dropequations
[0,0]......inconsistentsystem01
[0,0,0].........linearalgebra.linsystem.inconsistent
[1,0]......drop00equation
[0,1,0].........linearalgebra.linsystem.trivial
[1]...linearalgebra.linsystem.tomatrix
[2]...gaussianelimination
[0,2]......forwardpass
[0,0,2].........findj-thcolumn
[1,0,2].........exchangerows
[0,1,0,2]............linearalgebra.gaussianelim.exchange
[2,0,2].........scalerow
[0,2,0,2]............linearalgebra.gaussianelim.scale
[3,0,2].........zerosinj-thcolumn
[0,3,0,2]............linearalgebra.gaussianelim.add
[4,0,2].........coveruptoprow
[1,2]......backwardpass
[0,1,2].........uncoverrow
[1,1,2].........sweep
[0,1,1,2]............linearalgebra.gaussianelim.add
[3]...linearalgebra.linsystem.frommatrix
[4]...dropequations
[0,4]......inconsistentsystem01
[0,0,4].........linearalgebra.linsystem.inconsistent
[1,4]......drop00equation
[0,1,4].........linearalgebra.linsystem.trivial