Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Metodos para La Solucion de Sistemas de Ecuaciones Lineales en Java
Metodos para La Solucion de Sistemas de Ecuaciones Lineales en Java
package gauss;
import javax.swing.JOptionPane;
public class gauss {
public static void main(String[ args! {
int i"j"s"k"#"n;
double d;
double m[[; double r[; double x[;
n$%nteger.parse%nt(JOptionPane.s#ow%nput&ialog('ingrese el numero de incognitas'!!;
m$ new double [n[n; r$ new double [n; x$ new double [n;
(or(i$);i*$n+,;i--!{
k$i-,;
r[i$&ouble.parse&ouble(JOptionPane.s#ow%nput&ialog('ingrese el elemento '-k-' del
vector de soluciones'!!;
x[i$);
(or(j$);j*$n+,;j--!{
#$j-,;
m[i[j$&ouble.parse&ouble(JOptionPane.s#ow%nput&ialog('ingrese el elemento '-k-#-'
de la matri. de coe(icientes'!!;
/
/
(or(i$);i*n;i--!{
(or(j$i;j*n;j--!{
i((i$$j!{
d$m[i[j;
(or(s$);s*n;s--!{
m[i[s$((m[i[s!0d!;
/
r[i$((r[i!0d!;
/
else{
d$m[j[i;
(or(s$);s*n;s--!{
m[j[s$m[j[s+(d1m[i[s!;
/
r[j$r[j+(d1r[i!;
/
/
/
(or(i$n+,;i2$);i++!{
double 3$r[i;
(or(j$n+,;j2$i;j++!{
3$3+x[j1m[i[j;
/
x[i$3;
/
(or(i$);i*n;i--!{
k$i-,;
JOptionPane.s#ow4essage&ialog(null"'el valor de la incognita x'-k-' es '-x[i!;
/
/
/
MTODO DE GAUSS-JORDAN
package gaussjordan;
import javax.swing.JOptionPane;
public class gaussjordan {
public static void main(String[ args! {
int i"j"s"k"#"n"x"3;
double d"c;
double m[[; double r[;
n$%nteger.parse%nt(JOptionPane.s#ow%nput&ialog('ingrese el numero de incognitas'!!;
m$ new double [n[n; r$ new double [n;
(or(i$);i*$n+,;i--!{
k$i-,;
r[i$&ouble.parse&ouble(JOptionPane.s#ow%nput&ialog('ingrese el elemento '-k-' del
vector de soluciones'!!;
(or(j$);j*$n+,;j--!{
#$j-,;
m[i[j$&ouble.parse&ouble(JOptionPane.s#ow%nput&ialog('ingrese el elemento '-k-#-' de la matri.
de coe(icientes '!!;
/
/
(or(i$);i*$n+,;i--!{
d$m[i[i;
(or(s$);s*$n+,;s--!{
m[i[s$((m[i[s!0d!;
/
r[i$((r[i!0d!;
(or(x$);x*$n+,;x--!{
i((i5$x!{
c$m[x[i;
(or(3$);3*$n+,;3--!{
m[x[3$m[x[3+c1m[i[3;
/
r[x$r[x+c1r[i;
/
/
/
(or(i$);i*$n+,;i--!{
k$i-,;
JOptionPane.s#ow4essage&ialog(null"'el valor de la incognita x'-k-' es '-r[i!;
/
/
/
FACTORIZACIN LU
package factorizacionlu;
import javax.swing.JOptionPane;
public class factorizacionLU {
public static voi main!"tring#$ args% {
int i&j&'&k&n&s;
ouble c&suma;
ouble m#$#$; ouble l#$#$; ouble r#$; ouble z#$; ouble x#$;
n()nteger.parse)nt!JOptionPane.s'ow)nput*ialog!+ingrese el numero e
incognitas+%%;
m( new ouble #n$#n$; l( new ouble #n$#n$; r( new ouble #n$;
x( new ouble #n$; z( new ouble #n$;
for!i(,;i-(n./;i00%{
k(i0/;
r#i$(*ouble.parse*ouble!JOptionPane.s'ow)nput*ialog!+ingrese el elemento +0k0+
el vector e soluciones+%%;
for!j(,;j-(n./;j00%{
'(j0/;
m#i$#j$(*ouble.parse*ouble!JOptionPane.s'ow)nput*ialog!+ingrese el
elemento+0k0'0+ e la matriz e coeficientes +%%;
if!i((j%{
l#i$#j$(/;
1
else{
l#i$#j$(,;
1
1
1
for!i(,;i-n./;i00%{
for!j(i0/;j-n;j00%{
c(!m#j$#i$%2m#i$#i$;
for!s(,;s-n;s00%{
m#j$#s$(m#j$#s$.c3m#i$#s$;
1
l#j$#i$(c;
1
1
for!i(,;i-n;i00%{
suma(r#i$;
for!j(i;j4(,;j..%{
if!i((j%{
suma(suma2l#i$#j$;
1
else{
suma(suma.!!z#j$3l#i$#j$%2l#i$#i$%;
1
1
z#i$(suma;
1
for!i(n./;i4(,;i..%{
suma(z#i$;
for!j(i;j-n;j00%{
if!i((j%{
suma(suma2m#i$#j$;
1
else{
suma(suma.!!x#j$3m#i$#j$%2m#i$#i$%;
1
1
x#i$(suma;
1
for!i(,;i-n;i00%{
k(i0/;
JOptionPane.s'ow5essage*ialog!null&+el valor e la incognita x+0k0+ es +0x#i$%;
1
1
1
MTODO DE THOMAS
package t'omas;
import javax.swing.JOptionPane;
public class 6'omas {
public static voi main!"tring#$ args% {
int i&j&k&'&n;
ouble ban&suma;
ouble m#$#$; ouble u#$#$;ouble l#$#$;
ouble r#$; ouble z#$; ouble x#$;
ouble a#$;ouble b#$;ouble c#$;
n()nteger.parse)nt!JOptionPane.s'ow)nput*ialog!+ingrese el numero e
incognitas+%%;
m( new ouble #n$#n$; u( new ouble #n$#n$;l( new ouble #n$#n$;
r( new ouble #n$;x( new ouble #n$;z( new ouble #n$;
a( new ouble #n$; b( new ouble #n$;c( new ouble #n./$;
for!i(,;i-(n./;i00%{
k(i0/;
r#i$(*ouble.parse*ouble!JOptionPane.s'ow)nput*ialog!+ingrese el elemento +0k0+
el vector e soluciones+%%;
for!j(,;j-(n./;j00%{
'(j0/;
u#i$#j$(,;
m#i$#j$(*ouble.parse*ouble!JOptionPane.s'ow)nput*ialog!+ingrese el
elemento+0k0'0+ e la matriz e coeficientes +%%;
if!i((j%{
l#i$#j$(/;
1
else{
l#i$#j$(,;
1
1
1
for!i(,;i-n;i00%{
if!i((,%{
b#i$(m#i$#i$;
a#i$(,;
u#i$#i$(b#i$;
1
else{
c#i./$(m#i./$#i$;
a#i$(!m#i$#i./$%2!b#i./$%;
b#i$(m#i$#i$.!!a#i$%3!c#i./$%%;
l#i$#i./$(a#i$;
u#i$#i$(b#i$;
u#i./$#i$(c#i./$;
1
1
for!i(,;i-n;i00%{
k(i0/;
for!j(,;j-n;j00%{
'(j0/;
JOptionPane.s'ow5essage*ialog!null&+7l elemento+0k0'0+ e la matriz L es
+0l#i$#j$%;
JOptionPane.s'ow5essage*ialog!null&+7l elemento+0k0'0+ e la matriz U es
+0u#i$#j$%;
1
1
for!i(,;i-n;i00%{
suma(r#i$;
for!j(i;j4(,;j..%{
if!i((j%{
suma(suma2l#i$#j$;
1
else{
suma(suma.!!z#j$3l#i$#j$%2l#i$#i$%;
1
1
z#i$(suma;
1
for!i(n./;i4(,;i..%{
suma(z#i$;
for!j(i;j-n;j00%{
if!i((j%{
suma(suma2u#i$#j$;
1
else{
suma(suma.!!x#j$3u#i$#j$%2u#i$#i$%;
1
1
x#i$(suma;
1
for!i(,;i-n;i00%{
k(i0/;
JOptionPane.s'ow5essage*ialog!null&+el valor e la incognita x+0k0+ es
+0x#i$%;
1
1
1
FACTORIZACIN DE CHOLESKY
package c'olesk8;
import javax.swing.JOptionPane;
public class 9'olesk8 {
public static voi main!"tring#$ args% {
int i&j&s&k&'&n;
ouble ban&suma;
ouble m#$#$; ouble l#$#$;ouble lt#$#$;
ouble r#$; ouble z#$; ouble x#$;
ouble a#$;ouble b#$;ouble c#$;
n()nteger.parse)nt!JOptionPane.s'ow)nput*ialog!+ingrese el numero e
incognitas+%%;
m( new ouble #n$#n$; l( new ouble #n$#n$;lt( new ouble #n$#n$;
r( new ouble #n$;x( new ouble #n$;z( new ouble #n$;
a( new ouble #n$; b( new ouble #n$;c( new ouble #n./$;
for!i(,;i-(n./;i00%{
k(i0/;
r#i$(*ouble.parse*ouble!JOptionPane.s'ow)nput*ialog!+ingrese el elemento
+0k0+ el vector e soluciones+%%;
for!j(,;j-(n./;j00%{
'(j0/;
m#i$#j$(*ouble.parse*ouble!JOptionPane.s'ow)nput*ialog!+ingrese el
elemento+0k0'0+ e la matriz e coeficientes +%%;
if!i((j%{
l#i$#j$(/;
1
else{
l#i$#j$(,;
1
1
1
k(,;
for!i(,;i-n;i00%{
for!j(,;j-n;j00%{
if!m#i$#j$:(m#j$#i$%{
k(/;
1
1
1
'(,;
for!i(,;i-n;i00%{
for!j(,;j-n;j00%{
if!m#i$#j$-,%{
'(/;
1
1
1
if!k((, ;; '((,%{
l#,$#,$(5at'.s<rt!m#,$#,$%;
for!i(,;i-n;i00%{
for!j(,;j-(i;j00%{
if!i((j%{
suma(,;
for!s(,;s-(i./;s00%{
suma(suma05at'.pow!l#i$#s$&=%;
1
l#i$#i$(5at'.s<rt!m#i$#i$.suma%;
1
else{
suma(,;
for!s(,;s-(j./;s00%{
suma(suma0!l#j$#s$%3!l#i$#s$%;
1
l#i$#j$(!m#i$#j$.suma%2l#j$#j$;
1
1
1
for!i(,;i-n;i00%{
k(i0/;
for!j(,;j-n;j00%{
'(j0/;
JOptionPane.s'ow5essage*ialog!null&+el valor e la incognita x+0k0'0+
es +0l#i$#j$%;
1
1
for!i(,;i-n;i00%{
for!j(,;j-n;j00%{
a#j$(l#i$#j$;
1
for!j(,;j-n;j00%{
lt#j$#i$(a#j$;
1
1
for!i(,;i-n;i00%{
k(i0/;
for!j(,;j-n;j00%{
'(j0/;
JOptionPane.s'ow5essage*ialog!null&+el valor e la incognita lt+0k0'0+ es
+0lt#i$#j$%;
1
1
for!i(,;i-n;i00%{
suma(r#i$;
for!j(i;j4(,;j..%{
if!i((j%{
suma(suma2l#i$#j$;
1
else{
suma(suma.!!z#j$3l#i$#j$%2l#i$#i$%;
1
1
z#i$(suma;
1
for!i(n./;i4(,;i..%{
suma(z#i$;
for!j(i;j-n;j00%{
if!i((j%{
suma(suma2lt#i$#j$;
1
else{
suma(suma.!!x#j$3lt#i$#j$%2lt#i$#i$%;
1
1
x#i$(suma;
1
for!i(,;i-n;i00%{
k(i0/;
JOptionPane.s'ow5essage*ialog!null&+el valor e la incognita x+0k0+ es
+0x#i$%;
1
1
else{
if!k((/ ;; '((/%{
JOptionPane.s'ow5essage*ialog!null&+La matriz es asimetrica 8 no esta
efinia positivamente+%;
1
else{
if!k((/%{
JOptionPane.s'ow5essage*ialog!null&+La matriz es asimetrica+%;
1
else{
JOptionPane.s'ow5essage*ialog!null&+La matriz no esta efinia
positivamente+%;
1
1
1
1
1
MTODO DE JACOBI
package jacobi;
import javax.swing.JOptionPane;
public class jacobi {
public static voi main!"tring#$ args% {
int n&k&i&j&'&ban&siga&miter;
ouble m#$#$; ouble r#$; ouble x#$; ouble s#$; ouble cont#$; ouble error#$;
ouble suma&l&tol;
n()nteger.parse)nt!JOptionPane.s'ow)nput*ialog!+ingrese el numero e incognitas+%%;
tol(*ouble.parse*ouble!JOptionPane.s'ow)nput*ialog!+ingrese la tolerancia +%%;
miter()nteger.parse)nt!JOptionPane.s'ow)nput*ialog!+ingrese el numero maximo e
iteraciones+%%;
m( new ouble #n$#n$; r( new ouble #n$; x( new ouble #n$; s( new ouble #n$;
cont( new ouble #n$; error( new ouble #n$;
for!i(,;i-(n./;i00%{
k(i0/;
r#i$(*ouble.parse*ouble!JOptionPane.s'ow)nput*ialog!+ingrese el elemento +0k0+
el vector e soluciones+%%;
x#i$(*ouble.parse*ouble!JOptionPane.s'ow)nput*ialog!+ingrese el valor en el cual
<uiere comenzar a evaluar x+0k%%;
s#i$(,;
for!j(,;j-(n./;j00%{
'(j0/;
m#i$#j$(*ouble.parse*ouble!JOptionPane.s'ow)nput*ialog!+ingrese el
elemento+0k0'0+ e la matriz e coeficientes+%%;
1
1
ban(,;
for!i(,;i-n;i00%{
suma(,;
for!j(,;j-n;j00%{
if!i:(j%{
suma(suma0m#i$#j$;
1
1
cont#i$(suma;
if!5at'.abs!m#i$#i$%4cont#i$%{
ban(ban0/;
1
1
if!ban((n%{
siga(n./;
int iter(,;
w'ile!siga:(n ;; iter-miter%{
iter(iter0/;
for!i(,;i-n;i00%{
l(,;
for!j(,;j-n;j00%{
if!i((j%{
l(l0r#i$2m#i$#j$;
1
else{
l(l.!!m#i$#j$3x#j$%2m#i$#i$%;
1
1
s#i$(l;
1
for!i(,;i-n;i00%{
error#i$(5at'.abs!!s#i$.x#i$%2s#i$%3/,,;
1
for!i(,;i-n;i00%{
x#i$(s#i$;
1
siga(,;
for!i(,;i-n;i00%{
if!error#i$-tol%{
siga(siga0/;
1
1
1
'(,;
for!i(,;i-n;i00%{
'('0/;
JOptionPane.s'ow5essage*ialog!null&+el valor aproximao e la incognita x+0'0+ es
+0s#i$%;
1
JOptionPane.s'ow5essage*ialog!null&+7l numero total e iteraciones fue e +0iter%;
1
else {
JOptionPane.s'ow5essage*ialog!null&+>o se puee solucionar por este metoo
ebio a <ue la matriz e coeficientes no es iagonalmente ominante+%;
1
1
1
MTODO DE GAUSS-SEIDEL
package gaussseiel=;
import javax.swing.JOptionPane;
public class gaussseiel= {
public static voi main!"tring#$ args% {
int n&k&i&j&'&ban&siga&miter;
ouble m#$#$; ouble r#$; ouble x#$; ouble 8#$; ouble error#$; ouble cont#$;
ouble suma&l&tol;
n()nteger.parse)nt!JOptionPane.s'ow)nput*ialog!+ingrese el numero e incognitas+%%;
tol(*ouble.parse*ouble!JOptionPane.s'ow)nput*ialog!+ingrese la tolerancia +%%;
miter()nteger.parse)nt!JOptionPane.s'ow)nput*ialog!+ingrese el numero maximo e
iteraciones+%%;
m( new ouble #n$#n$; r( new ouble #n$; x( new ouble #n$; 8( new ouble #n$;
cont( new ouble #n$; error( new ouble #n$;
for!i(,;i-(n./;i00%{
k(i0/;
r#i$(*ouble.parse*ouble!JOptionPane.s'ow)nput*ialog!+ingrese el elemento +0k0+
el vector e soluciones+%%;
x#i$(*ouble.parse*ouble!JOptionPane.s'ow)nput*ialog!+ingrese el valor en el cual
<uiere comenzar a evaluar x+0k%%;
8#i$(,;
for!j(,;j-(n./;j00%{
'(j0/;
m#i$#j$(*ouble.parse*ouble!JOptionPane.s'ow)nput*ialog!+ingrese el
elemento+0k0'0+ e la matriz e coeficientes+%%;
1
1
ban(,;
for!i(,;i-n;i00%{
suma(,;
for!j(,;j-n;j00%{
if!i:(j%{
suma(suma0m#i$#j$;
1
1
cont#i$(suma;
if!5at'.abs!m#i$#i$%4cont#i$%{
ban(ban0/;
1
1
if!ban((n%{
siga(n./;
int iter(,;
w'ile!siga:(n ;; iter-miter%{
iter(iter0/;
for!i(,;i-n;i00%{
l(,;
for!j(,;j-n;j00%{
if!i((j%{
l(l0r#i$2m#i$#j$;
1
else{
l(l.!!m#i$#j$3x#j$%2m#i$#i$%;
1
1
x#i$(l;
1
for!i(,;i-n;i00%{
error#i$(5at'.abs!!x#i$.8#i$%2x#i$%3/,,;
8#i$(x#i$;
1
siga(,;
for!i(,;i-n;i00%{
if!error#i$-tol%{
siga(siga0/;
1
1
1
'(,;
for!i(,;i-n;i00%{
'('0/;
JOptionPane.s'ow5essage*ialog!null&+el valor aproximao e la incognita x+0'0+ es
+0x#i$%;
1
JOptionPane.s'ow5essage*ialog!null&+7l n?mero total e iteraciones fue e +0iter%;
1
else {
JOptionPane.s'ow5essage*ialog!null&+>o se puee solucionar por este metoo
ebio a <ue la matriz e coeficientes no es iagonalmente ominante+%;
1
1
1