Está en la página 1de 3

Montserrat Gaytán Gutiérrez

A00569562

1) Lea y escriba su opinión sobre este artículo: https://www.fastcodesign.com/3044877/the-


golden-ratio-designs-biggest-myth7

En el artículo “The Golden ratio: Design biggest myth” nos habla sobre el hecho de que el “Golden
ratio” es simplemente un mito, aunque si nos ponemos a pensar lo que dice el artículo tiene una
parte muy cierta cuando dice que igual y podemos ver que este concepto si está aplicado a ciertas
obras de arte, estructuras y construcciones, sin embargo, esto no quiere decir que las personas lo
utilicen todo el tiempo y lo hagan consientes. Es una realidad que el ser humano tiende a querer
justificar todo lo que existe y puede ser que el “Golden ratio” sea una cosa más que busca justificar
el porqué de algunas de las composiciones de las cosas que nos rodean, aunque es totalmente cierto
que este aparece en más de alguna antigüedad y actualmente.

2) Investigue que son las matrices diagonalmente dominantes y codifique: function


isdiagdom(A) a la cual se le envía una matriz y regresa true o false según la matriz sea
o no diagonalmente dominante.

MATRICES DE DIAGONAL ESTRICTAMENTE DOMINANTE


Se dice que una matriz cuadrada es de diagonal estrictamente dominante o que es estrictamente
dominante diagonalmente(EDD) por filas, si y sólo si:

Es decir, una matriz es estrictamente dominante diagonalmente cuando los elementos de la


diagonal principal son mayores en valor absoluto, que la suma de los valores absolutos de los
demás elementos de la fila correspondiente.
CÓDIGO
function isdiagdom(A)
#Verifica que las matrices sean diagonalmente dominantes
#El valor de absoluto del elemento en la diagonal es mayor que la suma de
los demás elementos en la fila#
(f,c)=size(A)
for i=1:f
arr=0
for j=1:c
arr=arr+abs(A[i,j])
end
for h=1:c
if i==h
total=0
Montserrat Gaytán Gutiérrez
A00569562
m=abs(A[i,i])
total=arr-m
if total>=m
return false &&break
end
end
end
end
true
end

EJEMPLO
Julia> A=[11 1 8 1 ; 1 8 0 1 ; 1 -1 -3 0 ; 1 -10 -3 3]
Julia> isdiagdom(A)
False

3) Modifique function sim_gseidel(A, B, dig=8) para que:


 Llame a isdiagdom()e imprima una advertencia si obtiene false
 Recorra la diagonal de la matriz antes de comenzar a calcular y salga con error en
caso de encontrar algún cero
CÓDIGO
function sim_gseidel(A, B, dig=8)
# Solve Simultaneous Linear Equations
# using The Gauss-Seidel Method
n=length(B) ; X=zeros(n) ; iter=1000
for m=1:n
if A[m,m]==0
println("Cero en la diagonal")
return ERROR
end
end
if isdiagdom(A)== false
println("ADVERTENCIA: La matriz A no es diagonalmente dominante")
end
for k=1:iter
for i=1:n
s=0.0
for j=1:n if i!=j s+=A[i,j]*X[j] end end
X[i]=(B[i]-s)/A[i,i]
end
err=norm(A*X-B,1)
isapproxd(err, 0.0, dig) && break
println("ITER=$k\tERR=$err")
end
X
End
Montserrat Gaytán Gutiérrez
A00569562

EJEMPLO

Julia> sim_gseidel([6 1 2 ; 3 -8 1 ; 1 2 7.],[13, 15, 7.])


ITER=1 ERR=1.9196428571428577
ITER=2 ERR=0.07560055272108634
ITER=3 ERR=0.004588214564105186
ITER=4 ERR=0.00022517449022885216
ITER=5 ERR=1.13231885432441e-5
ITER=6 ERR=7.748334969193138e-7
ITER=7 ERR=3.2464523513908716e-8
3-element Array{Float64,1}:
2.0
-1.0
1.0

También podría gustarte