Вы находитесь на странице: 1из 3

Montserrat Gaytn Gutirrez

A00569562

1) Lea y escriba su opinin sobre este artculo: https://www.fastcodesign.com/3044877/the-


golden-ratio-designs-biggest-myth7

En el artculo 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 artculo 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 ms que busca justificar
el porqu de algunas de las composiciones de las cosas que nos rodean, aunque es totalmente cierto
que este aparece en ms de alguna antigedad y actualmente.

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


isdiagdom(A) a la cual se le enva una matriz y regresa true o false segn 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 slo 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
dems elementos de la fila correspondiente.
CDIGO
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 dems 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 Gaytn Gutirrez
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 algn cero
CDIGO
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 Gaytn Gutirrez
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

Вам также может понравиться