<div dir="ltr">Hola lista!<div>Estoy haciendo un trabajo para la uni, la cosa es que hice un algoritmo que permite resolver un sistema de ecuaciones lineales con el metodo de sustitucion hacia atras.</div><div><br></div><div>Este es el algoritmo: <a href="https://k61.kn3.net/E/6/D/C/3/4/C05.png">https://k61.kn3.net/E/6/D/C/3/4/C05.png</a></div><div><br></div><div>Lamentablemente, el algoritmo esta explicado muy vagamente, o por lo menos ami se me hizo dificil entenderlo.</div><div><br></div><div>De cualquier forma, googleando y tratando de sacar el codigo por mi cuenta, he logrado hacer un algoritmo que aplica gauss correctamente, sin embargo, el codigo me falla al realizar la sustitucion hacia atras. (el ultimo paso).</div><div><br></div><div>Por ej, ingreso la siguiente matriz:</div><div>1  -5  1  7</div><div>10  0  20  6</div><div>5  0  -1  4</div><div><br></div><div>Y luego de aplicar gauss, la matriz resultante es esta:</div><div>1  -5  1  7</div><div>0  25  -6  -31</div><div>0  0  22  -2</div><div><br></div>Lo cual es correcto. Sin embargo, al momento de calcular el valor de las variables, el resultado es este:<br>  x1=4  x2=8  x3=12<br><br>Cuando en realidad debria ser:<br>x3=-2/22<br>x2=-31/25 - (-6*x3)<br>x1= 7/1 - (-5*x2) - (1*x3)<div><br></div><div>Les adjunto el programa en C que hice, y tambien se los dejo en el siguiente link de pastebin:</div><div><a href="http://pastebin.com/ca1Y8dA9">http://pastebin.com/ca1Y8dA9</a><br></div><div><br></div><div>El lugar donde aparentemente esta el error es este:<br><br></div><div><ol class="gmail-cil" style="color:rgb(172,172,172);background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;background-color:rgb(247,247,247);margin:0px;padding:0px 0px 0px 55px;font-family:consolas,menlo,monaco,"lucida console","liberation mono","dejavu sans mono","bitstream vera sans mono",monospace,serif;font-size:12px"><li class="gmail-li1" style="background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;background-color:rgb(255,255,255)"><div class="gmail-de1" style="padding:0px 8px;vertical-align:top;color:rgb(51,51,51);border-left:1px solid rgb(221,221,221);background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">    <span class="gmail-co0" style="color:gray;font-style:italic">//::::Aca es donde aparentemente esta el error::::</span></div></li><li class="gmail-li1" style="background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;background-color:rgb(255,255,255)"><div class="gmail-de1" style="padding:0px 8px;vertical-align:top;color:rgb(51,51,51);border-left:1px solid rgb(221,221,221);background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">    for<span class="gmail-br0" style="color:rgb(0,100,0)">(</span><span class="gmail-kw3" style="color:purple;font-weight:bold">int</span> x=n; x><span class="gmail-nu0" style="color:rgb(0,0,139)">0</span>; x--<span class="gmail-br0" style="color:rgb(0,100,0)">)</span><span class="gmail-br0" style="color:rgb(0,100,0)">{</span> <span class="gmail-co0" style="color:gray;font-style:italic">//Sustitucion hacia atras</span></div></li><li class="gmail-li1" style="background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;background-color:rgb(255,255,255)"><div class="gmail-de1" style="padding:0px 8px;vertical-align:top;color:rgb(51,51,51);border-left:1px solid rgb(221,221,221);background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">        resultados<span class="gmail-br0" style="color:rgb(0,100,0)">[</span>x<span class="gmail-br0" style="color:rgb(0,100,0)">]</span>=m<span class="gmail-br0" style="color:rgb(0,100,0)">[</span>x<span class="gmail-br0" style="color:rgb(0,100,0)">]</span><span class="gmail-br0" style="color:rgb(0,100,0)">[</span>n+<span class="gmail-nu0" style="color:rgb(0,0,139)">1</span><span class="gmail-br0" style="color:rgb(0,100,0)">]</span>/m<span class="gmail-br0" style="color:rgb(0,100,0)">[</span>x<span class="gmail-br0" style="color:rgb(0,100,0)">]</span><span class="gmail-br0" style="color:rgb(0,100,0)">[</span>x<span class="gmail-br0" style="color:rgb(0,100,0)">]</span>; <span class="gmail-co0" style="color:gray;font-style:italic">//Es igual a su B</span></div></li><li class="gmail-li1" style="background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;background-color:rgb(255,255,255)"><div class="gmail-de1" style="padding:0px 8px;vertical-align:top;color:rgb(51,51,51);border-left:1px solid rgb(221,221,221);background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"> </div></li><li class="gmail-li2" style="background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;background-color:rgb(255,255,255)"><div class="gmail-de2" style="padding:0px 8px;vertical-align:top;color:rgb(51,51,51);border-left:1px solid rgb(221,221,221);background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">        for <span class="gmail-br0" style="color:rgb(0,100,0)">(</span><span class="gmail-kw3" style="color:purple;font-weight:bold">int</span> y=x+<span class="gmail-nu0" style="color:rgb(0,0,139)">1</span>; y<n+<span class="gmail-nu0" style="color:rgb(0,0,139)">1</span>; y++<span class="gmail-br0" style="color:rgb(0,100,0)">)</span> <span class="gmail-br0" style="color:rgb(0,100,0)">{</span> <span class="gmail-co0" style="color:gray;font-style:italic">//Le resto a eso las demas variables</span></div></li><li class="gmail-li1" style="background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;background-color:rgb(255,255,255)"><div class="gmail-de1" style="padding:0px 8px;vertical-align:top;color:rgb(51,51,51);border-left:1px solid rgb(221,221,221);background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">            resultados<span class="gmail-br0" style="color:rgb(0,100,0)">[</span>x<span class="gmail-br0" style="color:rgb(0,100,0)">]</span>=resultados<span class="gmail-br0" style="color:rgb(0,100,0)">[</span>x<span class="gmail-br0" style="color:rgb(0,100,0)">]</span>-m<span class="gmail-br0" style="color:rgb(0,100,0)">[</span>x<span class="gmail-br0" style="color:rgb(0,100,0)">]</span><span class="gmail-br0" style="color:rgb(0,100,0)">[</span>y<span class="gmail-br0" style="color:rgb(0,100,0)">]</span>*resultados<span class="gmail-br0" style="color:rgb(0,100,0)">[</span>y<span class="gmail-br0" style="color:rgb(0,100,0)">]</span>;</div></li><li class="gmail-li1" style="background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;background-color:rgb(255,255,255)"><div class="gmail-de1" style="padding:0px 8px;vertical-align:top;color:rgb(51,51,51);border-left:1px solid rgb(221,221,221);background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">        <span class="gmail-br0" style="color:rgb(0,100,0)">}</span></div></li><li class="gmail-li1" style="background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;background-color:rgb(255,255,255)"><div class="gmail-de1" style="padding:0px 8px;vertical-align:top;color:rgb(51,51,51);border-left:1px solid rgb(221,221,221);background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"> </div></li><li>    <span class="gmail-br0" style="background-color:rgb(255,255,255);color:rgb(0,100,0)">}</span><br></li></ol><font color="#006400" face="consolas, menlo, monaco, lucida console, liberation mono, dejavu sans mono, bitstream vera sans mono, monospace, serif"><span style="font-size:12px"><br></span></font></div><div><br></div><div>Por ultimo aclarar. Se que hay otros metodos para calcular Gauss (usando pivotes), y que me ahorrarian hacer la sustitucion hacia atras, sin embargo, el ejercicio me pide resolverlo de esta forma. (Luego también tengo que hacer otros algoritmos que si usen pivote).</div><div><br></div><div>Espero puedan ayudarme, perdon por un mensaje tan extenso. Muchas gracias! :)</div></div>