1 PRINT "1.-M. Jacobi 2.-M. Gauss-Seidel3.-M. Crout 4.-M. Choleski"; 3 TC$=INKEY$: IF TC$="1" THEN GOTO 5 ELSE IF TC$="2" THEN GOTO 1000 ELSE IF TC$="3" THEN GOTO 1500 ELSE IF TC$="4" THEN GOTO 500 ELSE GOTO 3 5 CLEAR:CLS 10 PRINT "Metodo de Jacobi" 11 INPUT "Dimension del sistema N=";N 20 DIM B(N):DIM A(N,N):DIM X1(N):DIM X0(N):DIM X2(N) 25 PRINT "Introduce los coficientes de A" 30 FOR I=1 TO N 35 FOR J=1 TO N 40 PRINT "A(";I;",";J;")=";:INPUT A(I,J) 50 NEXT J:NEXT I 55 PRINT "Introduce los tnos indpndtes" 60 FOR I=1 TO N 65 PRINT "B(";I;")=";:INPUT B(I) 70 NEXT I 90 FOR I=1 TO N 100 Y=A(I,I) 110 FOR J=1 TO N 120 A(I,J)=-A(I,J)/Y 130 NEXT J 140 A(I,I)=0 150 B(I)=B(I)/Y 160 NEXT I 170 FOR I=1 TO N 180 PRINT "X0(";I;")=";:INPUT X0(I) 190 NEXT I 200 INPUT "ERROR";E 210 FOR I=1 TO N 220 K=0 230 FOR J=1 TO N 240 IF J=I THEN GOTO 270 250 K=K+A(I,J)*X0(J) 270 NEXT J 280 X1(I)=K+B(I) 290 PRINT "X1(";I;")=";X1(I) 300 NEXT I 310 SUM=0 320 FOR I=1 TO N 330 X2(I)=X1(I)-X0(I) 340 SUM=SUM+(ABS(X2(I)))^3 350 NEXT I 360 B=SUM^1/3 380 IF B>E THEN GOSUB 430:GOTO 210 390 FOR M=1 TO N 400 PRINT "X(";M;")=";X1(M) 410 NEXT M 420 END 430 FOR I=1 TO N 440 X0(I)=X1(I) 450 NEXT I 460 RETURN 500 CLEAR:CLS:PRINT "Metodo de Choleski" 510 INPUT "Dimension del sistema N=";N 520 DIM A(N,N):DIM M(N,N):DIM D$(N):DIM S(N):DIM MI(N,N) 530 PRINT "Introduzca coeficientes de A" 540 FOR I=1 TO N 550 FOR J=I TO N 570 PRINT "A(";I;",";J;")=";:INPUT A(I,J) 580 NEXT J:NEXT I 590 FOR I=1 TO N 595 FOR J=I TO N 600 IF I<>J THEN GOTO 650 605 PROD=0 610 FOR K=I-1 TO 1 STEP-1 615 PROD=PROD+(M(K,I)^2)*S(K) 620 NEXT K 625 DIF=A(I,J)-PROD:IF DIF>=0 THEN D$(I)=" " ELSE D$(I)="i" 626 S(I)=DIF/ABS(DIF) 630 M(I,J)=SQR(ABS(DIF)) 640 IF I=J THEN GOTO 695 650 PROD=0 660 FOR K=I-1 TO 1 STEP-1 670 PROD=PROD+M(K,I)*M(K,J)*S(K) 680 NEXT K 690 M(I,J)=(A(I,J)-PROD)/M(I,I) 695 PRINT "M(";I;",";J;")=";M(I,J);D$(I) 700 NEXT J 710 NEXT I 760 END 1000 CLEAR:CLS 1010 PRINT "Metodo de Gauss-Seidel" 1011 INPUT "Dimension del sistema N=";N 1020 DIM B(N):DIM A(N,N):DIM X(N) 1030 FOR I=1 TO N 1035 FOR J=1 TO N 1040 PRINT "A(";I;",";J;")=";:INPUT A(I,J) 1050 NEXT J:NEXT I 1055 PRINT "Introduce los tnos indpndtes" 1060 FOR I=1 TO N 1065 PRINT "B(";I;")=";:INPUT B(I) 1070 NEXT I 1090 FOR I=1 TO N 1100 Y=A(I,I) 1110 FOR J=1 TO N 1120 A(I,J)=-A(I,J)/Y 1130 NEXT J 1140 A(I,I)=0 1150 B(I)=B(I)/Y 1160 NEXT I 1170 FOR I=1 TO N 1180 PRINT "X(";I;")=";:INPUT X(I) 1190 NEXT I 1210 FOR I=1 TO N 1220 K=0 1230 FOR J=1 TO N 1240 IF J=I THEN GOTO 1270 1250 K=K+A(I,J)*X(J) 1270 NEXT J 1280 X(I)=K+B(I) 1290 PRINT "X(";I;")=";X(I) 1300 NEXT I 1310 GOTO 1210 1500 CLS:PRINT "Metodo de Crout":CLEAR 1510 INPUT "Dimension del Sistema N=";N 1520 DIM A(N,N):DIM L(N,N):DIM U(N,N) 1530 PRINT "Introduzca los coeficientes de A" 1540 FOR I=1 TO N 1550 FOR J=1 TO N 1560 PRINT "A(";I;",";J;")=";:INPUT A(I,J) 1570 NEXT J 1580 NEXT I 1585 F=0 1590 FOR K=1 TO 2*N-1 1600 IF K/2=INT(K/2) THEN GOTO 1710 1610 F=F+1 1620 FOR J=F TO N 1625 SUM=0 1630 FOR I=F-1 TO 1 STEP-1 1640 SUM=SUM+U(I,J)*L(F,I) 1650 NEXT I 1660 U(F,J)=A(F,J)-SUM 1665 PRINT "U(";F;",";J;")=";U(F,J) 1670 NEXT J 1680 IF K/2<>INT(K/2) THEN GOTO 1800 1710 C=F 1720 FOR I=C+1 TO N 1730 SUM=0 1740 FOR J=I-1 TO 1 STEP-1 1750 SUM=SUM+L(I,J)*U(J,C) 1760 NEXT J 1780 L(I,C)=(A(I,C)-SUM)/A(C,C) 1785 PRINT "L(";I;",";C;")=";L(I,C) 1790 NEXT I 1800 NEXT K 1810 PRINT "Introduzca los valores de B":DIM B(N) 1820 FOR I=1 TO N 1830 PRINT "B(";I;")=";:INPUT B(I) 1840 NEXT I 1845 PRINT "Valores finales de B" 1850 FOR I=1 TO N 1860 SUM=0 1870 FOR J=I-1 TO 1 STEP-1 1880 SUM=SUM + B(J)*L(I,J) 1890 NEXT J 1900 B(I)=B(I)-SUM 1910 PRINT "B(";I;")=";B(I) 1920 NEXT I 1930 PRINT "Soluciones del Sistema" 1940 DIM X(N) 1950 X(N)=B(N)/U(N,N) 1960 PRINT "X(";N;")=";X(N) 1970 FOR K=N-1 TO 1 STEP-1 1980 R=0 1990 FOR J=K+1 TO N 2000 R=R+A(K,J)*X(J) 2010 NEXT J 2020 X(K)=(B(K)-R)/A(K,K) 2030 PRINT "X(";K;")=";X(K) 2040 NEXT K