CellPrint[TextCell[Manipulate[If[MatrixQ[MatrixA,NumericQ]&&MemberQ[Flatten[MatrixA],Null]==False,If[MemberQ[ToCharacterCode[ToString[MatrixA]],62760]==False,If[VectorQ[MatrixB,NumericQ],If[MemberQ[MatrixB,Null]==False,If[Dimensions[MatrixA][[1]]==Dimensions[MatrixA][[2]]&&Dimensions[MatrixA][[1]]==Length[MatrixB],If[Det[MatrixA]!=0,Style[Column[{LinearSolveSP[MatrixA,MatrixB]},Center],10],Text[Style["Error en los datos",12]]],Text[Style["Error en los datos",12]]],Text[Style["Error en los datos",12]]],Text[Style["Error en los datos",12]]],Text[Style["Error en los datos",12]]],Text[Style["Error en los datos",12]]],Style["Propósito: implementa el método de Gauss con sustitución regresiva (se asume Det[A]≠0).",Bold,10],Spacer[{400,2}],{{MatrizA,{{2,-1,3,5},{3,-3,1,0},{1,-2,4,7},{2,7,-3,5}},"A="}},{{MatrizB,{-2,-1,0,3},"B="}},Delimiter,Button["Calcular la solución",MatrixA=MatrizA;MatrixB=MatrizB],Alignment->Center,Deployed->False,AppearanceElements->"ResetButton",LocalizeVariables->True,ContinuousAction->True,ControlPlacement->Top,FrameLabel->{{None,None},{Column[{,Row[{Style["Autores: Juan Félix Ávila Herrera y Enrique Vílchez Quesada",Bold,10,RGBColor[0,0,0.5]]}],Row[{Style["Escuela de Informática | Universidad Nacional de Costa Rica",Bold,10,RGBColor[0.5,0.1,0]]}]},Center],Style["Método de eliminación de Gauss", Bold,14, RGBColor[0,0.33,0.33]]}},Initialization:>(Clear[MatrixA,MatrixB];MatrixA=MatrizA;MatrixB=MatrizB;LinearSolveSP[A_List,BB_List]:=Module[{IF,MF,SF,n=Dimensions[A][[1]],M=Join[A,Transpose[{BB}],2],mi,mj,Respuesta={},r,Soluciones},IF[c_List,fi_,fj_]:=Module[{B=c,v,aux,j},v=Dimensions[c];For[j=1,j<=v[[2]],aux=B[[fi,j]];B[[fi,j]]=B[[fj,j]];B[[fj,j]]=aux;j++];Return[B]];MF[c_List,esc_,fi_]:=Module[{B=c},B[[fi]]=Together[esc B[[fi]]];Return[B]];SF[c_List, esc_,fj_, fi_]:=Module[{B=c},B[[fi]]=Together[esc*B[[fj]]+B[[fi]]];Return[B]];Respuesta=Append[Respuesta,MatrixForm[M]];For[mj=1,mj<=n-1,For[mi=1, mi<=n,If[mi>mj,If[M[[mj,mj]]!=0,If[M[[mi,mj]]!=0,M=SF[M,-1/M[[mj,mj]]M[[mi,mj]],mj,mi];Respuesta=Append[Respuesta,MatrixForm[M]]],r=mj+1;While[M[[r,mj]]==0,r++];M=IF[M,mj,r];If[M[[mi,mj]]!=0,M=SF[M,-1/M[[mj,mj]]M[[mi,mj]],mj,mi];Respuesta=Append[Respuesta,MatrixForm[M]]]]];mi++];mj++];Soluciones=LinearSolve[A,Transpose[{BB}]];Clear[x];Respuesta=Append[Respuesta,Row[{Table[(Subscript[x, mi])->Soluciones[[mi,1]],{mi,Length[Soluciones]}]}]];TableForm[Respuesta]])],"Text"]]