Escolar Documentos
Profissional Documentos
Cultura Documentos
A=matrix(c(5,-1,-1,
1,2,3,
4,3,2),ncol=3,nrow=3,byrow=T)
b=matrix(c(0,14,16),ncol=1,nrow=3,byrow=T)
Ab=cbind(A,b)
n = nrow(Ab)
#matriz triangular
for (k in 1:(n-1))
for (i in (k+1):n)
factor=Ab[i,k]/Ab[k,k]
for (j in k:(n+1))
Ab[i,j]=Ab[i,j]-factor*Ab[k,j];
x=matrix(0,n,1)
x[n]=Ab[n,(n+1)]/Ab[n,n];
for (i in seq(n-1:1,by=-1))
x[i]=Ab[i,n+1]/Ab[i,i];
for (j in (i+1):n)
{
x[i]=x[i]-Ab[i,j]*x[j]/Ab[i,i];
print(x)
#############################################################################
#######################
#############################################################################
######################
#install.packages("Matrix")
require(Matrix)
A = matrix(c(4, -9, 2,
2, -4, 6,
B = c(5,3,4)
mlu = lu(A)
mlu = expand(mlu)
LL = mlu$L
UU = mlu$U
Pt = t(mlu$P)
#############################################################################
#######################
#############################################################################
#######################
#algoritmo de Thomas
#k=2--N
#ek=ek/fk-1
#fk=fk-ek*gk-1
#L*D=b
#U*x=D
A= matrix(c(4, 1, 0, 0, 0,
-8, -1, 1, 0, 0,
0, 3, -2, 4, 0,
0, 0, 1, -1, 1,
n=nrow(A)
L=matrix(0,ncol=n,nrow = n,byrow = T)
U=matrix(0,ncol=n,nrow = n,byrow = T)
U[1,1]=A[1,1]
for(k in 1:n) {
for (i in k:k) {
L[k,i]=1
k=1
while(k<n) {
k=k+1
i=k-1
L[k,i]=A[k,i]/U[i,i]
U[k,k]=A[k,k]-L[k,i]*A[i,k]
for (k in 1:n-1) {
i=k+1
U[k,i]=A[k,i]
#L*D=b
#U*x=D
D=matrix(0,nrow=n,ncol=1)
j=1
D[1,1]=b[1,1]
for (s in 2:n) {
m=s-1
D[s,j]=b[s,j]-D[m,j]*L[s,m]
x=matrix(0,nrow=n,ncol=1)
x[n,1]=D[n,1]/U[n,n]
for (s in n:2) {
m=s-1
x[m,1]=(D[m,1]-x[s,1]*U[m,s])/U[m,m]
}
print(x)
#############################################################################
#######################
#############################################################################
#######################
#METODO DE CHOLESKY
A= matrix(c(4, -2, 0,
-2, 4, -1,
b=matrix(c(0,0.5,1),ncol=1)
n=nrow(A)
U=chol(A)
L=t(U)
#L*D=b
#U*x=D
A=L
b=b
Ab=cbind(A,b)
n = nrow(Ab)
#matriz triangular
for (k in 1:(n-1))
for (i in (k+1):n)
{
factor=Ab[i,k]/Ab[k,k]
for (j in k:(n+1))
Ab[i,j]=Ab[i,j]-factor*Ab[k,j];
D=matrix(0,n,1)
D[n]=Ab[n,(n+1)]/Ab[n,n];
for (i in seq(n-1:1,by=-1))
D[i]=Ab[i,n+1]/Ab[i,i];
for (j in (i+1):n)
D[i]=D[i]-Ab[i,j]*D[j]/Ab[i,i];
A=U
b=D
Ab=cbind(A,b)
n = nrow(Ab)
x=matrix(0,n,1)
x[n]=Ab[n,(n+1)]/Ab[n,n];
for (i in seq(n-1:1,by=-1))
x[i]=Ab[i,n+1]/Ab[i,i];
for (j in (i+1):n)
x[i]=x[i]-Ab[i,j]*x[j]/Ab[i,i];
print(x)
#############################################################################
#######################
#############################################################################
#######################
require(Matrix)
require(pracma)
stopifnot(is.numeric(A), is.numeric(b))
n <- nrow(A)
if (ncol(A) != n)
b <- c(b)
if (length(b) != n)
if (is.null(x0)) {
x0 <- rep(0, n)
} else {
stopifnot(is.numeric(x0))
x0 <- c(x0)
if (length(x0) != n)
if (method == "Jacobi") {
L <- diag(diag(A))
U <- eye(n)
L <- tril(A)
U <- eye(n)
L <- eye(n)
U <- L
beta <- 0
b <- as.matrix(b)
r <- b - A %*% x0
iter <- 0
z <- qr.solve(U, z)
x <- x + alpha * z
r <- b - A %*% x
cat ("\n\nSoluciones:")
print(c(x))
#############################################################################
#######################
#############################################################################
#######################
require(pracma)
stopifnot(is.numeric(A), is.numeric(b))
n <- nrow(A)
if (ncol(A) != n)
b <- c(b)
if (length(b) != n)
if (is.null(x0)) {
x0 <- rep(0, n)
} else {
stopifnot(is.numeric(x0))
x0 <- c(x0)
if (length(x0) != n)
if (method == "Jacobi") {
L <- diag(diag(A))
U <- eye(n)
L <- tril(A)
U <- eye(n)
L <- eye(n)
U <- L
beta <- 0
b <- as.matrix(b)
r <- b - A %*% x0
iter <- 0
z <- qr.solve(L, r)
z <- qr.solve(U, z)
x <- x + alpha * z
r <- b - A %*% x
cat ("\n\nSoluciones:")
print(c(x))
}