Nube de etiquetas
2014-06-18
sistema de ecuaciones lineales
Compatible significa que tiene solución
Incompatible significa que no tiene solución (claro!)
Determinado significa que la solución es única
Indeterminado significa que la solución no es única
2014-05-27
el núcleo y la imagen de un Aplicación lineal
Published on Apr 21, 2012
Ejemplo de como se calcula el núcleo y la imagen de un Aplicación lineal
2011-02-01
Rotation matrix
Rotation matrix
.
Krylov subspace
Krylov subspace
References
- Nevanlinna, Olavi (1993). Convergence of iterations for linear equations. Lectures in Mathematics ETH Zürich. Basel: Birkhäuser Verlag. pp. viii+177 pp.. MR1217705. ISBN 3-7643-2865-7.
- Saad, Yousef (2003). Iterative methods for sparse linear systems (2nd ed.). SIAM. ISBN 0898715342. OCLC 51266114.
- ^ Mike Botchev (2002). "A.N.Krylov, a short biography".
2009-08-22
La aritmética de Trachtenberg
Así como Viktor Emil Frankl desarrollo la logoterapia para superar los rigores de los campos de concentración Nazi, Jakow Trachtenberg ocupo su mente en desarrollar un sistema de aritmética mental al verse en la misma situación.
El sistema Trachtenberg de rápido cálculo mental, similar a las matemáticas Védicas, consiste en un conjunto de patrones para realizar operaciones aritméticas. Los algoritmos más importantes son multiplicación,división, y adición. El método también incluye algoritmos especializados para realizar multiplicaciones por números entre 5 y 13.
Multiplicación por 11
Abusando de la notación
(11)a = 11Σai10i =
an10n+1 + [Σj=0n-1(aj+aj+1)10j ]+ a0
Multiplicación por 12
(12)a = 12Σai10i =
an10n+1 + [Σj=0n-1 (aj+2aj+1)10j ]+ 2a0
Multiplicación por 6
Definiendo
bj = aj/2, donde / denota división entera
cj = aj mod 2
tenemos
aj = 2bj + cj
(6)a = (10/2)Σai10i + Σai10i =
Σbi10i+1 + Σ(ai + 5ci)10i
bn10n+1 + [Σj=1n(aj + 5cj + bj-1)10j ]+ (a0 + 5c0)
Expresando el algoritmo en python:
def x6(number):
previous = 0
result = 0
power_of_10 = 1
while (number):
digit = number%10
odd_term = 5 if digit%2 else 0
result =
(digit + odd_term + previous ) *
power_of_10 + result
previous = digit//2
power_of_10 *= 10
number = number // 10
result = previous * power_of_10 + result
return result
Multiplicación por 7
De manera similar al caso anterior:
aj = 2bj + cj
(7)a = (10/2)Σai10i + Σ2ai10i =
Σbi10i+1 + Σ(2ai + 5ci)10i
bn10n+1 + [Σj=1n(2aj + 5cj + bj-1)10j ]+ (a0 + 5c0)
Expresando el algoritmo en python:
def x7(number):
previous = 0
result = 0
power_of_10 = 1
while (number):
digit = number%10
odd_term = 5 if digit%2 else 0
result =
(2*digit + odd_term + previous ) *
power_of_10 + result
previous = digit//2
power_of_10 *= 10
number = number // 10
result = previous * power_of_10 + result
return result
Multiplicación por 5
De manera similar al caso anterior:
aj = 2bj + cj
(5)a = (10/2)Σai10i =
Σbi10i+1 + Σ(5ci)10i
bn 10n+1 + [Σj=1n(5cj + bj-1)10j ]+ (5c0)
Expresando el algoritmo en python:
def x5(number):
previous = 0
result = 0
power_of_10 = 1
while (number):
digit = number%10
odd_term = 5 if digit%2 else 0
result =
(odd_term + previous ) *
power_of_10 + result
previous = digit//2
power_of_10 *= 10
number = number // 10
result = previous * power_of_10 + result
return result
Multiplicación por 9
Definiendo
b = 10n+1 - Σj=0naj , o sea el complemento a 10 de a
tenemos
(9)a = 10a –a =
10a –a + b – b =
10a + b - 10n+1 =
(an – 1)10n+1 + [Σj=1n(bj + aj-1)10j ]+ (b0 )
Expresando el algoritmo en python:
def x9(number):
previous = number%10
result = 10 - previous
power_of_10 = 10
number = number // 10
while (number):
digit = number%10
result =
(9 - digit + previous ) *
power_of_10 + result
previous = digit
power_of_10 *= 10
number = number // 10
result =
(previous-1) * power_of_10 +
result
return result
Multiplicación por 8
Definiendo
b = 10n+1 - Σj=0naj , o sea el complemento a 10 de a
tenemos
(8)a = 10a –2a =
10a –2a +2 b – 2b =
10a + 2b – (2)10n+1 =
(an – 2)10n+1 + [Σj=1n(2bj + aj-1)10j ]+ (2b0 )
Expresando el algoritmo en python:
def x8(number):
previous = number%10
result = 2*(10 - previous)
power_of_10 = 10
number = number // 10
while (number):
digit = number%10
result =
(2*(9 - digit) + previous ) *
power_of_10 + result
previous = digit
power_of_10 *= 10
number = number // 10
result =
(previous-2) *
power_of_10 + result
return result
Multiplicación por 3 y por 4
Los algoritmos para multiplicar por 3 y por 4 combinan las ideas usadas en la multiplicación por 5 y por 9.
Definiendo
b = 10n+1 - Σj=0naj , o sea el complemento a 10 de a
ai = 2ci + di, donde
ci = ai/2
di = ai mod 2
tenemos
(4)a = 5a –a =
10c + 5d + b - 10n+1
(3)a = 5a –2a =
10c + + 5d + 2b – (2)10n+1
Expresando los algoritmos en python:
def x3(number):
digit = number%10
result = 2*(10 - digit)
if digit % 2:
result += 5
previous = digit // 2
power_of_10 = 10
number = number // 10
while (number):
digit = number%10
odd_term = 5 if digit%2 else 0
result +=(2*(9 - digit) + odd_term + previous ) * power_of_10
previous = digit//2
power_of_10 *= 10
number = number // 10
result = (previous-2) * power_of_10 + result
return result
def x4(number):
digit = number%10
result = (10 - digit)
if digit % 2:
result += 5
previous = digit // 2
power_of_10 = 10
number = number // 10
while (number):
digit = number%10
odd_term = 5 if digit%2 else 0
result +=((9 - digit) + odd_term + previous ) * power_of_10
previous = digit//2
power_of_10 *= 10
number = number // 10
result = (previous-1) * power_of_10 + result
return result
Referencias
2009-08-07
Aritmética y memoria; 513 Sticker
Es posible mediante el ejercicio de la memoria acelerar cálculos aritméticos. Este es un patrón general que también se aplica a la implementación algorítmica.
Por ejemplo, al multiplicar números de dos dígitos tenemos
a1a0 x b1b0 = (10a1+a0)(10b1+bo)=
100a1b1+10(a1bo+a0b1)+a0bo
Al multiplicar números de tres dígitos tenemos
a2a1a0 x b2b1b0 = (100a2+10a1+a0)(100b2+10b1+bo)=
10000a2b2 + 1000(a2b1+a1b2) +
100(a2b0+a1b1+a0b2) + 10(a1bo+a0b1)+a0bo
Si recordamos las fórmulas podemos encontrar los dígitos del producto directamente.
Al calcular el cuadrado de un número de 2 dígitos
(a1a0 )2 = (10a1+a0)2=
100a12+10(2a1a0)+a02
Al calcular el cuadrado de un número que termina en 1
(a11 )2 = (10a1+1)2=
100a12+10(2a1)+1
Al calcular el cuadrado de un número que termina en 5
(a15 )2 = (10a1+5)2=
100(a12+a1) + 25=
100a1(a1+1) + 25
Al calcular el cuadrado de un número que empiezan en 5
(5a0 )2 = (50 + a0)2=
100(25 +a0) + a02
Al calcular el productos de números de tres dígitos que empiezan con 1
(1a1 a0)(1b1b0) =
(100 + 10a1 + a0)(100 + 10 b1 + b0) =
10000 + 1000(a1 + b1) + 100(a1b1 + a0 + b0) +
10(a1b0 + a0b1) + a0b0
Multiplicar un número menor que 100 por 99
(a)(99) = 100 (a – 1) + (100 – a)
Referencias
- http://www.librarything.com/work/27790
- Speed Mathematics Simplified (Dover Science Books) by Edward Stoddard
- Dead Reckoning: Calculating Without Instruments by Ronald W. Doerfler
- Math Magic: The Human Calculator Shows How to Master Everyday Math Problems in Seconds by Scott Flansburg
- Calculus Made Easy by Silvanus P. Thompson
- Short-Cut Math by Gerard W. Kelly
- Mathematics for the Nonmathematician by Morris Kline
- Speed Mathematics: Secret Skills for Quick Calculation by Bill Handley
- Speed System of Basic Mathematics by Jakow Trachtenberg
- Miracle Math: How to Develop a Calculator in Your Head by Harry Lorayne
- Becoming a Mental Math Wizard by Jerry Lucas