Академический Документы
Профессиональный Документы
Культура Документы
UNIVERSIDAD NACIONAL
DE SAN
CRISTOBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS,
GEOLOGÍA Y CIVIL
MÉTODOS NUMÉRICOS
(IC-343)
TEMA:
TRABAJO SEMESTRAL - IMPLEMENTACIÓN DE PROGRA-
MAS CON INTERFAZ EN HP PRIME
DOCENTE:
Ing. CASTRO PEREZ, Cristian
Alumnos:
1 – Ecuaciones No Lineales
Ejemplo 1.1
Determinar una raiz del polinomio
p(x) = 2x3 − 3x − 1
a
a
a
a
a
Resultado:
x = 1,366026
Ejemplo 1.2
Encontrar la raiz de:
Solución:
Finalmente obtenemos:
x = 1,3098
Ejemplo 1.3
2
Hallar la menor raiz positiva de la ecuación e−x − cos (x) = 0 con una tolerancia de 10−5
Solución:
Ingresando datos en la HP PRIME:
a
a
a
a
a
a
a
a
a
a
Finalmente obtenemos:
x = 1,447414
Ejemplo 1.4
Determine el coeficiente de arrastre c necesario para que un paracaidista de masa m =
68,1kg tenga una velocidad de 40m/s despues de una caída libre de t = 10s Nota: La
aceleración de la gravedad es 9,8m/s2 .
Respuesta:
c = 14,780209
Ejemplo 1.5
Halla las raices de la ecuación 0 = 2cos(x) − x
Finalmente obtenemos:
x = 1,029867
Ejemplo 1.6
Con el método de la secante calcule la raíz de:
f (x) = e−x − x
Finalmente obtenemos:
x = 0,567144
Ejemplo 1.7
Determinar una raiz del polinomio
p(x) = 2x3 − 3x − 1
Solución: Para resolver por el método de Punto Fijo Multivariable tenemos que despejar de la
siguiente manera:
2x3 − 1
x=
3
Solución: Ingresando datos en la HP PRIME:
Finalmente obtenemos:
x = −0,366025
Ejemplo 1.8
Hallar:
2x + cos(x)
x=
3
Finalmente obtenemos:
x = 0,739086
Ejemplo 1.9
Aproximar la raiz quinta de 2 con tres cifras decimales exactas, ilustrando el método paso
a paso.
Despejando tenemos:
√5
2−x=0
Solución:
Ingresando datos en la HP PRIME:
Finalmente obtenemos:
x = 1,148698
Ejemplo 1.10
Nos ofrecen un crédito de 6000 euros a devolver en 50 mensualidades de 150 euros. Llamando
C al importe del préstamo, n al número de pagos, a al importe del plazo e i al tipo de interés
por período, se cumple la ecuación siguiente:
rn − 1
Crn = a donde : r = 1 + i
r−1
Reemplazando datos:
Finalmente obtenemos:
r=1
Ejemplo 1.11
Resolver:
1
3x1 − cos(x2 x3 ) − =0
2
2 2
x1 − 81(x2 + 0,1) + sen(x3 ) + 1,06 = 0
10π
e−x1 x2 + 20x3 + −1=0
3
Solución:
Finalmente obtenemos:
x1 = 0,5
x2 = 0
x3 = −0,523599
Ejemplo 1.12
Resolver:
x2 + y 2 − 1 = 0
x2 − y 2 + 12 = 0
Solución:
x = 0,8666025
y = 0,5
Ejemplo 1.13
Resolver:
1
3x1 − cos(x2 x3 ) − =0
2
2 2
x1 − 81(x2 + 0,1) + sen(x3 ) + 1,06 = 0
10π
e−x1 x2 + 20x3 + −1=0
3
Solución: Para resolver por el método de Punto Fijo Multivariable tenemos que despejar de la
siguiente manera:
cos(x2 x3 ) 1
x1 = +
q3 6
1
x2 = x21 + sen(x3 ) + 1,06 − 0,1
9
1 π
x3 = (1 − e−x1 x2 ) −
20 6
Ahora procedemos a iterar.
Ejemplo 1.14
Hallar el siguiente sistema no lineal:
x2 + x − y 2 − 1 = 0
y − sen(x2 ) = 0
Solución:
2 – Ecuaciones Polinomiales
Ejemplo 2.1
Determine las raices del polinomio
con un error de 1 %
Solución:
Ejemplo 2.2
Emplee el método de Bairstow para determinar las raices del polinomio siguiente:
Solución:
Figura 2.11: Nuevamente poniendo valores iniciales para resolver el polinomio de cuarto grado
Ejemplo 2.3
Determine las raices del polinomio:
Solución:
Ejemplo 2.4
Determine las raíces del polinomio:
Solución:
Ejemplo 2.5
Hallar las raices de la ecuación:
Solución:
Ejemplo 2.6
Determine las raices del polinomio
Solución:
a
a
a
a
a
a
a
a
a
a
a
a
a
a Figura 2.53: Cálculo de la quinta raíz
a
a
a
a
3 – Ecuaciones Lineales
MÉTODOS DIRECTOS
Ejemplo 3.1
Emplee la eliminación de Gauss para resolver:
Solución:
Ejemplo 3.2
Emplee la eliminación de Gauss para resolver:
2x2 + 5x3 = 9
2x1 + x2 + x3 = 9
3x1 + x2 = 10
Solución:
Ejemplo 3.3
Emplee la eliminación de Gauss Jordan para resolver:
Solución:
Ejemplo 3.4
Resolver por de Doolittle:
Solución:
Ejemplo 3.5
Resolver por de método iterativo de jacoby:
Solución:
Ejemplo 3.6
Emplee el método de Gauss-Seidel para resolver el sistema siguiente hasta que el error
relativo porcentual este por debajo de εs = 5 %
Solución:
3.6 Sobrerelajación
Ejemplo 3.7
Emplee el método de SOR para resolver el sistema siguiente hasta que el error relativo
porcentual este por debajo de εs = 5 %
Solución:
Ejemplo 3.8
Emplee el método de Gradiente Conjugado para resolver el sistema simétrico
Solución:
Ejemplo 4.1
Determine el polinomio de interpolaci´on de Lagrange para
1
f (x) = en los puntos x0 = 2, x1 = 2,5, x2 = 4
x
y utilícelo para aproximar f(3)
Solución:
Ejemplo 4.2
Hallar el polinomio que pase por todo los puntos dados, por el método de diferencias
divididas de newton.
Solución:
Ejemplo 4.3
Hallar la ecuación que pasa por los siguientes puntos:
Solución:
Ejemplo 4.4
Evaluando las abscisas en la función obtenemos la siguiente tabla:
x y
2 0.5
2.5 0.4
4 0.25
Solución: Hallando el polinomio que pasa por todo los puntos en la tabla:
5 – Integración
Ejemplo 5.1
Calcular la siguiente integral:
Z 4
(2x + 1)dx
1
Solución:
Ejemplo 5.2
Calcular la siguiente integral:
Z 4 x
e
dx
2 x
Solución:
Ejemplo 5.3
Resolver la siguiente integral por el método de romberg para 5 nodos.
Z4
x3 dx
2
Solución:
Ejemplo 5.4
Resolver la siguiente integral por Romberg.
Z 4
(2x + 1)dx
1
Solución:
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
Ejemplo 6.1
Integre numéricamente la ecuación:
dy
= −2x3 + 12x2 + 8,5
dx
desde x=0 hasta x=4 con un tamaño de paso de 0.5. La condición inicial en x=0 es y=1.
Solución:
Ejemplo 6.2
Integre numéricamente la ecuación:
dy
= 4e0,8x − 0,5yx
dx
con un tamaño de paso de h=0.5 . Teniendo y(0) = 2.
Solución:
Ejemplo 6.3
Integre numéricamente la ecuación:
Solución:
Ejemplo 6.4
Integre numéricamente la ecuación:
dy
= 4e0,8x − 0,5yx
dx
con un tamaño de paso de h=0.5 . Teniendo y(0) = 2.
Solución:
Ejemplo 6.5
Integre numéricamente la ecuación:
desde x=0 hasta x=4 con un tamaño de paso de 0.5. La condición inicial en x=0 es y=1.
Solución:
Ejemplo 6.6
Integre numéricamente la ecuación:
dy
= 4e0,8x − 0,5yx
dx
de x=0 a x=4 con un tamaño de paso de h=0.5 . Teniendo y(0) = 2.
Solución:
Ejemplo 6.7
Integre numéricamente la ecuación:
desde x=0 hasta x=4 con un tamaño de paso de 0.5. La condición inicial en x=0 es y=1.
Solución:
Ejemplo 6.8
Integre numéricamente la ecuación:
dy
= 4e0,8x − 0,5yx
dx
de x=0 a x=4 con un tamaño de paso de h=0.5 . Teniendo y(0) = 2.
Solución:
a
a
a
a
a
a
a
a
a
a
a
a
a
a Figura 6.29: cuadro de iteraciones para rungge-kutta de cuarto orden
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
Ejemplo 7.1
Emplee el método de Jacoby para hallar los valores propios y vectores propios
Figura 7.5:
Escuela Profecional de Ingeniería iteracion de los vectoresMétodos
Civil propios Numéricos (IC-343) 99
Universidad Nacional de San Cristobal de Huamanga
8 – Programas
1 EXPORT Busqueda ( f )
2 BEGIN
3 LOCAL x ,h ,n , xo ; x := CAS . x ;
4 LOCAL ii , fi , xi , fofi ; LOCAL fo , res , fa ;
5 LOCAL red ;
6 LOCAL ee ; ee := CAS . ee ; ee :=2.718281828459046;
7 INPUT ({ xo ,h , red } ,{" Valor_inicial " ," incremento "}) ;
8 ii :=0; xi := xo ; x := xi ; fo := EVAL ( f ) ;
9 ii := ii +1; xi := xo + ii * h ; x := xi ; fi := EVAL ( f ) ;
10 fofi := fo * fi ;
11
12
13
19 xi := ROUND ( xi , red ) ;
20 fi := ROUND ( fi , red ) ;
21 fofi := ROUND ( fofi , red ) ;
22
23
29
35 xi := ROUND ( xi , red ) ;
36 fi := ROUND ( fi , red ) ;
37 fofi := ROUND ( fofi , red ) ;
38
47 END ;
1 EXPORT Biseccion ( f )
2 BEGIN
3 LOCAL red ;
4 LOCAL x , xa , xb , xm , xn , fa , fb , fm ; x := CAS . x ;
5 LOCAL res , er , error , fafm , fbfm , ii ;
6 LOCAL err ;
7 LOCAL ee ; ee := CAS . ee ; ee :=2.718281828459046;
8
25 xa := ROUND ( xa , red ) ;
26 xb := ROUND ( xb , red ) ;
27 fa := ROUND ( fa , red ) ;
28 fb := ROUND ( fb , red ) ;
29 xm := ROUND ( xm , red ) ;
30 fm := ROUND ( fm , red ) ;
31 er := ROUND ( er , red ) ;
32
33
34
44
45
57
58
59 ii :=3;
60
61
64 x := xa ; fa := EVAL ( f ) ;
65 x := xb ; fb := EVAL ( f ) ;
66 xm :=( xa + xb ) /2; x := xm ; fm := EVAL ( f ) ;
67 fafm := fa * fm ; fbfm := fb * fm ;
68 er := ABS (( xm - xn ) / xm ) *100;
69
70 xa := ROUND ( xa , red ) ;
71 xb := ROUND ( xb , red ) ;
72 fa := ROUND ( fa , red ) ;
73 fb := ROUND ( fb , red ) ;
74 xm := ROUND ( xm , red ) ;
75 fm := ROUND ( fm , red ) ;
76 er := ROUND ( er , red ) ;
77
78
99
100 ii := ii +1;
101 END ;
102
103
104
105 res := xb -( xb - xa ) *( fb /( fb - fa ) ) ;
106 res := ROUND ( res , red ) ;
107 Spreadsheet . Cell ( ii +1 ,2) :=" Resultado ";
110 END ;
1 EXPORT PuntoFijo ( f )
2 BEGIN
3 LOCAL xo ,x , er , xi ,? , res , xa ; x := CAS . x ;
4 LOCAL ii ;
5 LOCAL red ;
6 LOCAL ee ; ee := CAS . ee ; ee :=2.718281828459046;
7 INPUT ({ xo , er , red } ,{" Valor Inicial " ," Parametro De Convergencia
"}) ;
8 x := xo ; xi := EVAL ( f ) ;
9 ?:= ABS (( xi - xo ) / xi ) *100;
10 Spreadsheet . Cell (1 ,1) :=" i ";
11 Spreadsheet . Cell (1 ,2) :=" xa ";
12 Spreadsheet . Cell (1 ,3) :=" xm ";
13 Spreadsheet . Cell (1 ,4) :=" Er ";
14
15 xo := ROUND ( xo , red ) ;
16 xi := ROUND ( xi , red ) ;
17 ?:= ROUND (? , red ) ;
18
25 WHILE ? > er DO
26 xa := xi ; x := xi ; xi := EVAL ( f ) ;
27 ?:= ABS (( xi - xa ) / xi ) *100;
28 ii := ii +1;
29
30 xa := ROUND ( xa , red ) ;
31 xi := ROUND ( xi , red ) ;
32 ?:= ROUND (? , red ) ;
33
43 END ;
1 EXPORT ReglaFalsa ( f )
2 BEGIN
3 LOCAL red ;
4 LOCAL x , xa , xb , xm , xn , fa , fb , fm ; x := CAS . x ;
5 LOCAL res , er , error , fafm , fbfm , ii ;
6 LOCAL a , b ;
7 LOCAL ee ; ee := CAS . ee ; ee :=2.718281828459046;
8
30
40
41 IF fa * fm >0 THEN
42 xa := xm ;
43 ELSE
44 xb := xm ;
45 END ;
46
47 IF fb * fm >0 THEN
48 xb := xm ;
49 ELSE
50 xa := xm ;
51 END ;
52
53
54
55 ii :=3;
56
57
70
71
72 xa := ROUND ( xa , red ) ;
73 xb := ROUND ( xb , red ) ;
74 fa := ROUND ( fa , red ) ;
75 fb := ROUND ( fb , red ) ;
76 xm := ROUND ( xm , red ) ;
77 fm := ROUND ( fm , red ) ;
78 er := ROUND ( er , red ) ;
79
99 ii := ii +1;
100 END ;
101
102 res := xm ;
103 res := ROUND ( res , red ) ;
104 Spreadsheet . Cell ( ii +1 ,2) :=" Resultado ";
105 Spreadsheet . Cell ( ii +1 ,3) := res ;
106
107 END ;
1 EXPORT Secante ( f )
2 BEGIN
3 LOCAL red ;
4 LOCAL x , xo , x1 , x2 , x3 ; x := CAS . x ;
5 LOCAL fxo , fx1 , fx2 ,a ,b , er , Er , ii ;
6 LOCAL ee ; ee := CAS . ee ; ee :=2.718281828459046;
7 LOCAL res ;
8 INPUT ({ xo , x1 , Er , red }) ;
9 x := xo ; fxo := EVAL ( f ) ;
10 x := x1 ; fx1 := EVAL ( f ) ;
11
12
13
14 xo := ROUND ( xo , red ) ;
15 x1 := ROUND ( x1 , red ) ;
16 fxo := ROUND ( fxo , red ) ;
17 fx1 := ROUND ( fx1 , red ) ;
18
19
26
27
44 x2 := ROUND ( x2 , red ) ;
45 fx2 := ROUND ( fx2 , red ) ;
46 er :=100;
47 er := ROUND ( er , red ) ;
48
49
55 WHILE er > Er DO
56 x := xo ; fxo := EVAL ( f ) ;
57 x := x1 ; fx1 := EVAL ( f ) ;
58
59 xo := ROUND ( xo , red ) ;
60 x1 := ROUND ( x1 , red ) ;
61 fxo := ROUND ( fxo , red ) ;
62 fx1 := ROUND ( fx1 , red ) ;
63
78 x2 := ROUND ( x2 , red ) ;
79 fx2 := ROUND ( fx2 , red ) ;
80 er := ROUND ( er , red ) ;
81
92
93 EXPORT Muller ( f )
94 BEGIN
95 LOCAL red ;
96 LOCAL xo , x1 , x2 , x3 , fxo , fx1 , fx2 , fx3 ;
97 LOCAL a ,b ,c ,x , ho , h1 , do , d1 ;
98 LOCAL ?1 ,?2 , er , Er , ii , res ,g , d ;
125
126
168 res := x3 ;
169 d := d - res ;
170 g :={ f , d };
171 g := quo ( g ) + rem ( g ) ;
172 Spreadsheet . Cell ( ii ,2) :=" Resultado ";
173 Spreadsheet . Cell ( ii ,3) := res ;
174 RETURN g ;
175
176 END ;
177
204 po := po +? p ; qo := qo +? q ;
205 Ea :=100; Eb :=100; ii :=4;
206
207
208
209 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,3) :=2;
210 Spreadsheet . Cell (2 ,1) :=" po "; Spreadsheet . Cell (2 ,3) := po ;
211 Spreadsheet . Cell (3 ,1) :=" qo "; Spreadsheet . Cell (3 ,3) := qo ;
212
219
230
231
232
238 END ;
239
249 END ;
1 EXPORT NewtonRaphson ( g )
2 BEGIN
3 LOCAL red ;
4 LOCAL x , xo , dgi , gi , xi , xa , dg ;
5 LOCAL er , Er , ii , res ; x := CAS . x ;
6 LOCAL ee ; ee := CAS . ee ;
7 INPUT ({ xo , Er , red }) ;
8 ee :=2.71828182846;
9 dg := diff (g , x ) ;
10 xa := xo ; x := xa ; gi := EVAL ( g ) ; dgi := EVAL ( dg ) ;
11 xi := xa -( gi ) /( dgi ) ;
12 er :=100;
13 ii :=3;
14 Spreadsheet . Cell (1 ,1) :=" i ";
15 Spreadsheet . Cell (1 ,2) :=" xo ";
16 Spreadsheet . Cell (1 ,3) :=" fxo ";
17 Spreadsheet . Cell (1 ,4) :=" f ’ xo ";
18 Spreadsheet . Cell (1 ,5) :=" xi ";
19 Spreadsheet . Cell (1 ,6) :=" Er ";
20
21 xa := ROUND ( xa , red ) ;
22 gi := ROUND ( gi , red ) ;
23 dgi := ROUND ( dgi , red ) ;
24 xi := ROUND ( xi , red ) ;
25 er := ROUND ( er , red ) ;
26
27
35 WHILE er > Er DO
36 xa := xi ; x := xa ; gi := EVAL ( g ) ; dgi := EVAL ( dg ) ;
37 xi := xa - gi /( dgi ) ;
38 er := ABS (( xi - xa ) /( xi ) ) ;
39
40
41 xa := ROUND ( xa , red ) ;
42 gi := ROUND ( gi , red ) ;
43 dgi := ROUND ( dgi , red ) ;
44 xi := ROUND ( xi , red ) ;
45 er := ROUND ( er , red ) ;
46
54 ii := ii +1;
55 END ;
56 res := xi ;
57 res := ROUND ( res , red ) ;
58 Spreadsheet . Cell ( ii +1 ,2) :=" Resultado ";
59 Spreadsheet . Cell ( ii +1 ,3) := res ;
60 END ;
1 EXPORT Laguerre ( f )
2 BEGIN
3 LOCAL red ;
4 LOCAL x , xo , df , ddf ; x := CAS . x ;
5 LOCAL fxo , dfxo , ddfxo , Hx , Hxo ,n , as ;
6 LOCAL xi , xa , res , Err , Er , ii ;
7 LOCAL ee ; ee := CAS . ee ; ee :=2.718281828459046;
8 INPUT ({ xo , red }) ;
9 xa := xo ;
10 n := symb2poly ( f ) ; n := CAS . SIZE ( n ) ; n := n -1;
11 df := diff (f ,x ,1) ;
12 ddf := CAS . diff (f ,x ,2) ;
13 Hx :=(( n -1) ^2) *( df ^2) -n *( n -1) * f * ddf ;
14 x := xo ; fxo := EVAL ( f ) ; dfxo := EVAL ( df ) ; ddfxo := EVAL ( ddf ) ; Hxo := EVAL ( Hx
);
15 as := SIGN ( dfxo ) ;
16 xi := xa -( n * fxo ) /( dfxo + as *?( Hxo ) ) ;
17 Err := ABS ( xi - xa ) ;
18 ii :=3;
19
20
21
40 END ;
41
42 EXPORT LaguirreMultiple ( f )
43 BEGIN
44 LOCAL xo ,n , ri , nn ,x ,g , de ; x := CAS . x ;
45 nn := symb2poly ( f ) ; n := CAS . SIZE ( nn ) ; n := n -1;
46 xo :=77;
47 ri :={};
48 g := f ;
49 FOR I FROM 1 TO n DO
50
58 END ;
59 END ;
60
61 EXPORT BaistorMultiple ( f )
62 BEGIN
63 STARTAPP (" Spreadsheet ") ;
64 LOCAL ri , fi ,n , nn , ai ,g , x ; x := CAS . x ;
65 n := symb2poly ( f ) ; n := CAS . SIZE ( n ) ; n := n -1;
66 nn := n MOD 2;
67 IF nn ==0 THEN
68 n := FLOOR ( n /2) -1;
69 ELSE
70 n := FLOOR ( n /2) ;
71 END ;
72 g := f ;
73 FOR I FROM 1 TO n DO
74 ai := Baistor ( g ) ;
75 ri := ai (1) ;
76 fi := ai (2) ;
77 Spreadsheet . Cell (7 , I ) := ROUND ( POLYROOT ( ri , x ) ,9) ;
78 Spreadsheet . Cell (8 , I ) := ri ;
79 Spreadsheet . Cell (9 , I ) := fi ;
80 g := fi ;
81 END ;
82 END ;
2 EXPORT Baistor ( f )
3 BEGIN
4 LOCAL red ;
5 LOCAL po , qo ,x , p ; x := CAS . x ;
6 LOCAL q1 , r1 , qx1 , r2 , r3 ,? p ,? q , res ;
7 LOCAL a11 , a12 , a21 , a22 , b1 , b2 , ra , rb ;
8 LOCAL ma , Ea , Eb , pa , qa , ii , resul ;
9 LOCAL ee ; ee := CAS . ee ; ee :=2.718281828459046;
10 INPUT ({ po , qo , red }) ; Spreadsheet . Cell (1 ,2) :=1; Spreadsheet . Cell
(2 ,2) := po ; Spreadsheet . Cell (3 ,2) := qo ;
11 p := x ^2+ po * x + qo ;
12 q1 := CAS . quo (f ,p , x ) ; r1 := CAS . rem (f ,p , x ) ; qx1 := q1 * x ;
13 r2 := CAS . rem ( qx1 , p ) ; r3 := CAS . rem ( q1 , p ) ;
14
28 po := po +? p ; qo := qo +? q ;
29 Ea :=100; Eb :=100; ii :=4;
30
31
32
43
52 Ea := ABS ( po - pa ) ; Eb := ABS ( qo - qa ) ;
53
54
55
56
62 END ;
63
73 END ;
1 EXPORT Jacoby ( f )
2 BEGIN
3 STARTAPP (" Function ") ;
4 LOCAL ee ; ee := CAS . ee ; ee :=2.718281828459046;
5 LOCAL x1 , x2 , x3 , x4 , x5 , x6 ; x1 := CAS . x1 ; x2 := CAS . x2 ; x3 := CAS . x3 ; x4 :=
25 xi := ROUND ( xi , red ) ;
26 er := ROUND ( er , red ) ;
27
28 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,2) :=" xa ";
Spreadsheet . Cell (1 ,3) :=" xi "; Spreadsheet . Cell (1 ,4) :=" Er ";
29 Spreadsheet . Cell (2 ,1) :=1; Spreadsheet . Cell (2 ,2) := xo ; Spreadsheet .
Cell (2 ,3) := xi ; Spreadsheet . Cell (2 ,4) := er ;
30 ii :=3;
31 WHILE er > Er AND ii < Itemax DO
32 xa := xi ;
33 CASE
34 IF n ==2 THEN x1 := xa (1) ; x2 := xa (2) END ;
35 IF n ==3 THEN x1 := xa (1) ; x2 := xa (2) ; x3 := xa (3) ; END ;
36 IF n ==4 THEN x1 := xa (1) ; x2 := xa (2) ; x3 := xa (3) ; x4 := xa (4) ; END ;
37 IF n ==5 THEN x1 := xa (1) ; x2 := xa (2) ; x3 := xa (3) ; x4 := xa (4) ; x5 := xa (5)
; END ;
38 IF n ==6 THEN x1 := xa (1) ; x2 := xa (2) ; x3 := xa (3) ; x4 := xa (4) ; x5 := xa (5)
; x6 := xa (6) ; END ;
39 END ;
40 xi := EVAL ( f ) ;
41 er := ABS ( CAS . l2norm ( xi - xa ) ) ;
42
43 xi := ROUND ( xi , red ) ;
44 er := ROUND ( er , red ) ;
45
1 EXPORT GaussSeindel ( f )
2 BEGIN
3 STARTAPP (" Function ") ;
4 LOCAL ee ; ee := CAS . ee ; ee :=2.718281828459046;
5 LOCAL x1 , x2 , x3 , x4 , x5 , x6 ; x1 := CAS . x1 ; x2 := CAS . x2 ; x3 := CAS . x3 ; x4 :=
CAS . x4 ; x5 := CAS . x5 ; x6 := CAS . x6 ;
6 LOCAL f1 , f2 , f3 , f4 , f5 , f6 ;
7 LOCAL xo , xi , xa , Er , Itemax , er , ii ;
8 LOCAL n ;
9 LOCAL red ;
10 n := CAS . SIZE ( f ) ;
11 xo := randMat ( n ) *0;
12 INPUT ({ Er , Itemax , red } ," Error -# maxDeIteracion ") ;
13 EDITMAT ( xo ," xo ") ;
14 xo := MatrizAvector ( xo ) ;
15 xa := xo ;
16 xi :={};
17 CASE
18 IF n ==2 THEN
19 x1 := xa (1) ; x2 := xa (2) ;
20 xi (1) := EVAL ( f (1) ) ;
21 x1 := xi (1) ; x2 := xa (2) ;
22 xi (2) := EVAL ( f (2) ) ;
23 END ;
24 IF n ==3 THEN
25 x1 := xa (1) ; x2 := xa (2) ; x3 := xa (3) ;
26 xi (1) := EVAL ( f (1) ) ;
27 x1 := xi (1) ; x2 := xa (2) ; x3 := xa (3) ;
28 xi (2) := EVAL ( f (2) ) ;
29 x1 := xi (1) ; x2 := xi (2) ; x3 := xa (3) ;
42 END ;
43 IF n ==5 THEN
44 x1 := xa (1) ; x2 := xa (2) ; x3 := xa (3) ; x4 := xa (4) ; x5 := xa (5) ;
45 xi (1) := EVAL ( f (1) ) ;
46 x1 := xi (1) ; x2 := xa (2) ; x3 := xa (3) ; x4 := xa (4) ; x5 := xa (5) ;
47 xi (2) := EVAL ( f (2) ) ;
48 x1 := xi (1) ; x2 := xi (2) ; x3 := xa (3) ; x4 := xa (4) ; x5 := xa (5) ;
49 xi (3) := EVAL ( f (3) ) ;
50 x1 := xi (1) ; x2 := xi (2) ; x3 := xi (3) ; x4 := xa (4) ; x5 := xa (5) ;
51 xi (4) := EVAL ( f (4) ) ;
52 x1 := xi (1) ; x2 := xi (2) ; x3 := xi (3) ; x4 := xi (4) ; x5 := xa (5) ;
53 xi (5) := EVAL ( f (5) ) ;
54 END ;
55 IF n ==6 THEN
56 x1 := xa (1) ; x2 := xa (2) ; x3 := xa (3) ; x4 := xa (4) ; x5 := xa (5) ; x6 := xa (6) ;
57 xi (1) := EVAL ( f (1) ) ;
58 x1 := xi (1) ; x2 := xa (2) ; x3 := xa (3) ; x4 := xa (4) ; x5 := xa (5) ; x6 := xa (6) ;
59 xi (2) := EVAL ( f (2) ) ;
60 x1 := xi (1) ; x2 := xi (2) ; x3 := xa (3) ; x4 := xa (4) ; x5 := xa (5) ; x6 := xa (6) ;
61 xi (3) := EVAL ( f (3) ) ;
62 x1 := xi (1) ; x2 := xi (2) ; x3 := xi (3) ; x4 := xa (4) ; x5 := xa (5) ; x6 := xa (6) ;
63 xi (4) := EVAL ( f (4) ) ;
64 x1 := xi (1) ; x2 := xi (2) ; x3 := xi (3) ; x4 := xi (4) ; x5 := xa (5) ; x6 := xa (6) ;
65 xi (5) := EVAL ( f (5) ) ;
66 x1 := xi (1) ; x2 := xi (2) ; x3 := xi (3) ; x4 := xi (4) ; x5 := xi (5) ; x6 := xa (6) ;
67 xi (6) := EVAL ( f (6) ) ;
68 END ;
69 END ;
70
73
74 xi := ROUND ( xi , red ) ;
75 er := ROUND ( er , red ) ;
76
77 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,2) :=" xa ";
Spreadsheet . Cell (1 ,3) :=" xi "; Spreadsheet . Cell (1 ,4) :=" Er ";
78 Spreadsheet . Cell (2 ,1) :=1; Spreadsheet . Cell (2 ,2) := xo ;
Spreadsheet . Cell (2 ,3) := xi ; Spreadsheet . Cell (2 ,4) := er ;
79 ii :=3;
80 WHILE er > Er AND ii < Itemax DO
81 xa := xi ;
82 CASE
83 IF n ==2 THEN
84 x1 := xa (1) ; x2 := xa (2) ;
85 xi (1) := EVAL ( f (1) ) ;
86 x1 := xi (1) ; x2 := xa (2) ;
87 xi (2) := EVAL ( f (2) ) ;
88 END ;
89 IF n ==3 THEN
90 x1 := xa (1) ; x2 := xa (2) ; x3 := xa (3) ;
91 xi (1) := EVAL ( f ) ;
92 x1 := xi (1) ; x2 := xa (2) ; x3 := xa (3) ;
93 xi (2) := EVAL ( f ) ;
94 x1 := xi (1) ; x2 := xi (2) ; x3 := xa (3) ;
95 xi (3) := EVAL ( f ) ;
96 END ;
97 IF n ==4 THEN
98 x1 := xa (1) ; x2 := xa (2) ; x3 := xa (3) ; x4 := xa (4) ;
99 xi (1) := EVAL ( f ) ;
100 x1 := xi (1) ; x2 := xa (2) ; x3 := xa (3) ; x4 := xa (4) ;
101 xi (2) := EVAL ( f ) ;
102 x1 := xi (1) ; x2 := xi (2) ; x3 := xa (3) ; x4 := xa (4) ;
103 xi (3) := EVAL ( f ) ;
104 x1 := xi (1) ; x2 := xi (2) ; x3 := xi (3) ; x4 := xa (4) ;
105 xi (4) := EVAL ( f ) ;
106
107 END ;
108 IF n ==5 THEN
109 x1 := xa (1) ; x2 := xa (2) ; x3 := xa (3) ; x4 := xa (4) ; x5 := xa (5) ;
110 xi (1) := EVAL ( f ) ;
111 x1 := xi (1) ; x2 := xa (2) ; x3 := xa (3) ; x4 := xa (4) ; x5 := xa (5) ;
112 xi (2) := EVAL ( f ) ;
113 x1 := xi (1) ; x2 := xi (2) ; x3 := xa (3) ; x4 := xa (4) ; x5 := xa (5) ;
114 xi (3) := EVAL ( f ) ;
115 x1 := xi (1) ; x2 := xi (2) ; x3 := xi (3) ; x4 := xa (4) ; x5 := xa (5) ;
1 EXPORT EliGausiana ( a )
2 BEGIN
3 LOCAL ee ; ee := CAS . ee ; ee :=2.718281828459046;
4 LOCAL n ,f ,c ,r , ab ,b , res , ra ; LOCAL rab , h ; LOCAL red , cal ;
5 LOCAL k ,p ,q ,m ,x , s ;
6 n := CAS . SIZE ( a ) ; f := n (1) ; c := n (2) ; c := c -1; b := a ; ab := DELCOL (b , c ) ; ra :=
CAS . RANK ( a ) ; rab := RANK ( ab ) ;
7 INPUT ( red ) ;
30 RETURN res ;
31 END ;
1 EXPORT GausJordan ( a )
2 BEGIN
3 LOCAL n ,f ,c ,k ,m ,p , q ;
4 LOCAL ee ; ee := CAS . ee ; ee :=2.718281828459046;
5 LOCAL red , cal ;
6 n := CAS . SIZE ( a ) ; f := n (1) ; c := n (2) ;
7 INPUT ( red ) ;
8
9 FOR k FROM 1 TO f DO
10 I := k ;
11 FOR I FROM k TO f DO
12 FOR J FROM I +1 TO f DO
13 p := a (J , I ) ;
14 q := a (I , I ) ;
15 a ( J ) := a ( J ) -( p / q ) * a ( I ) ; cal := a ( J ) ; cal := ROUND ( cal , red ) ; a ( J ) := cal ;
16 END ;
17 IF I ?1 THEN
18 FOR K FROM 1 TO I -1 DO
19 p := a (K , I ) ;
20 q := a (I , I ) ;
21 a ( K ) := a ( K ) -( p / q ) * a ( I ) ; cal := a ( K ) ; cal := ROUND ( cal , red ) ; a ( K ) := cal ;
22 END ;
23 Spreadsheet . Cell ( I +1 ,1) := I ;
24 Spreadsheet . Cell ( I +1 ,2) := ROUND (a ,8) ;
25 END ;
26
27 END ;
28 FOR I FROM 1 TO f DO
29 a ( I ) := a ( I ) / a (I , I ) ; cal := a ( I ) ; cal := ROUND ( cal , red ) ; a ( I ) := cal ;
30 Spreadsheet . Cell ( I +1 ,3) := I ; Spreadsheet . Cell ( I +1 ,4) := ROUND (a ,8) ;
Spreadsheet . Cell ( I +1 ,5) :=" x "+ I ; Spreadsheet . Cell ( I +1 ,6) := a (I ,
f +1) ;
31 END ;
32 RETURN a ;
33 END ;
34
35 END ;
1 EXPORT LUdolitLe ( a )
2 BEGIN
3 LOCAL red ;
4 LOCAL n ,l ,u ,s , res ,f , c ;
5 n := CAS . SIZE ( a ) ; f := n (1) ; c := n (2) ;
6 l := a *0; u := a *0;
7 FOR J FROM 1 TO c DO
8 FOR I FROM 1 TO f DO
9 IF I ? J THEN
10 u (I , J ) := a (I , J ) ;
11 FOR K FROM 1 TO I -1 DO
12 u (I , J ) := u (I , J ) -l (I , K ) * u (K , J ) ;
13 END ;
14 END ;
15 IF J ? I THEN
16 l (I , J ) := a (I , J ) ;
17 FOR K FROM 1 TO J -1 DO
18 l (I , J ) := l (I , J ) -l (I , K ) * u (K , J ) ;
19 END ;
20 l (I , J ) := l (I , J ) / u (J , J ) ;
21 END ;
22 END ;
23 END ;
24 res :={ l , u };
25 RETURN res ;
26 END ;
1 EXPORT Jacobii (a , b )
2 BEGIN
3 STARTAPP (" Function ") ;
4 LOCAL xi1 , xi2 , xi3 , xi4 , xi5 , xi6 , xi7 , xi8 ;
5 LOCAL xa1 , xa2 , xa3 , xa4 , xa5 , xa6 , xa7 , xa8 ;
6 LOCAL g1 , g2 , g3 , g4 , g5 , g6 , g7 , g8 ;
7 LOCAL gi1 , gi2 , gi3 , gi4 , gi5 , gi6 , gi7 , gi8 ;
8 LOCAL xo , xi , xa ,x , ii , res ;
9 LOCAL x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 ; x1 := CAS . x1 ; x2 := CAS . x2 ; x3 := CAS . x3 ;
x4 := CAS . x4 ; x5 := CAS . x5 ; x6 := CAS . x6 ; x7 := CAS . x7 ; x8 := CAS . x8 ;
10 LOCAL n , Er , maxiter , er , ea ;
11 LOCAL red ;
12
15 CASE
16 IF n ==2 THEN
17 INPUT ({ Er , maxiter , red }) ;
18 xo := randMat (n ,1) *0;
19 EDITMAT ( xo ) ;
20
25 x1 := xa1 ; x2 := xa2 ;
26 gi1 := EVAL ( g1 ) ; gi2 := EVAL ( g2 ) ;
27 xi :=[[ gi1 ] ,[ gi2 ]];
28 er := ABS ( l2norm ( xi - xa ) ) ;
29 ea := xi - xo ; ea (1 ,1) := ABS ( ea (1 ,1) / xi (1 ,1) ) *100; ea (2 ,1) := ABS ( ea
(2 ,1) / xi (2 ,1) ) *100;
30
31 xo := ROUND ( xo , red ) ;
32 xi := ROUND ( xi , red ) ;
33 er := ROUND ( er , red ) ;
34 ea := ROUND ( ea , red ) ;
35
36 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,2) :=" xa ";
Spreadsheet . Cell (1 ,3) :=" xi "; Spreadsheet . Cell (1 ,4) :=" Er ";
Spreadsheet . Cell (1 ,5) :=" Ea %";
37 Spreadsheet . Cell (1 ,1) :=1; Spreadsheet . Cell (2 ,2) := xo ; Spreadsheet .
Cell (2 ,3) := xi ; Spreadsheet . Cell (2 ,4) := er ; Spreadsheet . Cell
(2 ,5) := ea ;
38 ii :=3;
39 WHILE er > Er AND ii < maxiter DO
40 x1 := CAS . x1 ; x2 := CAS . x2 ;
41 xa := xi ;
42 xa1 := xa (1 ,1) ; xa2 := xa (2 ,1) ;
43 x1 := xa1 ; x2 := xa2 ;
44 gi1 := EVAL ( g1 ) ; gi2 := EVAL ( g2 ) ;
45 xi :=[[ gi1 ] ,[ gi2 ]];
46 er := ABS ( l2norm ( xi - xa ) ) ;
47 ea := xi - xa ;
48 ea (1 ,1) := ABS ( ea (1 ,1) / xi (1 ,1) ) *100; ea (2 ,1) := ABS ( ea (2 ,1) / xi (2 ,1) )
*100;
49
50 xa := ROUND ( xa , red ) ;
51 xi := ROUND ( xi , red ) ;
52 er := ROUND ( er , red ) ;
53 ea := ROUND ( ea , red ) ;
54
64
65 IF n ==3 THEN
66 INPUT ({ Er , maxiter , red }) ;
102 ii := ii +1;
103 END ;
104 res := xi ;
105 Spreadsheet . Cell ( ii ,1) :=" resultado "; Spreadsheet . Cell ( ii ,2) := res
;
106 STARTAPP (" Spreadsheet ") ;
107 res := xi ;
108 END ;
109
129 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,2) :=" xa ";
Spreadsheet . Cell (1 ,3) :=" xi "; Spreadsheet . Cell (1 ,4) :=" Er ";
Spreadsheet . Cell (1 ,5) :=" Ea %";
130 Spreadsheet . Cell (1 ,1) :=1; Spreadsheet . Cell (2 ,2) := xo ; Spreadsheet .
Cell (2 ,3) := xi ; Spreadsheet . Cell (2 ,4) := er ; Spreadsheet . Cell
(2 ,5) := ea ;
131 ii :=3;
132 ea :=[[100] ,[100] ,[100] ,[100]];
133 WHILE ( ea (1 ,1) > Er OR ea (2 ,1) > Er OR ea (3 ,1) > Er OR ea (4 ,1) >
Er ) AND ii < maxiter DO
134
178 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,2) :=" xa ";
Spreadsheet . Cell (1 ,3) :=" xi "; Spreadsheet . Cell (1 ,4) :=" Er ";
Spreadsheet . Cell (1 ,5) :=" Ea %";
179 Spreadsheet . Cell (1 ,1) :=1; Spreadsheet . Cell (2 ,2) := xo ; Spreadsheet .
Cell (2 ,3) := xi ; Spreadsheet . Cell (2 ,4) := er ; Spreadsheet . Cell
(2 ,5) := ea ;
180 ii :=3;
181 ea :=[[100] ,[100] ,[100] ,[100] ,[100]];
182 WHILE ( ea (1 ,1) > Er OR ea (2 ,1) > Er OR ea (3 ,1) > Er OR ea (4 ,1) >
Er OR ea (5 ,1) > Er ) AND ii < maxiter DO
183
193 ea (1 ,1) := ABS ( ea (1 ,1) / xi (1 ,1) ) *100; ea (2 ,1) := ABS ( ea (2 ,1) / xi (2 ,1) )
*100; ea (3 ,1) := ABS ( ea (3 ,1) / xi (3 ,1) ) *100; ea (4 ,1) := ABS ( ea (4 ,1) /
xi (4 ,1) ) *100; ea (5 ,1) := ABS ( ea (5 ,1) / xi (5 ,1) ) *100;
194 xa := ROUND ( xa , red ) ;
195 xi := ROUND ( xi , red ) ;
196 er := ROUND ( er , red ) ;
197 ea := ROUND ( ea , red ) ;
198
219 xa1 := xo (1 ,1) ; xa2 := xo (2 ,1) ; xa3 := xo (3 ,1) ; xa4 := xo (4 ,1) ; xa5 := xo
(5 ,1) ; xa6 := xo (6 ,1) ;
220 x1 := xa1 ; x2 := xa2 ; x3 := xa3 ; x4 := xa4 ; x5 := xa5 ; x6 := xa6 ;
221 gi1 := EVAL ( g1 ) ; gi2 := EVAL ( g2 ) ; gi3 := EVAL ( g3 ) ; gi4 := EVAL ( g4 ) ; gi5 :=
EVAL ( g5 ) ; gi6 := EVAL ( g6 ) ;
222 xi :=[[ gi1 ] ,[ gi2 ] ,[ gi3 ] ,[ gi4 ] ,[ gi5 ] ,[ gi6 ]];
223 er := ABS ( l2norm ( xi - xa ) ) ;
224 ea := xi - xo ; ea (1 ,1) := ABS ( ea (1 ,1) / xi (1 ,1) ) *100; ea (2 ,1) := ABS ( ea
(2 ,1) / xi (2 ,1) ) *100; ea (3 ,1) := ABS ( ea (3 ,1) / xi (3 ,1) ) *100; ea (4 ,1)
:= ABS ( ea (4 ,1) / xi (4 ,1) ) *100; ea (5 ,1) := ABS ( ea (5 ,1) / xi (5 ,1) )
*100; ea (6 ,1) := ABS ( ea (6 ,1) / xi (6 ,1) ) *100;
225 xo := ROUND ( xo , red ) ;
226 xi := ROUND ( xi , red ) ;
227 er := ROUND ( er , red ) ;
270 xa1 := xo (1 ,1) ; xa2 := xo (2 ,1) ; xa3 := xo (3 ,1) ; xa4 := xo (4 ,1) ; xa5 := xo
(5 ,1) ; xa6 := xo (6 ,1) ; xa7 := xo (7 ,1) ;
271 x1 := xa1 ; x2 := xa2 ; x3 := xa3 ; x4 := xa4 ; x5 := xa5 ; x6 := xa6 ; x7 := xa7 ;
272 gi1 := EVAL ( g1 ) ; gi2 := EVAL ( g2 ) ; gi3 := EVAL ( g3 ) ; gi4 := EVAL ( g4 ) ; gi5 :=
EVAL ( g5 ) ; gi6 := EVAL ( g6 ) ; gi7 := EVAL ( g7 ) ;
273 xi :=[[ gi1 ] ,[ gi2 ] ,[ gi3 ] ,[ gi4 ] ,[ gi5 ] ,[ gi6 ] ,[ gi7 ]];
274 er := ABS ( l2norm ( xi - xa ) ) ;
275 ea := xi - xo ; ea (1 ,1) := ABS ( ea (1 ,1) / xi (1 ,1) ) *100; ea (2 ,1) := ABS ( ea
(2 ,1) / xi (2 ,1) ) *100; ea (3 ,1) := ABS ( ea (3 ,1) / xi (3 ,1) ) *100; ea (4 ,1)
:= ABS ( ea (4 ,1) / xi (4 ,1) ) *100; ea (5 ,1) := ABS ( ea (5 ,1) / xi (5 ,1) )
*100; ea (6 ,1) := ABS ( ea (6 ,1) / xi (6 ,1) ) *100; ea (7 ,1) := ABS ( ea (7 ,1) /
xi (7 ,1) ) *100;
276 xo := ROUND ( xo , red ) ;
277 xi := ROUND ( xi , red ) ;
278 er := ROUND ( er , red ) ;
279 ea := ROUND ( ea , red ) ;
280 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,2) :=" xa ";
Spreadsheet . Cell (1 ,3) :=" xi "; Spreadsheet . Cell (1 ,4) :=" Er ";
Spreadsheet . Cell (1 ,5) :=" Ea %";
281 Spreadsheet . Cell (1 ,1) :=1; Spreadsheet . Cell (2 ,2) := xo ; Spreadsheet .
Cell (2 ,3) := xi ; Spreadsheet . Cell (2 ,4) := er ; Spreadsheet . Cell
(2 ,5) := ea ;
282 ii :=3;
283 ea :=[[100] ,[100] ,[100] ,[100] ,[100] ,[100] ,[100]];
284 WHILE ( ea (1 ,1) > Er OR ea (2 ,1) > Er OR ea (3 ,1) > Er OR ea (4 ,1) >
321 xa1 := xo (1 ,1) ; xa2 := xo (2 ,1) ; xa3 := xo (3 ,1) ; xa4 := xo (4 ,1) ; xa5 := xo
(5 ,1) ; xa6 := xo (6 ,1) ; xa7 := xo (7 ,1) ; xa8 := xo (8 ,1) ;
322 x1 := xa1 ; x2 := xa2 ; x3 := xa3 ; x4 := xa4 ; x5 := xa5 ; x6 := xa6 ; x7 := xa7 ; x8 := xa8
;
323 gi1 := EVAL ( g1 ) ; gi2 := EVAL ( g2 ) ; gi3 := EVAL ( g3 ) ; gi4 := EVAL ( g4 ) ; gi5 :=
EVAL ( g5 ) ; gi6 := EVAL ( g6 ) ; gi7 := EVAL ( g7 ) ; gi8 := EVAL ( g8 ) ;
324 xi :=[[ gi1 ] ,[ gi2 ] ,[ gi3 ] ,[ gi4 ] ,[ gi5 ] ,[ gi6 ] ,[ gi7 ] ,[ gi8 ]];
325 er := ABS ( l2norm ( xi - xa ) ) ;
326 ea := xi - xo ; ea (1 ,1) := ABS ( ea (1 ,1) / xi (1 ,1) ) *100; ea (2 ,1) := ABS ( ea
(2 ,1) / xi (2 ,1) ) *100; ea (3 ,1) := ABS ( ea (3 ,1) / xi (3 ,1) ) *100; ea (4 ,1)
:= ABS ( ea (4 ,1) / xi (4 ,1) ) *100; ea (5 ,1) := ABS ( ea (5 ,1) / xi (5 ,1) )
*100; ea (6 ,1) := ABS ( ea (6 ,1) / xi (6 ,1) ) *100; ea (7 ,1) := ABS ( ea (7 ,1) /
xi (7 ,1) ) *100; ea (8 ,1) := ABS ( ea (8 ,1) / xi (8 ,1) ) *100;
327 xo := ROUND ( xo , red ) ;
328 xi := ROUND ( xi , red ) ;
329 er := ROUND ( er , red ) ;
330 ea := ROUND ( ea , red ) ;
331 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,2) :=" xa ";
Spreadsheet . Cell (1 ,3) :=" xi "; Spreadsheet . Cell (1 ,4) :=" Er ";
Spreadsheet . Cell (1 ,5) :=" Ea %";
332 Spreadsheet . Cell (1 ,1) :=1; Spreadsheet . Cell (2 ,2) := xo ; Spreadsheet .
Cell (2 ,3) := xi ; Spreadsheet . Cell (2 ,4) := er ; Spreadsheet . Cell
(2 ,5) := ea ;
333 ii :=3;
334 ea :=[[100] ,[100] ,[100] ,[100] ,[100] ,[100] ,[100] ,[100]];
335 WHILE ( ea (1 ,1) > Er OR ea (2 ,1) > Er OR ea (3 ,1) > Er OR ea (4 ,1) >
Er OR ea (5 ,1) > Er OR ea (6 ,1) > Er OR ea (7 ,1) > Er OR ea (8 ,1) >
Er ) AND ii < maxiter DO
336
1 EXPORT GausSeidel (a , b )
2 BEGIN
3 STARTAPP (" Function ") ;
4 LOCAL red ;
5 LOCAL xi1 , xi2 , xi3 , xi4 , xi5 , xi6 , xi7 , xi8 ;
6 LOCAL xa1 , xa2 , xa3 , xa4 , xa5 , xa6 , xa7 , xa8 ;
7 LOCAL g1 , g2 , g3 , g4 , g5 , g6 , g7 , g8 ;
8 LOCAL gi1 , gi2 , gi3 , gi4 , gi5 , gi6 , gi7 , gi8 ;
9 LOCAL xo , xi , xa ,x , ii , res ;
10 LOCAL x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 ; x1 := CAS . x1 ; x2 := CAS . x2 ; x3 := CAS . x3 ;
x4 := CAS . x4 ; x5 := CAS . x5 ; x6 := CAS . x6 ; x7 := CAS . x7 ; x8 := CAS . x8 ;
11 LOCAL n , Er , maxiter , er , ea ;
12 LOCAL xo1 , xo2 , xo3 ; LOCAL xo4 , xo5 , xo6 , xo7 , xo8 , xo9 , xo10 ;
13 n := CAS . SIZE ( a ) ; n := n (1) ;
14 CASE
15 IF n ==2 THEN
16 INPUT ({ Er , maxiter , red }) ;
17 INPUT ({ xo2 }) ;
18
27 xo := ROUND ( xo , red ) ;
28 xi := ROUND ( xi , red ) ;
29 er := ROUND ( er , red ) ;
30 ea := ROUND ( ea , red ) ;
31
32 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,2) :=" xa ";
Spreadsheet . Cell (1 ,3) :=" xi "; Spreadsheet . Cell (1 ,4) :=" Exi %";
Spreadsheet . Cell (1 ,5) :=" Er ";
33 Spreadsheet . Cell (2 ,1) :=1; Spreadsheet . Cell (2 ,2) := xo ; Spreadsheet .
Cell (2 ,3) := xi ; Spreadsheet . Cell (2 ,4) := ea ; Spreadsheet . Cell
(2 ,5) := er ;
34 ii :=3;
35 WHILE er > Er AND ii ? maxiter DO
36 x1 := CAS . x1 ; x2 := CAS . x2 ;
37 xa := xi ;
38 x2 := xa (2 ,1) ; gi1 := EVAL ( g1 ) ;
39 x1 := gi1 ; gi2 := EVAL ( g2 ) ;
40 xi :=[[ gi1 ] ,[ gi2 ]];
41 er := ABS ( l2norm ( xi - xa ) ) ;
42 ea := xi - xa ;
43 ea (1 ,1) := ABS ( ea (1 ,1) / xi (1 ,1) ) *100; ea (2 ,1) := ABS ( ea (2 ,1) / xi (2 ,1) )
*100;
44 xa := ROUND ( xa , red ) ;
45 xi := ROUND ( xi , red ) ;
46 er := ROUND ( er , red ) ;
47 ea := ROUND ( ea , red ) ;
48 Spreadsheet . Cell ( ii ,1) := ii -1; Spreadsheet . Cell ( ii ,2) := xa ;
Spreadsheet . Cell ( ii ,3) := xi ; Spreadsheet . Cell ( ii ,4) := ea ;
Spreadsheet . Cell ( ii ,5) := er ;
49 ii := ii +1;
50 END ;
51 res := xi ;
52 STARTAPP (" Spreadsheet ") ;
53 res := xi ;
54 END ;
55
56 IF n ==3 THEN
57 INPUT ({ Er , maxiter , red }) ;
58 INPUT ({ xo2 , xo3 }) ;
59 g1 := b (1 ,1) / a (1 ,1) -(1/ a (1 ,1) ) *( a (1 ,2) * x2 + a (1 ,3) * x3 ) ;
60 g2 := b (2 ,1) / a (2 ,2) -(1/ a (2 ,2) ) *( a (2 ,1) * x1 + a (2 ,3) * x3 ) ;
61 g3 := b (3 ,1) / a (3 ,3) -(1/ a (3 ,3) ) *( a (3 ,1) * x1 + a (3 ,2) * x2 ) ;
62 x2 := xo2 ; x3 := xo3 ;
63 gi1 := EVAL ( g1 ) ; x1 := gi1 ;
64 gi2 := EVAL ( g2 ) ; x2 := gi2 ;
65 gi3 := EVAL ( g3 ) ;
66 xi :=[[ gi1 ] ,[ gi2 ] ,[ gi3 ]];
67 er :=100;
68 ea :=[[100] ,[100] ,[100]];
69 xo := ROUND ( xo , red ) ;
70 xi := ROUND ( xi , red ) ;
71 er := ROUND ( er , red ) ;
72 ea := ROUND ( ea , red ) ;
73 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,2) :=" xa ";
Spreadsheet . Cell (1 ,3) :=" xi "; Spreadsheet . Cell (1 ,4) :=" Exi %";
Spreadsheet . Cell (1 ,5) :=" Er ";
74 Spreadsheet . Cell (2 ,1) :=1; Spreadsheet . Cell (2 ,2) := xo ; Spreadsheet .
Cell (2 ,3) := xi ; Spreadsheet . Cell (2 ,4) := ea ; Spreadsheet . Cell
(2 ,5) := er ;
75 ii :=3;
76 WHILE ( ea (1 ,1) > Er OR ea (2 ,1) > Er OR ea (3 ,1) > Er ) AND ( ii -1) ?
maxiter DO
77 x1 := CAS . x1 ; x2 := CAS . x2 ; x3 := CAS . x3 ;
78 xa := xi ;
79 x2 := xa (2 ,1) ; x3 := xa (3 ,1) ;
80 gi1 := EVAL ( g1 ) ; x1 := gi1 ;
81 gi2 := EVAL ( g2 ) ; x2 := gi2 ;
82 gi3 := EVAL ( g3 ) ;
83 xi :=[[ gi1 ] ,[ gi2 ] ,[ gi3 ]];
84 er := ABS ( l2norm ( xi - xa ) ) ;
85 ea := xi - xa ;
86 ea (1 ,1) := ABS ( ea (1 ,1) / xi (1 ,1) ) *100; ea (2 ,1) := ABS ( ea (2 ,1) / xi (2 ,1) )
*100; ea (3 ,1) := ABS ( ea (3 ,1) / xi (3 ,1) ) *100;
87 xa := ROUND ( xa , red ) ;
88 xi := ROUND ( xi , red ) ;
89 er := ROUND ( er , red ) ;
90 ea := ROUND ( ea , red ) ;
91 Spreadsheet . Cell ( ii ,1) := ii -1; Spreadsheet . Cell ( ii ,2) := xa ;
Spreadsheet . Cell ( ii ,3) := xi ; Spreadsheet . Cell ( ii ,4) := ea ;
Spreadsheet . Cell ( ii ,5) := er ;
92 ii := ii +1;
93 END ;
94 res := xi ;
95 Spreadsheet . Cell ( ii ,1) :=" resultado "; Spreadsheet . Cell ( ii ,2) := res
;
96 STARTAPP (" Spreadsheet ") ;
97 res := xi ;
98 END ;
99
120 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,2) :=" xa ";
Spreadsheet . Cell (1 ,3) :=" xi "; Spreadsheet . Cell (1 ,4) :=" Exi %";
Spreadsheet . Cell (1 ,5) :=" Er ";
121 Spreadsheet . Cell (2 ,1) :=1; Spreadsheet . Cell (2 ,2) := xo ; Spreadsheet .
Cell (2 ,3) := xi ; Spreadsheet . Cell (2 ,4) := ea ; Spreadsheet . Cell
(2 ,5) := er ;
122 ii :=3;
123 WHILE ( ea (1 ,1) > Er OR ea (2 ,1) > Er OR ea (3 ,1) > Er OR ea (4 ,1) > Er )
AND ( ii -1) ? maxiter DO
124 x1 := CAS . x1 ; x2 := CAS . x2 ; x3 := CAS . x3 ; x4 := CAS . x4 ;
125 xa := xi ;
126 x2 := xa (2 ,1) ; x3 := xa (3 ,1) ; x4 := xa (4 ,1) ;
127 gi1 := EVAL ( g1 ) ; x1 := gi1 ;
128 gi2 := EVAL ( g2 ) ; x2 := gi2 ;
129 gi3 := EVAL ( g3 ) ; x3 := gi3 ;
130 gi4 := EVAL ( g4 ) ;
131 xi :=[[ gi1 ] ,[ gi2 ] ,[ gi3 ] ,[ gi4 ]];
132 er := ABS ( l2norm ( xi - xa ) ) ;
133 ea := xi - xa ;
134 ea (1 ,1) := ABS ( ea (1 ,1) / xi (1 ,1) ) *100; ea (2 ,1) := ABS ( ea (2 ,1) / xi (2 ,1) )
*100; ea (3 ,1) := ABS ( ea (3 ,1) / xi (3 ,1) ) *100; ea (4 ,1) := ABS ( ea (4 ,1) /
xi (4 ,1) ) *100;
135 xa := ROUND ( xa , red ) ;
136 xi := ROUND ( xi , red ) ;
137 er := ROUND ( er , red ) ;
138 ea := ROUND ( ea , red ) ;
139 Spreadsheet . Cell ( ii ,1) := ii -1; Spreadsheet . Cell ( ii ,2) := xa ;
Spreadsheet . Cell ( ii ,3) := xi ; Spreadsheet . Cell ( ii ,4) := ea ;
Spreadsheet . Cell ( ii ,5) := er ;
140 ii := ii +1;
141 END ;
142 res := xi ;
143 Spreadsheet . Cell ( ii ,1) :=" resultado "; Spreadsheet . Cell ( ii ,2) := res
;
144 STARTAPP (" Spreadsheet ") ;
145 res := xi ;
146 END ;
147
(2 ,4) * x4 + a (2 ,5) * x5 ) ;
153 g3 := b (3 ,1) / a (3 ,3) -(1/ a (3 ,3) ) *( a (3 ,1) * x1 + a (3 ,2) * x2 + a
(3 ,4) * x4 + a (3 ,5) * x5 ) ;
154 g4 := b (4 ,1) / a (4 ,4) -(1/ a (4 ,4) ) *( a (4 ,1) * x1 + a (4 ,2) * x2 + a (4 ,3) * x3
+ a (4 ,5) * x5 ) ;
155 g5 := b (5 ,1) / a (5 ,5) -(1/ a (5 ,5) ) *( a (5 ,1) * x1 + a (5 ,2) * x2 + a (5 ,3) * x3 + a
(5 ,4) * x4 );
156 x2 := xo2 ; x3 := xo3 ; x4 := xo4 ; x5 := xo5 ;
157 gi1 := EVAL ( g1 ) ; x1 := gi1 ;
158 gi2 := EVAL ( g2 ) ; x2 := gi2 ;
159 gi3 := EVAL ( g3 ) ; x3 := gi3 ;
160 gi4 := EVAL ( g4 ) ; x4 := gi4 ;
161 gi5 := EVAL ( g5 ) ;
162
199
253
254
295 xi :=[[ gi1 ] ,[ gi2 ] ,[ gi3 ] ,[ gi4 ] ,[ gi5 ] ,[ gi6 ] ,[ gi7 ]];
296 er := ABS ( l2norm ( xi - xa ) ) ;
297 ea := xi - xa ;
298 ea (1 ,1) := ABS ( ea (1 ,1) / xi (1 ,1) ) *100; ea (2 ,1) := ABS ( ea (2 ,1) / xi (2 ,1) )
*100; ea (3 ,1) := ABS ( ea (3 ,1) / xi (3 ,1) ) *100; ea (4 ,1) := ABS ( ea (4 ,1) /
xi (4 ,1) ) *100; ea (5 ,1) := ABS ( ea (5 ,1) / xi (5 ,1) ) *100; ea (6 ,1) := ABS (
ea (6 ,1) / xi (6 ,1) ) *100; ea (7 ,1) := ABS ( ea (7 ,1) / xi (7 ,1) ) *100;
299 xa := ROUND ( xa , red ) ;
300 xi := ROUND ( xi , red ) ;
301 er := ROUND ( er , red ) ;
302 ea := ROUND ( ea , red ) ;
303 Spreadsheet . Cell ( ii ,1) := ii -1; Spreadsheet . Cell ( ii ,2) := xa ;
Spreadsheet . Cell ( ii ,3) := xi ; Spreadsheet . Cell ( ii ,4) := ea ;
Spreadsheet . Cell ( ii ,5) := er ;
304 ii := ii +1;
305 END ;
306 res := xi ;
307 Spreadsheet . Cell ( ii ,1) :=" resultado "; Spreadsheet . Cell ( ii ,2) := res
;
308 STARTAPP (" Spreadsheet ") ;
309 res := xi ;
310 END ;
311
312
356 xi :=[[ gi1 ] ,[ gi2 ] ,[ gi3 ] ,[ gi4 ] ,[ gi5 ] ,[ gi6 ] ,[ gi7 ] ,[ gi8 ]];
357 er := ABS ( l2norm ( xi - xa ) ) ;
358 ea := xi - xa ;
359 ea (1 ,1) := ABS ( ea (1 ,1) / xi (1 ,1) ) *100; ea (2 ,1) := ABS ( ea (2 ,1) / xi (2 ,1) )
*100; ea (3 ,1) := ABS ( ea (3 ,1) / xi (3 ,1) ) *100; ea (4 ,1) := ABS ( ea (4 ,1) /
xi (4 ,1) ) *100; ea (5 ,1) := ABS ( ea (5 ,1) / xi (5 ,1) ) *100; ea (6 ,1) := ABS (
ea (6 ,1) / xi (6 ,1) ) *100; ea (7 ,1) := ABS ( ea (7 ,1) / xi (7 ,1) ) *100; ea
(8 ,1) := ABS ( ea (8 ,1) / xi (8 ,1) ) *100;
360 xa := ROUND ( xa , red ) ;
361 xi := ROUND ( xi , red ) ;
362 er := ROUND ( er , red ) ;
363 ea := ROUND ( ea , red ) ;
364 Spreadsheet . Cell ( ii ,1) := ii -1; Spreadsheet . Cell ( ii ,2) := xa ;
Spreadsheet . Cell ( ii ,3) := xi ; Spreadsheet . Cell ( ii ,4) := ea ;
Spreadsheet . Cell ( ii ,5) := er ;
365 ii := ii +1;
366 END ;
367 res := xi ;
368 Spreadsheet . Cell ( ii ,1) :=" resultado "; Spreadsheet . Cell ( ii ,2) := res
;
369 STARTAPP (" Spreadsheet ") ;
370 res := xi ;
371 END ;
372
373
374 END ;
375 Spreadsheet . Cell (1 ,6) :=" ecuaciones "; Spreadsheet . Cell (2 ,6) :={ g1 ,
g2 , g3 , g4 , g5 , g7 , g8 };
376 END ;
1 EXPORT Sor (a , b )
2 BEGIN
3 STARTAPP (" Function ") ;
4 LOCAL red ;
5 LOCAL xi1 , xi2 , xi3 , xi4 , xi5 , xi6 , xi7 , xi8 ;
6 LOCAL xa1 , xa2 , xa3 , xa4 , xa5 , xa6 , xa7 , xa8 ;
7 LOCAL g1 , g2 , g3 , g4 , g5 , g6 , g7 , g8 ;
8 LOCAL gi1 , gi2 , gi3 , gi4 , gi5 , gi6 , gi7 , gi8 ;
9 LOCAL xo , xi , xa ,x , ii , res ;
10 LOCAL x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 ; x1 := CAS . x1 ; x2 := CAS . x2 ; x3 := CAS . x3 ;
x4 := CAS . x4 ; x5 := CAS . x5 ; x6 := CAS . x6 ; x7 := CAS . x7 ; x8 := CAS . x8 ;
11 LOCAL n , Er , maxiter , er , ea ;
12 LOCAL w ;
13 LOCAL xo1 , xo2 , xo3 ; LOCAL xo4 , xo5 , xo6 , xo7 , xo8 , xo9 , xo10 ;
14 n := CAS . SIZE ( a ) ; n := n (1) ;
15 CASE
16 IF n ==2 THEN
17 INPUT ({ w , Er , maxiter , red }) ;
18 INPUT ({ xo2 }) ;
19
43 ea := xi - xa ;
44 ea (1 ,1) := ABS ( ea (1 ,1) / xi (1 ,1) ) *100; ea (2 ,1) := ABS ( ea (2 ,1) / xi (2 ,1) )
*100;
45 xa := ROUND ( xa , red ) ;
46 xi := ROUND ( xi , red ) ;
47 er := ROUND ( er , red ) ;
48 ea := ROUND ( ea , red ) ;
49 Spreadsheet . Cell ( ii ,1) := ii -1; Spreadsheet . Cell ( ii ,2) := xa ;
Spreadsheet . Cell ( ii ,3) := xi ; Spreadsheet . Cell ( ii ,4) := ea ;
Spreadsheet . Cell ( ii ,5) := er ;
50 ii := ii +1;
51 END ;
52 res := xi ;
53 Spreadsheet . Cell ( ii ,1) :=" resultado "; Spreadsheet . Cell ( ii ,2) := res
;
54 STARTAPP (" Spreadsheet ") ;
55 res := xi ;
56 END ;
57
58 IF n ==3 THEN
59 INPUT ({ w , Er , maxiter , red }) ;
60 INPUT ({ xo2 , xo3 }) ;
61 g1 := b (1 ,1) / a (1 ,1) -(1/ a (1 ,1) ) *( a (1 ,2) * x2 + a (1 ,3) * x3 ) ;
62 g2 := b (2 ,1) / a (2 ,2) -(1/ a (2 ,2) ) *( a (2 ,1) * x1 + a (2 ,3) * x3 ) ;
63 g3 := b (3 ,1) / a (3 ,3) -(1/ a (3 ,3) ) *( a (3 ,1) * x1 + a (3 ,2) * x2 ) ;
64 x2 := xo2 ; x3 := xo3 ;
65 gi1 := EVAL ( g1 ) ; x1 := gi1 ;
66 gi2 := EVAL ( g2 ) ; x2 := gi2 ;
67 gi3 := EVAL ( g3 ) ;
68 xi :=[[ gi1 ] ,[ gi2 ] ,[ gi3 ]];
69 er :=100;
70 ea :=[[100] ,[100] ,[100]];
71 xo := ROUND ( xo , red ) ;
72 xi := ROUND ( xi , red ) ;
73 er := ROUND ( er , red ) ;
74 ea := ROUND ( ea , red ) ;
75 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,2) :=" xa ";
Spreadsheet . Cell (1 ,3) :=" xi "; Spreadsheet . Cell (1 ,4) :=" Exi %";
Spreadsheet . Cell (1 ,5) :=" Er ";
76 Spreadsheet . Cell (2 ,1) :=1; Spreadsheet . Cell (2 ,2) := xo ; Spreadsheet .
Cell (2 ,3) := xi ; Spreadsheet . Cell (2 ,4) := ea ; Spreadsheet . Cell
(2 ,5) := er ;
77 ii :=3;
78 WHILE ( ea (1 ,1) > Er OR ea (2 ,1) > Er OR ea (3 ,1) > Er ) AND ( ii -1) ?
maxiter DO
79 x1 := CAS . x1 ; x2 := CAS . x2 ; x3 := CAS . x3 ;
80 xa := xi ;
81 x2 := xa (2 ,1) ; x3 := xa (3 ,1) ;
82 gi1 := EVAL ( g1 ) ; x1 := w * gi1 +(1 - w ) * xa (1 ,1) ; gi1 := x1 ;
83 gi2 := EVAL ( g2 ) ; x2 := w * gi2 +(1 - w ) * xa (2 ,1) ; gi2 := x2 ;
84 gi3 := EVAL ( g3 ) ; x3 := w * gi3 +(1 - w ) * xa (3 ,1) ; gi3 := x3 ;
85 xi :=[[ gi1 ] ,[ gi2 ] ,[ gi3 ]];
86 er := ABS ( l2norm ( xi - xa ) ) ;
87 ea := xi - xa ;
88 ea (1 ,1) := ABS ( ea (1 ,1) / xi (1 ,1) ) *100; ea (2 ,1) := ABS ( ea (2 ,1) / xi (2 ,1) )
*100; ea (3 ,1) := ABS ( ea (3 ,1) / xi (3 ,1) ) *100;
89 xa := ROUND ( xa , red ) ;
90 xi := ROUND ( xi , red ) ;
91 er := ROUND ( er , red ) ;
92 ea := ROUND ( ea , red ) ;
93 Spreadsheet . Cell ( ii ,1) := ii -1; Spreadsheet . Cell ( ii ,2) := xa ;
Spreadsheet . Cell ( ii ,3) := xi ; Spreadsheet . Cell ( ii ,4) := ea ;
Spreadsheet . Cell ( ii ,5) := er ;
94 ii := ii +1;
95 END ;
96 res := xi ;
97 Spreadsheet . Cell ( ii ,1) :=" resultado "; Spreadsheet . Cell ( ii ,2) := res
;
98 STARTAPP (" Spreadsheet ") ;
99 res := xi ;
100 END ;
101
148 END ;
149
201
248 END ;
249 res := xi ;
250 Spreadsheet . Cell ( ii ,1) :=" resultado "; Spreadsheet . Cell ( ii ,2) := res
;
251 STARTAPP (" Spreadsheet ") ;
252 res := xi ;
253 END ;
254
255
256
297 xi :=[[ gi1 ] ,[ gi2 ] ,[ gi3 ] ,[ gi4 ] ,[ gi5 ] ,[ gi6 ] ,[ gi7 ]];
298 er := ABS ( l2norm ( xi - xa ) ) ;
299 ea := xi - xa ;
300 ea (1 ,1) := ABS ( ea (1 ,1) / xi (1 ,1) ) *100; ea (2 ,1) := ABS ( ea (2 ,1) / xi (2 ,1) )
*100; ea (3 ,1) := ABS ( ea (3 ,1) / xi (3 ,1) ) *100; ea (4 ,1) := ABS ( ea (4 ,1) /
xi (4 ,1) ) *100; ea (5 ,1) := ABS ( ea (5 ,1) / xi (5 ,1) ) *100; ea (6 ,1) := ABS (
ea (6 ,1) / xi (6 ,1) ) *100; ea (7 ,1) := ABS ( ea (7 ,1) / xi (7 ,1) ) *100;
301 xa := ROUND ( xa , red ) ;
302 xi := ROUND ( xi , red ) ;
303 er := ROUND ( er , red ) ;
304 ea := ROUND ( ea , red ) ;
305 Spreadsheet . Cell ( ii ,1) := ii -1; Spreadsheet . Cell ( ii ,2) := xa ;
Spreadsheet . Cell ( ii ,3) := xi ; Spreadsheet . Cell ( ii ,4) := ea ;
Spreadsheet . Cell ( ii ,5) := er ;
306 ii := ii +1;
307 END ;
308 res := xi ;
309 Spreadsheet . Cell ( ii ,1) :=" resultado "; Spreadsheet . Cell ( ii ,2) := res
;
310 STARTAPP (" Spreadsheet ") ;
311 res := xi ;
312 END ;
313
314
358 xi :=[[ gi1 ] ,[ gi2 ] ,[ gi3 ] ,[ gi4 ] ,[ gi5 ] ,[ gi6 ] ,[ gi7 ] ,[ gi8 ]];
359 er := ABS ( l2norm ( xi - xa ) ) ;
360 ea := xi - xa ;
361 ea (1 ,1) := ABS ( ea (1 ,1) / xi (1 ,1) ) *100; ea (2 ,1) := ABS ( ea (2 ,1) / xi (2 ,1) )
*100; ea (3 ,1) := ABS ( ea (3 ,1) / xi (3 ,1) ) *100; ea (4 ,1) := ABS ( ea (4 ,1) /
xi (4 ,1) ) *100; ea (5 ,1) := ABS ( ea (5 ,1) / xi (5 ,1) ) *100; ea (6 ,1) := ABS (
ea (6 ,1) / xi (6 ,1) ) *100; ea (7 ,1) := ABS ( ea (7 ,1) / xi (7 ,1) ) *100; ea
(8 ,1) := ABS ( ea (8 ,1) / xi (8 ,1) ) *100;
362 xa := ROUND ( xa , red ) ;
363 xi := ROUND ( xi , red ) ;
364 er := ROUND ( er , red ) ;
365 ea := ROUND ( ea , red ) ;
366 Spreadsheet . Cell ( ii ,1) := ii -1; Spreadsheet . Cell ( ii ,2) := xa ;
Spreadsheet . Cell ( ii ,3) := xi ; Spreadsheet . Cell ( ii ,4) := ea ;
Spreadsheet . Cell ( ii ,5) := er ;
367 ii := ii +1;
368 END ;
369 res := xi ;
370 Spreadsheet . Cell ( ii ,1) :=" resultado "; Spreadsheet . Cell ( ii ,2) := res
;
371 STARTAPP (" Spreadsheet ") ;
372 res := xi ;
373 END ;
374
375 END ;
376 Spreadsheet . Cell (1 ,6) :=" ecuaciones "; Spreadsheet . Cell (2 ,6) :={ g1 ,
g2 , g3 , g4 , g5 , g7 , g8 };
377 END ;
1 EXPORT GradienteConjugado (a , b )
2 BEGIN
3 STARTAPP (" Spreadsheet ") ;
4 LOCAL red ;
5 LOCAL si , qi ,? i , xi ,n , xa , xo ;
6 LOCAL res , Er , Itemax , er , ii ;
7 LOCAL ?i ,? i ;
8 INPUT ({ Er , Itemax , red }) ;
9 n := CAS . SIZE ( a ) ; n := n (1) ;
10 xo := randMat ( n ) *0;
11 EDITMAT ( xo ," valores Iniciales ") ;
12 xo := TRN ( xo ) ;
13 xi := xo ;
14 si := b - a * xi ;
15 ? i := si ;
16 qi := a * si ;
17 ? i :=( TRN ( si ) * si ) /( TRN ( si ) * qi ) ;? i :=? i (1 ,1) ;
18 er :=100; ii :=3;
19
20 xi := ROUND ( xi , red ) ;
21 ? i := ROUND (? i , red ) ;
22 ? i := ROUND (? i , red ) ;
23 si := ROUND ( si , red ) ;
24 qi := ROUND ( qi , red ) ;
25 ? i := ROUND (? i , red ) ;
26 er := ROUND ( er , red ) ;
27
28 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,2) :=" xi ";
Spreadsheet . Cell (1 ,3) :="? i "; Spreadsheet . Cell (1 ,4) :="? i ";
Spreadsheet . Cell (1 ,5) :=" si "; Spreadsheet . Cell (1 ,6) :=" qi ";
Spreadsheet . Cell (1 ,7) :="? i "; Spreadsheet . Cell (1 ,8) :=" Er ";
29 Spreadsheet . Cell (2 ,1) :=1; Spreadsheet . Cell (2 ,2) := xi ;
Spreadsheet . Cell (2 ,3) := ? i ; Spreadsheet . Cell (2 ,4) := ? i ;
Spreadsheet . Cell (2 ,5) := si ; Spreadsheet . Cell (2 ,6) := qi ;
Spreadsheet . Cell (2 ,7) :=? i ; Spreadsheet . Cell (2 ,8) := er ;
30 ? i := si ;
31 WHILE er > Er AND ii ? Itemax DO
32 xa := xi ;
33 xi := xa +? i * si ;
34 ? i :=? i -? i * qi ;
35 ? i :=( TRN (? i ) * qi ) /( TRN ( si ) * qi ) ;? i :=? i (1 ,1) ;
36 si :=? i -? i * si ;
37 qi := a * si ;
42 xi := ROUND ( xi , red ) ;
43 ? i := ROUND (? i , red ) ;
44 ? i := ROUND (? i , red ) ;
45 si := ROUND ( si , red ) ;
46 qi := ROUND ( qi , red ) ;
47 ? i := ROUND (? i , red ) ;
48 er := ROUND ( er , red ) ;
49
1 EXPORT PrimeraFormadeJacoby ( ma )
2 BEGIN
3 LOCAL pi , ai ,n ,? , nu , de , ii , Itemax ;
4 LOCAL a ,r , deter ;
5 LOCAL p1 , p2 , p3 ,? pi ;
6 LOCAL tan ? , sin ? , cos ? ,?;
7 pi :={}; ai :={}; a := ma ;
8 n := CAS . SIZE ( a ) ; n := n (1) ;
9 Spreadsheet . Cell (1 ,1) :=" ciclo "; Spreadsheet . Cell (1 ,2) :=" i ";
Spreadsheet . Cell (1 ,3) :=" Ai "; Spreadsheet . Cell (1 ,4) :=" Pi ";
Spreadsheet . Cell (1 ,5) :="? Pi ";
10 CASE
11 IF n ==3 THEN
12 ai (1) := a ; ii :=1;
13 INPUT ({ r , Itemax } ,{" r := redondeocifras "}) ;
14 ? pi :=[[1 ,0 ,0] ,[0 ,1 ,0] ,[0 ,0 ,1]];
15 FOR K FROM 1 TO Itemax DO
16 // paso1 i :=1 j :=2
17 I :=1; J :=2;
18 ?:=( a (I , I ) -a (J , J ) ) /(2* a (I , J ) ) ;
19 tan ?:= -?+ SIGN (?) *?(?^2+1) ;
20 cos ?:=(1) /(?( tan ?^2+1) ) ;
21 sin ?:= tan ?* cos ?;
22 IF ?==0 THEN
23 cos ?:=1/?2;
24 sin ?:=1/?2;
25 END ;
26 pi ( ii ) :=[[ cos ? , - sin ? ,0] ,[ sin ? , cos ? ,0] ,[0 ,0 ,1]]; pi ( ii ) := ROUND ( pi
( ii ) ,r ) ;
27 ai ( ii +1) := TRN ( pi ( ii ) ) * ai ( ii ) * pi ( ii ) ; ai ( ii +1) := ROUND ( ai ( ii +1) ,r )
;
28 a := ai ( ii +1) ;
29 ? pi :=? pi * pi ( ii ) ;? pi := ROUND (? pi , r ) ; Spreadsheet . Cell ( ii +1 ,5) :=? pi
;
30 // paso2 i :=1 j :=3
31 I :=1; J :=3;
32 ?:=( a (I , I ) -a (J , J ) ) /(2* a (I , J ) ) ;
33 tan ?:= -?+ SIGN (?) *?(?^2+1) ;
34 cos ?:=(1) /(?( tan ?^2+1) ) ;
35 sin ?:= tan ?* cos ?;
36 IF ?==0 THEN
37 cos ?:=1/?2;
38 sin ?:=1/?2;
39 END ;
40 pi ( ii +1) :=[[ cos ? ,0 , - sin ?] ,[0 ,1 ,0] ,[ sin ? ,0 , cos ?]]; pi ( ii +1) :=
ROUND ( pi ( ii +1) ,r ) ;
41 ai ( ii +2) := TRN ( pi ( ii +1) ) * ai ( ii +1) * pi ( ii +1) ; ai ( ii +2) := ROUND ( ai ( ii
+2) ,r ) ;
42 a := ai ( ii +2) ;
43 ? pi :=? pi * pi ( ii +1) ;? pi := ROUND (? pi , r ) ; Spreadsheet . Cell ( ii +2 ,5) :=?
pi ;
44 // paso3 i :=2 j :=3
45 I :=2; J :=3;
46 ?:=( a (I , I ) -a (J , J ) ) /(2* a (I , J ) ) ;
47 tan ?:= -?+ SIGN (?) *?(?^2+1) ;
48 cos ?:=(1) /(?( tan ?^2+1) ) ;
49 sin ?:= tan ?* cos ?;
50 IF ?==0 THEN
51 cos ?:=1/?2;
52 sin ?:=1/?2;
53 END ;
54 pi ( ii +2) :=[[1 ,0 ,0] ,[0 , cos ? , - sin ?] ,[0 , sin ? , cos ?]]; pi ( ii +2) :=
ROUND ( pi ( ii +2) ,r ) ;
55 ai ( ii +3) := TRN ( pi ( ii +2) ) * ai ( ii +2) * pi ( ii +2) ; ai ( ii +3) := ROUND ( ai ( ii
+3) ,r ) ;
56 a := ai ( ii +3) ;
57 ? pi :=? pi * pi ( ii +2) ;? pi := ROUND (? pi , r ) ; Spreadsheet . Cell ( ii +3 ,5) :=?
pi ;
58
45 a := ai ( ii +5) ;
46 ? pi :=? pi * pi ( ii +4) ;? pi := ROUND (? pi , r ) ; Spreadsheet . Cell ( ii +5 ,5) :=?
pi ;
47 // paso6 i :=2 j :=4
48 I :=2; J :=4;
49 ?:=( a (I , I ) -a (J , J ) ) /(2* a (I , J ) ) ;
50 tan ?:= -?+ SIGN (?) *?(?^2+1) ;
51 cos ?:=(1) /(?( tan ?^2+1) ) ;
52 sin ?:= tan ?* cos ?;
53 IF ?==0 THEN
54 cos ?:=1/?2;
55 sin ?:=1/?2;
56 END ;
57 pi ( ii +5) :=[[1 ,0 ,0 ,0 ,0] ,[0 , cos ? ,0 , - sin ? ,0] ,[0 ,0 ,1 ,0 ,0] ,[0 , sin
? ,0 , cos ? ,0] ,[0 ,0 ,0 ,0 ,1]]; pi ( ii +5) := ROUND ( pi ( ii +5) ,r ) ;
58 ai ( ii +6) := TRN ( pi ( ii +5) ) * ai ( ii +5) * pi ( ii +5) ; ai ( ii +6) := ROUND ( ai ( ii
+6) ,r ) ;
59 a := ai ( ii +6) ;
60 ? pi :=? pi * pi ( ii +5) ;? pi := ROUND (? pi , r ) ; Spreadsheet . Cell ( ii +6 ,5) :=?
pi ;
61
116 pi ( ii +9) :=[[1 ,0 ,0 ,0 ,0] ,[0 ,1 ,0 ,0 ,0] ,[0 ,0 ,1 ,0 ,0] ,[0 ,0 ,0 , cos ? , - sin
?] ,[0 ,0 ,0 , sin ? , cos ?]]; pi ( ii +9) := ROUND ( pi ( ii +9) ,r ) ;
121
122
138 END ;
139
+2) ,r ) ;
173 a := ai ( ii +2) ;
174 ? pi :=? pi * pi ( ii +1) ;? pi := ROUND (? pi , r ) ; Spreadsheet . Cell ( ii +2 ,5) :=?
pi ;
175 // paso3 i :=1 j :=4
176 I :=1; J :=4;
177 ?:=( a (I , I ) -a (J , J ) ) /(2* a (I , J ) ) ;
178 tan ?:= -?+ SIGN (?) *?(?^2+1) ;
179 cos ?:=(1) /(?( tan ?^2+1) ) ;
180 sin ?:= tan ?* cos ?;
181 IF ?==0 THEN
182 cos ?:=1/?2;
183 sin ?:=1/?2;
184 END ;
185 pi ( ii +2) :=[[ cos ? ,0 ,0 , - sin ? ,0 ,0] ,[0 ,1 ,0 ,0 ,0 ,0] ,[0 ,0 ,1 ,0 ,0 ,0] ,[
sin ? ,0 ,0 , cos ? ,0 ,0] ,[0 ,0 ,0 ,0 ,1 ,0] ,[0 ,0 ,0 ,0 ,0 ,1]]; pi ( ii +2) :=
ROUND ( pi ( ii +2) ,r ) ;
186 ai ( ii +3) := TRN ( pi ( ii +2) ) * ai ( ii +2) * pi ( ii +2) ; ai ( ii +3) := ROUND ( ai ( ii
+3) ,r ) ;
187 a := ai ( ii +3) ;
188 ? pi :=? pi * pi ( ii +2) ;? pi := ROUND (? pi , r ) ; Spreadsheet . Cell ( ii +3 ,5) :=?
pi ;
189 // paso4 i :=1 j :=5
190 I :=1; J :=5;
191 ?:=( a (I , I ) -a (J , J ) ) /(2* a (I , J ) ) ;
192 tan ?:= -?+ SIGN (?) *?(?^2+1) ;
193 cos ?:=(1) /(?( tan ?^2+1) ) ;
194 sin ?:= tan ?* cos ?;
195 IF ?==0 THEN
196 cos ?:=1/?2;
197 sin ?:=1/?2;
198 END ;
199 pi ( ii +3) :=[[ cos ? ,0 ,0 ,0 , - sin
? ,0] ,[0 ,1 ,0 ,0 ,0 ,0] ,[0 ,0 ,1 ,0 ,0 ,0] ,[0 ,0 ,0 ,1 ,0 ,0] ,[ sin ? ,0 ,0 ,0 ,
cos ? ,0] ,[0 ,0 ,0 ,0 ,0 ,1]]; pi ( ii +3) := ROUND ( pi ( ii +3) ,r ) ;
200 ai ( ii +4) := TRN ( pi ( ii +3) ) * ai ( ii +3) * pi ( ii +3) ; ai ( ii +4) := ROUND ( ai ( ii
+4) ,r ) ;
201 a := ai ( ii +4) ;
202 ? pi :=? pi * pi ( ii +3) ;? pi := ROUND (? pi , r ) ; Spreadsheet . Cell ( ii +4 ,5) :=?
pi ;
203 // paso5 i :=1 j :=6
204 I :=1; J :=6;
205 ?:=( a (I , I ) -a (J , J ) ) /(2* a (I , J ) ) ;
206 tan ?:= -?+ SIGN (?) *?(?^2+1) ;
pi ;
276 // paso10 i :=3 j :=4
277 I :=3; J :=4;
278 ?:=( a (I , I ) -a (J , J ) ) /(2* a (I , J ) ) ;
279 tan ?:= -?+ SIGN (?) *?(?^2+1) ;
280 cos ?:=(1) /(?( tan ?^2+1) ) ;
281 sin ?:= tan ?* cos ?;
282 IF ?==0 THEN
283 cos ?:=1/?2;
284 sin ?:=1/?2;
285 END ;
286 pi ( ii +9) :=[[1 ,0 ,0 ,0 ,0 ,0] ,[0 ,1 ,0 ,0 ,0 ,0] ,[0 ,0 , cos ? , - sin
? ,0 ,0] ,[0 ,0 , sin ? , cos ? ,0 ,0] ,[0 ,0 ,0 ,0 ,1 ,0] ,[0 ,0 ,0 ,0 ,0 ,1]]; pi (
ii +9) := ROUND ( pi ( ii +9) ,r ) ;
287 ai ( ii +10) := TRN ( pi ( ii +9) ) * ai ( ii +9) * pi ( ii +9) ; ai ( ii +10) := ROUND ( ai (
ii +10) ,r ) ;
288 a := ai ( ii +10) ;
289
360 pi ( ii +14)
:=[[1 ,0 ,0 ,0 ,0 ,0] ,[0 ,1 ,0 ,0 ,0 ,0] ,[0 ,0 ,1 ,0 ,0 ,0] ,[0 ,0 ,0 ,1 ,0 ,0] ,[0 ,0 ,0 ,0 ,
cos ? , - sin ?] ,[0 ,0 ,0 ,0 , sin ? , cos ?]]; pi ( ii +14) := ROUND ( pi ( ii +14) ,
r);
361 ai ( ii +15) := TRN ( pi ( ii +14) ) * ai ( ii +14) * pi ( ii +14) ; ai ( ii +15) := ROUND (
ai ( ii +15) ,r ) ;
362 a := ai ( ii +15) ;
363
386 END ;
387
388
389
390 END ;
391 END ;
1 EXPORT Lagrange ( xy )
2 BEGIN
3 LOCAL n ,x , pi , px , li ;
4 LOCAL s ,t , ti , si ;
5
22 END ;
23 Spreadsheet . Cell ( I +1 ,1) :=" p ( x ) ";
24 Spreadsheet . Cell ( I +2 ,1) := CAS . expand ( px ) ;
25 Spreadsheet . Cell (1 ,1) :=" li ";
26
27 RETURN px ;
28 END ;
1 EXPORT InterNewton ( m )
2 BEGIN
3
4 LOCAL n ,x ,s , si , k ; x := CAS . x ;
5 LOCAL fi , li , px ; li :={};
6 n := CAS . SIZE ( m ) ; n := n (1) ;
7 s :=1; si :=0;
8 FOR I FROM 1 TO n DO
9 s :=( x - m (I ,1) ) * s ;
10 li ( I ) := s ;
11 END ;
12 px := m (1 ,2) ;
13 FOR I FROM 1 TO n -1 DO
14 px := li ( I ) * m ( I +1 , I +2) + px ;
15 END ;
16 px ;
17
18 END ;
1 EXPORT InterBidimencional ( ma )
2 BEGIN
3 LOCAL n ,f ,c ,m , li , la ,v , pit ;
4 m := ma ; pit :={};
5 m := DELROW (m ,1) ;
6 n := CAS . SIZE ( m ) ;
7 f := n (1) ; c := n (2) ;
8 li := randMat (f ,2) *0;
9
10 FOR K FROM 2 TO c DO
11 FOR I FROM 1 TO f DO
12 li (I ,1) := m (I ,1) ;
13 li (I ,2) := m (I , K ) ;
14 END ;
15 pit (K -1) :={ ma (1 , K ) , Lagrangesimple ( li , K ) };
16 END ;
17 END ;
8.6 INTEGRACIÓN
1 EXPORT CuadGausLegen ( f )
2 BEGIN
3 LOCAL xw , xi , x ; x := CAS . x ;
4 LOCAL fi , wifi ,s , ii ;
5 LOCAL a ,b ,n , inte ;
6 LOCAL ee ; ee := CAS . ee ; ee :=2.718281828459046;
7 INPUT ({ a ,b , n } ,{" n = nodos de legendre "}) ;
8
9 xw := gaussLegendre ( n ) ;
10 s :=0;
11
12 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,2) :="? i ";
Spreadsheet . Cell (1 ,3) :=" xi "; Spreadsheet . Cell (1 ,4) :=" fxi ";
Spreadsheet . Cell (1 ,5) :=" wi "; Spreadsheet . Cell (1 ,6) :=" wi * fi ";
Spreadsheet . Cell (1 ,7) :="?"; Spreadsheet . Cell (1 ,8) :=" w ";
13 ii :=2;
14 FOR I FROM 1 TO n DO
15 x := CAS . x ;
16 xi :=(1/2) *( b - a ) * xw (I ,1) +(1/2) *( b + a ) ;
17 x := xi ; fi := EVAL ( f ) ;
18 wifi := xw (I ,2) * fi ;
19 s := s + wifi ;
20 Spreadsheet . Cell ( ii ,1) := ii -1; Spreadsheet . Cell ( ii ,2) := xw (I ,1) ;
Spreadsheet . Cell ( ii ,3) := xi ; Spreadsheet . Cell ( ii ,4) := fi ;
Spreadsheet . Cell ( ii ,5) := xw (I ,2) ; Spreadsheet . Cell ( ii ,6) := wifi
; Spreadsheet . Cell ( ii ,7) := xw (I ,1) ; Spreadsheet . Cell ( ii ,8) := xw (
I ,2) ;
21 ii := ii +1;
22 END ;
23 Spreadsheet . Cell ( ii ,6) := s ;
24 inte :=(1/2) *( b - a ) * s ;
25
26 Spreadsheet . Cell ( ii ,1) :=" Integral "; Spreadsheet . Cell ( ii ,2) := inte
;
27
28 END ;
1 EXPORT Romberg ( f )
2 BEGIN
3 LOCAL a ,b ,n ,k , Ii , jj ;
4 LOCAL int , Ik ;
5 INPUT ({ a ,b , k }) ;
6 int :={};
7 FOR jj FROM 0 TO k DO
8 Ii := Trapecios (f ,a ,b ,2^ jj ) ;
9 Spreadsheet . Cell ( jj +2 ,1) := jj ; Spreadsheet . Cell ( jj +2 ,2) :=2^ jj ;
Spreadsheet . Cell ( jj +2 ,3) := Ii ;
10 int ( jj +1) := Ii ;
11 END ;
12
13 FOR J FROM 1 TO k DO
14 FOR I FROM 0 TO k - J DO
15 Ik :=(((4^ J ) * int ( I +2) ) - int ( I +1) ) /((4^ J ) -1) ;
16
17 int (I - J +2) := Ik ;
18 Spreadsheet . Cell ( I + J +2 , J +3) := Ik ;
19 END ;
20 END ;
21
22 END ;
1 EXPORT RombergMatriz ( m )
2 BEGIN
3 LOCAL n , nn , ti ,a ,b , fa , fb , hi ;
4 LOCAL fi , li , lli ,s , bi ;
5 LOCAL int , Ik ;
6
14 s :=0;
15 FOR J FROM 1 TO nn DO
26 int := ti ;
27 FOR I FROM 1 TO nn +1 DO
28 hi ( J ) :=( b - a ) /(2^( I -1) ) ;
29 Spreadsheet . Cell ( I +1 ,1) := I -1;
30 Spreadsheet . Cell ( I +1 ,2) := hi ( J ) ;
31 Spreadsheet . Cell ( I +1 ,4) := ti ( I ) ;
32 END ;
33
34
35
36 FOR J FROM 1 TO nn DO
37 FOR I FROM 0 TO nn - J DO
38 Ik :=(((4^ J ) * int ( I +2) ) - int ( I +1) ) /((4^ J ) -1) ;
39 int (I - J +2) := Ik ;
40 Spreadsheet . Cell ( I + J +2 , J +4) := Ik ;
41 END ;
42 END ;
43
44
45 Spreadsheet . Cell (1 ,1) :=" j "; Spreadsheet . Cell (1 ,2) :=" hj ";
Spreadsheet . Cell (1 ,3) :=" hj *? f ( a + hj *( i ) ) "; Spreadsheet . Cell
(1 ,4) :=" T1 , j "; Spreadsheet . Cell (1 ,5) :=" T2 , j "; Spreadsheet . Cell
(1 ,6) :=" T3 , j "; Spreadsheet . Cell (1 ,7) :=" T4 , j ";
46 RETURN ti ;
47
48
49 END ;
8.7 EDO
1 EXPORT Euler ( f )
2 BEGIN
3 LOCAL n ,h , xi , yi , xo , yo ;
4 LOCAL fxiyi , xi1 , yi1 ;
5 LOCAL x , y ; x := CAS . x ; y := CAS . y ;
6 LOCAL ee ; ee := CAS . ee ; ee :=2.718281828459046;
7 INPUT ({ xo , yo ,n , h } ,{" h = Paso "}) ;
8 xi := xo ; yi := yo ;
9 Spreadsheet . Cell (1 ,1) :=" x ( i +1) "; Spreadsheet . Cell (1 ,2) :=" y ( i +1)
";
10
11 FOR I FROM 1 TO n DO
12 x := CAS . x ; y := CAS . y ;
13 x := xi ; fxiyi := EVAL ( f ) ; y := yi ; fxiyi := EVAL ( fxiyi ) ;
14 xi1 := xi + h ;
15 yi1 := yi + h * fxiyi ;
16 Spreadsheet . Cell ( I +1 ,1) := xi1 ; Spreadsheet . Cell ( I +1 ,2) := yi1 ;
17 xi := xi1 ;
18 yi := yi1 ;
19 END ;
20 END ;
1 EXPORT EulerMejorado ( f )
2 BEGIN
3 LOCAL n ,h , xi , yi , zi , xo , yo ;
4 LOCAL fxiyi , xi1 , yi1 , zi1 ;
5 LOCAL x ,y , fxi1zi1 ; x := CAS . x ; y := CAS . y ;
6 LOCAL ee ; ee := CAS . ee ; ee :=2.718281828459046;
7 INPUT ({ xo , yo ,n , h } ,{" h = Paso "}) ;
8 xi := xo ; yi := yo ;
9 Spreadsheet . Cell (1 ,1) :=" x ( i +1) "; Spreadsheet . Cell (1 ,2) :=" y ( i +1)
predictor "; Spreadsheet . Cell (1 ,3) :=" y ( i +1) corrector ";
10 FOR I FROM 1 TO n DO
11 x := CAS . x ; y := CAS . y ;
12 x := xi ; fxiyi := EVAL ( f ) ; y := yi ; fxiyi := EVAL ( fxiyi ) ;
13 xi1 := xi + h ;
14 zi1 := yi + h * fxiyi ;
15 x := xi1 ; y := zi1 ; fxi1zi1 := EVAL ( f ) ;
16 yi1 := yi +( h /2) *( fxiyi + fxi1zi1 ) ;
1 EXPORT RungeKutta ( f )
2 BEGIN
3 LOCAL ee ; ee := CAS . ee ; ee :=2.718281828459046;
4 LOCAL n ,h , xi , yi , xo , yo , orden ;
5 LOCAL k1 , k2 , k3 , k4 ;
6 LOCAL x , y ; x := CAS . x ; y := CAS . y ;
7 LOCAL fxiyi , xi , yi , xi1 , yi1 ;
8
12 CASE
13 IF orden ==2 THEN
14 FOR I FROM 1 TO n DO
15 x := CAS . x ; y := CAS . y ;
16 x := xi ; k1 := EVAL ( f ) ; y := yi ; k1 := EVAL ( k1 ) ;
17 xi := xi + h ;
18 x := CAS . x ; y := CAS . y ;
19 x := xi ; k2 := EVAL ( f ) ; y := yi + h * k1 ; k2 := EVAL ( k2 ) ;
20 yi := yi +( h /2) *( k1 + k2 ) ;
21 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,2) :=" xi ";
Spreadsheet . Cell (1 ,3) :=" k1 "; Spreadsheet . Cell (1 ,4) :=" k2 ";
Spreadsheet . Cell (1 ,5) :=" yi ";
22 Spreadsheet . Cell ( I +1 ,1) := I ; Spreadsheet . Cell ( I +1 ,2) := xi ;
Spreadsheet . Cell ( I +1 ,3) := k1 ; Spreadsheet . Cell ( I +1 ,4) := k2 ;
Spreadsheet . Cell ( I +1 ,5) := yi ;
23 END ;
24 END ;
25
35 yi := yi +( h /6) *( k1 +4* k2 + k3 ) ;
36 xi := xi + h ;
37 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,2) :=" xi ";
Spreadsheet . Cell (1 ,3) :=" k1 "; Spreadsheet . Cell (1 ,4) :=" k2 ";
Spreadsheet . Cell (1 ,5) :=" k3 "; Spreadsheet . Cell (1 ,6) := yi ;
38 Spreadsheet . Cell ( I +1 ,1) := I ; Spreadsheet . Cell ( I +1 ,2) := xi ;
Spreadsheet . Cell ( I +1 ,3) := k1 ; Spreadsheet . Cell ( I +1 ,4) := k2 ;
Spreadsheet . Cell ( I +1 ,5) := k3 ; Spreadsheet . Cell ( I +1 ,6) := yi ;
39 END ;
40 END ;
41
58 END ;
59 END ;
60
61 END ;
62 END ;
1 EXPORT Predictor ( f )
2 BEGIN
3 LOCAL ee ; ee := CAS . ee ; ee :=2.718281828459046;
4 LOCAL rungekuta , euler1 , adans2 , adans4 ;
5 INPUT ({ rungekuta , euler1 , adans2 , adans4 }) ;
6 CASE
7
27 END ;
28 END ;
29
36 xi := xo ; yi := yo ;
37 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,2) :=" x ( i +1) ";
Spreadsheet . Cell (1 ,3) :=" y ( i +1) ";
38 Spreadsheet . Cell (2 ,1) :=0; Spreadsheet . Cell (2 ,2) := xo ; Spreadsheet .
Cell (2 ,3) := yo ;
39 FOR I FROM 1 TO n DO
40 x := CAS . x ; y := CAS . y ;
41 x := xi ; fxiyi := EVAL ( f ) ; y := yi ; fxiyi := EVAL ( fxiyi ) ;
42 xi1 := xi + h ;
43 yi1 := yi + h * fxiyi ;
44 Spreadsheet . Cell ( I +2 ,1) := I ; Spreadsheet . Cell ( I +2 ,2) := xi1 ;
Spreadsheet . Cell ( I +2 ,3) := yi1 ;
45 xi := xi1 ;
46 yi := yi1 ;
47 END ;
48 END ;
49
73
74 END ;
75 END ;
76
77
104 xi := xii ;
105 yi := yii ;
106 xii := xiii ;
107 yii := yiii ;
113 END ;
114 END ;
115
116
117 END ;
118 END ;
119
120
121
122
123
135
136
137
138 CASE
139
140
152 END ;
153 END ;
154
155
156
157
172 END ;
173 END ;
174
175
193 END ;
194 END ;
195
196
197 END ;
198 END ;
1 EXPORT pivoteoAnm (a ,n , m )
2 BEGIN
3 LOCAL B ,C ,D , E ;
4 B := a (n , m ) ;
5 C := CAS . SCALE (a ,1/ B , n ) ;
6 D := CAS . pivot (C ,n , m ) ;
7 D := CAS . expand ( D ) ;
8 D := CAS . simplify ( D ) ;
9 RETURN D ;
10 END ;
11
12 EXPORT filapivotAcm (a , c )
13 BEGIN
14 LOCAL n , P ;
15 n := CAS . SIZE ( a ) ; n := n (1) ;
16 P := randMat (n ,1) *0;
17 FOR I FROM 1 TO n DO
18 IF a (I , c ) ==0 THEN P (I ,1) :=0
19 ELSE
20 P (I ,1) := a (I ,1) / a (I , c ) ;
21 END ;
22 END ;
23 P;
24 END ;
2 EXPORT Baistor ( f )
3 BEGIN
4 LOCAL po , qo ,x , p ; x := CAS . x ;
5 LOCAL q1 , r1 , qx1 , r2 , r3 ,? p ,? q , res ;
6 LOCAL a11 , a12 , a21 , a22 , b1 , b2 , ra , rb ;
7 LOCAL ma , Ea , Eb , pa , qa , ii , resul ;
8 LOCAL ee ; ee := CAS . ee ; ee :=2.718281828459046;
9 INPUT ({ po , qo }) ; Spreadsheet . Cell (1 ,2) :=1; Spreadsheet . Cell (2 ,2) :=
po ; Spreadsheet . Cell (3 ,2) := qo ;
10 p := x ^2+ po * x + qo ;
11 q1 := CAS . quo (f ,p , x ) ; r1 := CAS . rem (f ,p , x ) ; qx1 := q1 * x ;
12 r2 := CAS . rem ( qx1 , p ) ; r3 := CAS . rem ( q1 , p ) ;
13
27 po := po +? p ; qo := qo +? q ;
28 Ea :=100; Eb :=100; ii :=4;
29 Spreadsheet . Cell (1 ,1) :=" i "; Spreadsheet . Cell (1 ,3) :=2;
30 Spreadsheet . Cell (2 ,1) :=" po "; Spreadsheet . Cell (2 ,3) := po ;
31 Spreadsheet . Cell (3 ,1) :=" qo "; Spreadsheet . Cell (3 ,3) := qo ;
32
39
48 Ea := ABS ( po - pa ) ; Eb := ABS ( qo - qa ) ;
49 Spreadsheet . Cell (1 , ii ) := ii -1;
50 Spreadsheet . Cell (2 , ii ) := po ;
51 Spreadsheet . Cell (3 , ii ) := qo ;
52 ii := ii +1;
53 END ;
54
55 END ;
1 XPORT Evaluar ( ma , xo )
2 BEGIN
3 LOCAL x ,n , res ; x := CAS . x ;
4 n := CAS . SIZE ( xo ) ;
5 res :={};
6 CASE
7 IF n ==1 THEN
8 x := xo (1) ;
9 EVAL ( ma ) ;
10 res (1) := EVAL ( ma ) ;
11 END ;
12 IF n ==2 THEN
13 x := xo (1) ;
14 EVAL ( ma ) ;
15 res (1) := EVAL ( ma ) ;
16 x := xo (2) ;
17 EVAL ( ma ) ;
18 res (2) := EVAL ( ma ) ;
19 END ;
20 IF n ==3 THEN
21 x := xo (1) ;
22 EVAL ( ma ) ;
23 res (1) := EVAL ( ma ) ;
24 x := xo (2) ;
25 EVAL ( ma ) ;
26 res (2) := EVAL ( ma ) ;
27 x := xo (3) ;
28 EVAL ( ma ) ;
29 res (3) := EVAL ( ma ) ;
30 END ;
31 IF n ==4 THEN
32 x := xo (1) ;
33 EVAL ( ma ) ;
34 res (1) := EVAL ( ma ) ;
35 x := xo (2) ;
36 EVAL ( ma ) ;
37 res (2) := EVAL ( ma ) ;
38 x := xo (3) ;
39 EVAL ( ma ) ;
40 res (3) := EVAL ( ma ) ;
41 x := xo (4) ;
42 EVAL ( ma ) ;
43 res (4) := EVAL ( ma ) ;
44 END ;
45 IF n ==5 THEN
46 x := xo (1) ;
47 EVAL ( ma ) ;
48 res (1) := EVAL ( ma ) ;
49 x := xo (2) ;
50 EVAL ( ma ) ;
51 res (2) := EVAL ( ma ) ;
52 x := xo (3) ;
53 EVAL ( ma ) ;
54 res (3) := EVAL ( ma ) ;
55 x := xo (4) ;
56 EVAL ( ma ) ;
57 res (4) := EVAL ( ma ) ;
58 x := xo (5) ;
59 EVAL ( ma ) ;
60 res (5) := EVAL ( ma ) ;
61 END ;
62 IF n ==6 THEN
63 x := xo (1) ;
64 EVAL ( ma ) ;
65 res (1) := EVAL ( ma ) ;
66 x := xo (2) ;
67 EVAL ( ma ) ;
68 res (2) := EVAL ( ma ) ;
69 x := xo (3) ;
70 EVAL ( ma ) ;
71 res (3) := EVAL ( ma ) ;
72 x := xo (4) ;
73 EVAL ( ma ) ;
74 res (4) := EVAL ( ma ) ;
75 x := xo (5) ;
76 EVAL ( ma ) ;
77 res (5) := EVAL ( ma ) ;
78 x := xo (6) ;
79 EVAL ( ma ) ;
80 res (6) := EVAL ( ma ) ;
81 END ;
82
83 END ;
84 END ;
1 EXPORT gaussLegendre ( n )
2 BEGIN
3 LOCAL x ,w ,m ,z , z1 ;
4 LOCAL p1 , p2 , p3 , pp ;
5 LOCAL z , z1 , z2 , res ;
6 x := randMat ( n ) *0;
7 w := x ;
8 m :=( n +1) /2;
9 FOR I FROM 1 TO m DO
10 z := COS ((?*( I -0.25) ) /( n +0.5) ) ;
11 z1 := z +1;
12 WHILE ABS (z - z1 ) >2*10^ -12 DO
13 p1 :=1;
14 p2 :=0;
15 FOR J FROM 1 TO n DO
16 p3 := p2 ;
17 p2 := p1 ;
18 p1 :=((2* J -1) * z * p2 -( J -1) * p3 ) / J ; // El polinomial . Legendre
19 END ;
20 pp := n *( z * p1 - p2 ) /( z ^2 -1) ; // La L . P .
Derivada .
21 z1 := z ;
22 z := z1 - p1 / pp ;
23 END ;
24
25 x ( I ) := - z ; // Construye las
abscissas .
26 x ( n +1 - I ) := z ;
27 w ( I ) :=2/((1 - z ^2) *( pp ^2) ) ; // Construye los
pesos .
28 w ( n +1 - I ) := w ( I ) ;
29
30 END ;
31
32
33
36 FOR I FROM 1 TO n DO
37 res (I ,1) := x ( I ) ;
38 res (I ,2) := w ( I ) ;
39 END ;
40 END ;
1 EXPORT Lagrangesimple ( xy , c )
2 BEGIN
3 LOCAL n ,x , pi , px , li ;
4 LOCAL s ,t , ti , si ;
5 n := CAS . SIZE ( xy ) ; n := n (1) ;
6 t :=1; s :=1; px :=0;
7 x := CAS . x ;
8 FOR I FROM 1 TO n DO
9 FOR J FROM 1 TO n DO
10 IF I ? J THEN
11 x := CAS . x ;
12 s :=( x - xy (J ,1) ) * s ;
13 t :=( xy (I ,1) - xy (J ,1) ) * t ;
14 END ;
15 END ;
16 px := xy (I ,2) *( s / t ) + px ;
17 Spreadsheet . Cell ( I +1 , c ) := s / t ;
18 s :=1;
19 t :=1;
20 END ;
21 Spreadsheet . Cell ( I +1 , c ) :=" p ( x ) ";
22 Spreadsheet . Cell ( I +2 , c ) := CAS . expand ( px ) ;
23 Spreadsheet . Cell (1 , c ) :=" li ";
24
47 END ;
48 Spreadsheet . Cell ( I +1 ,1) :=" p ( x ) ";
49 Spreadsheet . Cell ( I +2 ,1) := CAS . expand ( px ) ;
50 Spreadsheet . Cell (1 ,1) :=" li ";
51
52 RETURN px ;
53 END ;
1 EXPORT MandarMatrizExcel ( a )
2 BEGIN
3 LOCAL f ,c , n ;
4 n := CAS . SIZE ( a ) ; f := n (1) ; c := n (2) ;
5
7 FOR I FROM 1 TO c DO
8 FOR J FROM 1 TO f DO
9 Spreadsheet . Cell (I , J ) := a (I , J ) ;
10 END ;
11 END ;
12
13 END ;
1 EXPORT MatrizAvector ( ma )
2 BEGIN
3 LOCAL n , x ;
4 n := CAS . SIZE ( ma ) ;
5 x :={};
6 FOR I FROM 1 TO n DO
7 x ( I ) := ma ( I ) ;
8 END ;
9 RETURN x ;
10 END ;
1 EXPORT SegundasComp ( ve )
2 BEGIN
3 LOCAL se , re , n ;
4 n := CAS . SIZE ( ve ) ; n := n (1) ;
5 se :={};
6 FOR I FROM 1 TO n DO
7 re := ve ( I ) ;
8 se ( I ) := re (2) ;
9 END ;
10
11 RETURN se ;
12 END ;
13 EXPORT MandarExcel ( a )
14 BEGIN
15 LOCAL columna ;
16 INPUT ( columna ) ;
17 Spreadsheet . Cell (1 , columna ) := a ;
18
19 END ;
1 EXPORT Trapecios (f ,a ,b , n )
2 BEGIN
3 LOCAL h , xi , x ; x := CAS . x ;
4 LOCAL fa , fb ,s , fxi , res ;
5 h :=( b - a ) / n ;
6 x := a ; fa := EVAL ( f ) ;
7 x := CAS . x ;
8 x := b ; fb := EVAL ( f ) ;
9 s :=( h /2) *( fa + fb ) ;
10
11 FOR I FROM 1 TO n -1 DO
12 x := CAS . x ;
13 xi := a + I * h ;
14 x := xi ; fxi := EVAL ( f ) ;
15 s := s + h *( fxi ) ;
16 END ;
17 res := s ;
18 END ;
1 EXPORT TrapeciosMatriz ( f )
2 BEGIN
3 LOCAL h , xi ,x ,a , b ; x := CAS . x ;
4 LOCAL fa , fb ,s , fxi , res , n ;
5 n := CAS . SIZE ( f ) ; n := n (1) ;
6 a := f (1 ,1) ; fa := f (1 ,2) ;
7 b := f (n ,1) ; fb := f (n ,2) ;
8 h :=( b - a ) / n ;
9 s :=( h /2) *( fa + fb ) ;
10 FOR I FROM 2 TO n -1 DO
11 xi := f (I ,1) ;
12 fxi := f (I ,2) ;
13 s := s + h *( fxi ) ;
14 END ;
15 res := s ;
16 END ;
1 EXPORT tril ( a )
2 BEGIN
3 LOCAL n ,f , c ;
4 n := CAS . SIZE ( a ) ; f := n (1) ; c := n (2) ;
5
6 FOR I FROM 1 TO f DO
7 FOR J FROM 1 TO c DO
8 IF I < J THEN
9 a (I , J ) :=0;
10 END ;
11 END ;
12 END ;
13 RETURN a ;
14
15 END ;