Está en la página 1de 58

CATÁLOGO DE

MÉTODOS
NUMÉRICOS

OLGA GONZÁLEZ ALVARADO

ENE-MAY 2016
MÉTODOS DE INTERPOLACIÓN

1
Método de Lagrange
El método de Lagrange pretende encontrar un polinomio que pase por un conjunto de puntos obtenidos de un experimento o de
una muestra.

Es de la forma:

Ejemplo:

t y

0 3

1 6

2 7

3 4

4 2

2
Scilab
function [P]=lagrange(X, Y)

n=length(X);

x=poly(0,"x");P=0;
for i=1:n, L=1;

for j=[1:i-1,i+1:n]

L=L*(x-X(j))/(X(i)-X(j));

end

P=P+L*Y(i);

end

endfunction

3
Método de Diferencias Divididas de Newton
La forma general del polinomio interpolante de Newton para n+1 datos (x0, ƒ(x0)), (x1, ƒ(x1)), ..., (xn, ƒ(xn)) es:

Los coeficientes ai se obtienen calculando un conjunto de cantidades denominadas diferencias divididas.

En general ai = ƒ[x0 ,x1 ,x2, ..., xi], y el polinomio interpolante de Newton se escribe como:

Diferencia entre Forward y Backward

En la manera forward, se empieza con el primer valor f(x), y se utilizan las derivadas obtenidas entre los primeros valores.

En la manera backward se empieza con el último valor f(x), y se utilizan las derivadas obtenidas entre los últimos valores.

4
Scilab
function N=diferencias(xd, yd)
n=length(xd);
dfd=zeros(n,n);
dfd(:,1)=yd(:);

for j=2:n
for i=j:n
dfd(i,j)=(dfd(i,j-1)-dfd(i-1,j-1))/(xd(i)-xd(i-j+1))
end
end

N=dfd(1,1);

for i=2:n
N=N+dfd(i,i)*poly(xd(1:(i-1)),"x");
end
endfunction

5
MÉTODOS DE AJUSTE DE CURVAS

6
Mínimos Cuadrados
El método de mínimos cuadrados busca ajustar un conjunto de datos a una función continua cuadrática, con el objetivo de
minimizar el error o residuo cuadrado.

Para una función lineal de la forma y = a x + b, con un conjunto de datos aleatorios, se intenta encontrar una función de la
misma forma pero con valores calculables. Se utiliza un determinante para encontrar las nuevas variable â y b.

El error se calcula de la siguiente manera:

7
MÉTODOS PARA OPTIMAR

8
Método de Bisección
El método de bisección requiere de dos valores iniciales (a y b) que en teoría están en ambos lados de la raíz que se busca. La
función evaluada en estos valores (fa y fb) debe dar valores de signos opuestos para que el método funcione, pues sino no ex-
iste un cambio de signo, es decir, no existe una raíz entre ellos. Se obtiene un valor medio, c, entre los iniciales (sumándolos y
dividiendo entre dos), que sirve para determinar en qué ‘mitad’ del rango se encuentra la raíz. Se evalúa la función en este nuevo
valor y si tiene signo contrario a fa se convierte en el nuevo valor de b; si no tiene signo contrario a fa, se convierte en el nuevo
valor de a.

El método se detiene hasta que una de estas tres cosas suceda:

1. El valor absoluto de fc sea menor a la tolerancia especificada.

2. El valor absoluto de la diferencia del último y el penúltimo valor de c sea menor a la tolerancia.

3. Se cumpla el número máximo de iteraciones establecido.

El metodo de la biseccion fue demostrado por primera vez por Bernard Bolzano en 1817, y luego por Augustin Louis Cauchy en
1821. Bernard Bolzano fue un matemático, lógico, filósofo y teólogo bohemio que escribió en alemán y que realizó importantes
contribuciones a las matemáticas y a la Teoría del conocimiento. En el trabajo de 1817 Bolzano entendía que liberaba los
conceptos de límite, convergencia y derivada de nociones geométricas, sustituyéndolas por conceptos puramente aritméticos y
numéricos. En este trabajo hay que situar la demostración del teorema del valor intermedio con la nueva aproximación de
Bolzano, y la que también fue llamada serie de Cauchy.

9
elseif evalua(a)*evalua(c)<0 then

SCILAB disp("b cambia a c")


b=c
else
EJEMPLO:
disp("a cambia a c")
a=c
end

function [y]=evalua(x) i=i+1

y=(3*x^3)-(40*x^2)-(2400*x)-36000 end

endfunction end
raiz=[c]
endfunction

function [raiz]=biseccion2(a, b, nmax, tol)


//nmax=1000
//tol=0.001
i=1
if evalua(a)*evalua(b)>0 then
disp("no se puede")
else
while i<nmax
c=(a+b)/2
fc=evalua(c)
if abs(fc)<tol
i=nmax

10
EXCEL

11
Método de Punto Fijo
En el método de iteraciones de punto fijo se iguala la función a cero, y se despeja de cualquier manera posible una variable para
obtener otra función. En la primera iteración se elige cualquier número para x0 y se evalúa en la función original. Luego x0 se
evalúa en la nueva y se obtiene una nueva x; esta se evalúa en la función original. Se sigue el proceso para las siguientes iteracio-
nes hasta que se llega al número de iteraciones máximo permitido por el usuario, cuando el valor absoluto de la función original
evaluada es menor a la tolerancia, o cuando la diferencia absoluta entre los últimos valores consecutivos obtenidos es menor a
la tolerancia.

Se dice que el primer método iterativo apareció en una carta de Gauss a un estudiante. Proponía resolver un sistema 4 por 4 de
ecuaciones mediante la repetición de la solución del componente donde el residuo era mayor. La teoría de métodos estacionar-
ios se estableció sólidamente con el trabajo de D.M. Young, que empezó en la década de 1950. El método del gradiente conju-
gado se inventó en esa misma década, con desarrollos independientes de Cornelius Lanczos, Magnus Hestenes y Eduard
Stiefel, pero su naturaleza y aplicación se malentendieron en esa época. Sólo en la década de 1970 se puso de manifiesto que
estos métodos los cuales tienden a funcionan muy bien para resolver ecuaciones de derivadas parciales, especialmente del tipo
elíptico.

12
for j=1:i;
SCILAB printf('%2d \t %11.7f \t %7.3f \n',j-1,x(j),ea(j));
end
endfunction

function y=g(x)
y=35000/(875+40*x)
endfunction

function x=puntofijo(x0, tol)


i=1;
ea(1)=100;
x(1)=x0;

while abs(ea(i))>=tol,
x(i+1) = g(x(i));
ea(i+1) = abs((x(i+1)-x(i))/x(i+1))*100;
i=i+1;
end
printf(' i \t X(i) Error aprox (i) \n');

13
EXCEL

14
Método de la Regla Falsa
En el método de la regla falsa se hace lo mismo que en el método de la secante, sin embargo, al evaluar la función en el valor
encontrado c, se compara su signo con el de fa; si son contrarios, b toma el valor de c, si no son contrarios, a toma el valor de c.
Se itera hasta que se llega al número de iteraciones máximo permitido por el usuario, cuando el valor absoluto de la función
evaluada en c es menor a la tolerancia, o cuando la diferencia absoluta entre los últimos valores consecutivos obtenidos cn y
cn-1 es menor a la tolerancia.

Hacia el siglo XVI a.C,los egipcios agruparon 87 problemas matemáticos en un documento llamado Papiro de Ahmes. Contenía
cuestiones aritméticas, fracciones, cálculo de áreas, volúmenes, progresiones, repartos proporcionales, regla de tres,
ecuaciones lineales y trigonometría básica. Fue escrito por un escriba llamado Ahmes mucho antes de que se estableciera el
método general para la resolución de ecuaciones algebraicas de primer grado. (Al-Kwaritzmi)

15
i=i+1
SCILAB
if (f(a)=f(b)) then
Ejemplo. disp("Error")
end
end
disp(raiz))
endfunction
function [y]=funcion(x)
y=(288/x)-0.2*x +300
endfunction

function [raiz]=reglafalsa(a, b, nmax, tol)


i=2
fa=funcion(a)
fb=funcion(b)

while i<= nmax and (f(a)<>f(b);


x= a - fa*(b-a)/(fb-fa)

if (abs(x-a)<tol) or (abs(f(x))<tol) then


raiz=x
end
if fa*funcion(x)<0 then
b=x
else
a=x
16
EXCEL

17
Método de la Secante
El método de la secante requiere de dos valores iniciales (a y b), y evalúa la función con ambos valores. La fórmula utilizada para
encontrar el valor de x que se acerque a la raíz es:

Al encontrar este valor, se evalúa la función con él. Para las siguientes iteraciones a toma el valor de b, y b toma el valor de c de
la iteración anterior. Se repite el proceso hasta que se llega al número de iteraciones máximo permitido por el usuario, cuando el
valor absoluto de la función evaluada en c es menor a la tolerancia, o cuando la diferencia absoluta entre los últimos valores con-
secutivos obtenidos cn y cn-1 es menor a la tolerancia.

Es una variación del método de Newton-Raphson donde en vez de calcular la derivada de la función en el punto de estudio, se
hace una aproximación de la pendiente a la recta que une la función evaluada en el punto de estudio y en el punto de la iteración
anterior.

18
i=i+1
SCILAB
if (f(a)=f(b)) then
Ejemplo: disp("Error")
end
end
disp(raiz))

function [y]=f(x) endfunction


y=35000-875*x-40*x^2
endfunction

function [raiz]=msecante(a, b, nmax, tol)


i=2
fa=f(a)
fb=f(b)

while i<= nmax and (f(a)<>f(b))


x= a - fa*(b-a)/(fb-fa)
if (abs(x-a)<tol) or (abs(f(x))<tol) then
raiz=x
end

a=b
b=x
fa=f(b)
fb=f(x)

19
EXCEL

20
Método de Newton-Raphson
Se elige un punto o valor inicial x0 para la variable independiente, se encuentra la función evaluada en ese punto f(x0) y la deri-
vada de la función también evaluada en ese punto f’(x0). Para obtener el siguiente valor x0+1, al valor inicial se le resta la división
de la función entre su derivada. Para las siguientes iteraciones se hace lo mismo pero utilizando el último valor calculado.

Este se detiene cuando llega al número de iteraciones máximo permitido por el usuario, cuando el valor absoluto de la función
evaluada es menor a la tolerancia, o cuando la diferencia absoluta entre los últimos valores consecutivos obtenidos es menor a
la tolerancia. Además, falla cuando la derivada de la función evaluada es cero. Cuando esto sucede, en lugar de utilizar la deri-
vada f’(xn), utiliza la derivada del valor anterior f(xn-1).

El método de Newton-Raphson es llamado así por el matemático inglés Joseph Raphson (contemporáneo de Newton) quien se
hizo miembro de la Royal Society en 1691 por su libro "Aequationum Universalis", publicado en 1690. Contenía este método
para aproximar raíces. Newton en su libro Método de las fluxiones describe el mismo método, en 1671, pero no fue publicado
hasta 1736, lo que significa que Raphson había publicado este resultado 46 años antes.

21
else
disp("a cambia a c")
SCILAB a=c
end
Ejemplo: i=i+1
end
end
raiz=[c]
function [y]=evalua(x) endfunction
y=0.5*exp(-0.5*x)
endfunction

function [raiz]=biseccion2(a, b, nmax, tol)


//nmax=1000
//tol=0.001
i=1
if evalua(a)*evalua(b)>0 then
disp("no se puede")
else

while i<nmax
c=(a+b)/2
fc=evalua(c)
if abs(fc)<tol
i=nmax
elseif evalua(a)*evalua(c)<0 then
disp("b cambia a c")
b=c
22
EXCEL

23
Método de Birge-Vietta
El método de Birge-Vieta permite encontrar el resto de las raíces de la función. Requiere que se haya encontrado previamente
una buena aproximación al valor de la primera raíz (xaprox) y se aplica la siguiente función:

Se despeja q(x) utilizando división de polinomios o división sintética para reducir el grado del polinomio, y el residuo de la divi-
sión es el error del polinomio (se trabaja con aproximaciones, aunque si la raíz inicial es exacta, puede que el residuo sea cero).
Al resultado de la división se suma el residuo, e se iguala todo a cero. Se resuelve el polinomio reducido algebraicamente o con
ecuaciones generales para obtener las raíces restantes.

François Viète (1540 - 1603), fue un matemático francés, nacido en Fontenay-le-Comte. Se le considera uno de los principales
precursores del álgebra. Fue el primero en representar los parámetros de una ecuación con letras.

24
EXCEL

25
MÉTODOS PARA TRANSFORMAR

26
Método de Gauss
Johann Carl Friedrich Gauss nació el 30 de abril de 1777 en Brunswick, Alemania. Sus estudios e investigaciones pueden localiz-
arse tanto en matemáticas como en física y astronomía. Posiblemente la teoría de números sea la rama de las matemáticas en la
que la influencia ejercida por Gauss haya sido mayor. Poco después de cumplir 10 años Gauss ya había descubierto dos méto-
dos para calcular raíces cuadradas de números de 50 cifras decimales y cuentan que en esa época encontró pequeños errores
en tablas logarítmicas que cayeron en sus manos.

El método de Gauss busca obtener los valores de las variables de una ecuación lineal por medio de operaciones de renglón
simultáneas.

El objetivo de este método es una matriz del tipo:

Las transformaciones que podemos realizar en dicha matriz para transformar el sistema inicial en otro equivalente son las siguien-
tes:

• Multiplicar o dividir una fila por un número real distinto de cero.


• Sumarle o restarle a una fila otra fila.
• Sumarle a una fila otra fila multiplicada por un número distinto de cero.
• Cambiar el orden de las filas.
• Cambiar el orden de las columnas que corresponden a las incógnitas del sistema, teniendo en cuenta los cambios reali
zados a la hora de escribir el nuevo sistema equivalente.

• Eliminar filas proporcionales o que sean combinación lineal de otras.

27
suma = 0
for k = j+1:n
SCILAB
suma = suma + A(j,k)*x(k)
function solvect = gauss(A,b)
[m,n] = size(A) // Dimesiones de la matriz de entrada end
x(j) = (b(j) - suma )/A(j,j)
if (m <> n) then // Comprueba si la matriz es cuadrada end
error("La matriz no es cuadrada.")
end disp(x)
counter = 0
for i = 1:n solvect = x
counter = counter + 1 endfunction
for j = 1:n
if i == j then
A(j,:) = A(j,:)/A(i,i)
b(j,:) = b(j,:)/A(i,i)
else
A(j,:) = A(j,:) - A(i,counter)*A(j-1,i)
b(j,:) = b(j,:) - A(i,counter)*b(j-1,i)
end
disp(A)
disp(b)

end
end

for j = n:-1:1
28
EXCEL

29
Método de Gauss-Jordan
El sistema de Gauss se utiliza para resolver un sistema de ecuaciones y obtener las soluciones por medio de la reducción del
sistema dado a otro que sea equivalente en el cual cada una de las ecuaciones tendrá una incógnita menos que la anterior. La
matriz que resulta de este proceso lleva el nombre que se conoce como forma escalonada.

Este método, permite resolver hasta 20 ecuaciones simultáneas. Lo que lo diferencia del método de Gauss es que cuando se
elimina una incógnita, se eliminará de todas las ecuaciones restantes, o sea, las que anteceden a la ecuación principal así como
de las que la siguen a continuación. De esta manera el paso de eliminación forma una matriz identidad y no es necesario enton-
ces utilizar la sustitución hacia atrás para conseguir la solución.

Este método sirve para:

- Hallar una matriz escalonada reducida por renglones o una matriz identidad

- Hallar la matriz inversa

- Analizar los sistemas de ecuaciones lineales que involucran 1 o más constantes cuyos valores para el cual el sistema tiene
única solución, tiene infinitas soluciones o no tiene solución.

30
solvect = aug
SCILAB endfunction

function solvect = gaussJordan(A,b)


[m,n] = size(A) // Dimesiones de la matriz de entrada

if (m <> n) then // Comprueba si la matriz es cuadrada


error("La matriz no es cuadrada.")
end
aug = [A b]
for i = 1:n
aug(i,:) = aug(i,:)/aug(i,i)
for j = 1:n
if i <> j then
aug(j,:) = aug(j,:) - aug(j,i)*aug(i,:)
end
end
disp(aug)
end

for j = n:-1:1
suma = 0
for k = j+1:n
suma = suma + A(j,k)*x(k)
end
x(j) = (b(j) - suma )/A(j,j)
end
31
EXCEL

32
Método de Montante
El método fue descubierto en el 1973 por René Mario Montante Pardo, quien egresó de la Facultad de Ingeniería Mecánica y
Eléctrica (UANL). La característica principal del método de Montante es que trabaja con enteros, lo cual hace que el resultado
sea exacto aunque se resuelva con computadora, ya que evita que se redondeen los números. Agrega una matriz identidad, y
resuelve por medio de asignación de pivotes, con los cuales se calculan determinantes para cada posición ai,i.

33
dete = aug(1,1)
SCILAB
for i = 1:m
function solvect = montante(A,b) for j = 1:n
[m,n] = size(A) // Dimesiones de la matriz de entrada aug(i,j) = aug(i,j)/dete
end
if (m <> n) then // Comprueba si la matriz es cuadrada end
error("La matriz no es cuadrada.")
end solvect = aug
endfunction
zer = [1,0,0;0,1,0;0,0,1]
aug = [A b zer]

[m,n] = size(aug) // Dimesiones de la matriz de entrada

piv = aug(m,n)

for i = 1:m
disp(aug)
aug(i,:) = aug(i,:)
for j = 1:m
if i <> j then
aug(j,:) = (aug(i,i)*aug(j,:) - aug(j,i)*aug(i,:))/piv
end
end
piv = aug(m,n)
end
34
EXCEL

35
Descomposición LU
Su nombre se deriva de las palabras inglesas “Lower" y “Upper”, que en español se traducen como “Inferior” y “Superior”. Estu-
diando el proceso que se sigue en la descomposición LU es posible comprender el por qué de este nombre, analizando cómo
una matriz original se descompone en dos matrices triangulares, una superior y otra inferior.

El método de descomposición LU para la solución de sistemas de ecuaciones lineales debe su nombre a que se basa en la
descomposición de la matriz original de coeficientes (A) en el producto de dos matrices (L y U). L es la matriz de triangular
inferior, y U es la matriz triangular superior con todos los elementos de la diagonal principal iguales a 1.

36
EXCEL

37
Métodos Iterativos: Gauss-Seidel
Este método iterativo para resolver sistemas de ecuaciones lineales es una modificación simple al método de Jacobi. El método
hace uso inmediato de los valores de

que se hayan calculado incluyéndolos en los cálculos de las siguientes .

Teóricamente, el método de Gauss-Seidel puede ser un proceso infinito. Como el método no siempre converge, entonces otra
detención del proceso, no deseada pero posible, está determinada cuando el número de iteraciones realizadas es igual a un
número máximo de iteraciones previsto.

El método se llama así en honor a los matemáticos alemanes Carl Friedrich Gauss y Philipp Ludwig von Seidel y es similar al
método de Jacobi. Sólo fue mencionado en una carta de Gauss para uno de sus estudiantes llamado Gerling en 1823. No fue
publicado hasta 1874 por Seidel.

38
while i<it+1 & e<ea
Z(i,1)=i
SCILAB for j=1:bs(2)
Y=A(j,:)
function []=gsiedel() Z(i,j*2)=(B(1,j)-Y*X'+A(j,j)*X(1,j))/A(j,j)
A=input("Input A Matrix: ") Z(i,j*2+1)=abs((Z(i,j*2)-X(1,j))/Z(i,j*2))
B=input("Input B Vector: ") E(1,j)=Z(i,j*2+1)
X=input("Initial x values (vector): ") X(1,j)=Z(i,j*2)
e=input("Maximum error tolerance: ") end
it=input("Maximum number of iteration: ") ea=max(E)
as=size(A) i=i+1
bs=size(B) end
xs=size(X) disp("Number of iteration/x1/e1/x2/e2/.../xn/en")
E=zeros(X) disp(Z)
Z=zeros(it,as(2)*2+1) disp("Vector of final x values:")
ea=100 disp(X)
i=1
a=0 else
sun=sum(A) disp("Insert A, B and initial values again. Please.")
sub=0 end
for k=1:as(1) end
sub=sub+A(k,k) endfunction
end
Y=zeros(1,as(1))
if sun>2*sub then
disp("Insert a diagonally dominant A matrix. Please.")
else
if as(1)==bs(2) & bs(2)==xs(2) then
39
EXCEL

40
Métodos Iterativos: Gauss-Jacobi
La base del método consiste en construir una sucesión convergente definida iterativamente. El límite de esta sucesión es pre-
cisamente la solución del sistema. A efectos prácticos si el algoritmo se detiene después de un número finito de pasos se llega a
una aproximación al valor de x de la solución del sistema.

Un concepto fundamental de este método es que, al rotar la matriz para eliminar un elemento que ya sea cero, se modifican
varios elementos situados en la fila y la columna del elemento que se rota, que podían valer cero y hasta haber rotado con anteri-
oridad.

Cada vez que se rota un elemento, todos los elementos que se insertan son función de la cantidad que se elimina ponderada por
una función trigonométrica, por lo que el valor absoluto de los elementos distintos de la diagonal se reduce hasta que se consid-
era que son cero. La composición de las rotaciones genera autovectores, en donde los elementos de la diagonal principal corre-
sponden a los autovalores.

Carl Gustav Jacob Jacobi fue un destacado matématico alemán. Contribuyó en varios campos de la matemática, principalmente
en el área de las funciones elípticas, el álgebra, la teoría de números y las ecuaciones diferenciales.

Una vez en Königsberg se puso en contacto con Gauss para informarle de su trabajo sobre los residuos cúbicos y escribió a Leg-
endre acerca de sus resultados en el área de las funciones elípticas. Ambos quedaron impresionados por el talento del joven Ja-
cobi.

41
x2 = nx2
x3 = nx3
SCILAB disp(err)

function solvect = gjacobi(A,b) solvect = [x1,x2,x3]


[m,n] = size(A) // Dimesiones de la matriz de entrada
disp(solvect)
if (m <> n) then // Comprueba si la matriz es cuadrada end
error("La matriz no es cuadrada.")
end solvect = [x1,x2,x3]
endfunction
aug = [A b]

coeffs = [aug(1,1),aug(2,2), aug(3,3)]

x1 = 0
x2 = 0
x3 = 0

err = .1
while err > .00001
nx1 = (1/coeffs(1))*(aug(1,4)-aug(1,2)*x2-aug(1,3)*x3)
nx2 = (1/coeffs(2))*(aug(2,4)-aug(2,1)*nx1-aug(2,3)*x3)
nx3 = (1/coeffs(3))*(aug(3,4)-aug(3,1)*nx1-aug(3,2)*nx2)

err = sqrt((nx1-x1)^2 + (nx2-x2)^2 + (nx3-x3)^2)

x1 = nx1
42
EXCEL

43
DERIVADAS E INTEGRALES

44
Método de Simpson
En este procedimiento, se toma el intervalo de anchura 2h, comprendido entre xi y xi+2 , y se sustituye la función f(x) por la
parábola que pasa por tres puntos (xi, yi), (xi+1, yi+1), y (xi+2, yi+2). El valor del área aproximada, sombreada en la figura, se
calcula con un poco más de trabajo y el resultado es

Thomas Simpson fue un inventor y matemático inglés en el siglo XVIII. Se le conoce por sus trabajos acerca de la interpolación
e integración numérica. La regla de Simpson lleva su nombre, y se basa en conocimientos que vienen de los trabajos de Newton.

45
SCILAB
function [fInt]=Simpson(a,b,f)

N=3
h = (b-a)/N

x = [a,(a+b)/2,b]

w = [1,4,1]/6

sum1 = 0
for i=1:N
sum1 = sum1 + w(i)*f((x(i)))
end
fInt = (b-a)*sum1

endfunction

46
Método de Trapecios
Para el método de trapecios se elige un espaciado:

Luego se divide el intervalo [a, b] por medio de puntos igualmente espaciados:

Y queda que las ordenadas de dichos puntos son:

En cada intervalo (xi, xi+1) se sustituye la función f(x) por la recta que une los puntos (xi, yi) y (xi+1, yi+1) tal como se aprecia en
la figura.
La parte sombreada, un trapecio, se toma como el área aproximada, su valor se puede calcular fácilmente.

47
SCILAB

function [area]=trapecio(a, b, n)

area=0;

dx=(b-a)/n;

area=f(a);

for i=2:n

a=a+dx;

area=area+2*f(a);

end

area=area+f(a+dx);

area=area*(dx/2);

endfunction

deff('y=f(x)','y=cos(x);')

48
Integral de Riemann
Las sumas de Riemann son un método para aproximar el área total bajo la gráfica de una curva. Llevadas al límite se obtiene la
integral de Riemann.

• Si yk = xk-1 para todo k, entonces denominamos S como la suma de Riemann por la izquierda. 

• Si yk = xk, entonces denominamos S como la suma de Riemann por la derecha.

Georg Friedrich Bernhard Riemann fue un matemático alemán (siglo XIX) que contribuyó a las áreas del análisis y la geometría dif-
erencial, algunas de las cuales allanaron el camino para el desarrollo más avanzado de la relatividad general.

49
SCILAB
function [y]=h(x)
y=sqrt(x^2+7)
endfunction

function [value]=riemann(a, b, n)
value = 0
dx = (b-a)/n

for i=1:n
c=a+i*dx
value = value + h(c)
end
value = value*dx

endfunction

50
ECUACIONES DIFERENCIALES

51
Método de Euler
En matemática y computación, el método de Euler, llamado así en honor de Leonhard Euler, es un procedimiento de integración
numérica para resolver ecuaciones diferenciales ordinarias a partir de un valor inicial dado.

y′ = f(x,y)

y(x0) = y0

Se calcula el ancho:

Y se utiliza la ecuación :

Leonhard Paul Euler fue un matemático y físico suizo, introdujo gran parte de la moderna terminología y notación matemática,
particularmente para el área del análisis matemático, como por ejemplo la noción de función matemática.

52
SCILAB
function sol = euler(f)
y0 = 0.5

n = 10
a=0
b=2

w = y0
ti = 0
h = (b-a)/n

for i = 1:n
w = w + h*(f(ti,w))
ti = ti + h
disp(ti,w)
end

sol = [ti,w]
endfunction

function dydt = f(t,y)


dydt = y-t^2 +1
endfunction

53
Método de Heun
El método de Heun se basa en el método de Euler, incluso se conoce como el método de Euler Mejorado. De la misma forma,
parte de una ecuación diferencial, una condición inicial y un rango de valores para los cuáles se desea obtener la curva. Sin
embargo la fórmula que se utiliza es:

En donde sí es necesario calcular wi con el método de Euler primero, y luego proceder a calcular wi+1 con Heun.

Karl Heun estudió matemáticas y filosofía en Alemania en el siglo XIX y XX.

54
end

SCILAB sol = [wheun]


endfunction
function sol = heun(f)
y0 = 0.5
wheun = y0
weuler = y0

n = 10
a=0
b=2

ti = 0
h = (b-a)/n

y0 = f(ti,weuler)

for i = 1:n
weuler = weuler + h*(f(ti,weuler))
ti = ti + h

y1 = f(ti,weuler)

wheun = wheun + (h/2)*(y0+y1)

y0 = y1
55
Método de Runge-Kutta
Los métodos de Runge kutta tienen el error local de truncamiento o redondeo, pero prescinden del cálculo y evaluación de las
derivadas de la función f(t, y).

Se presenta de nuevo el problema de valor inicial cuya solución se intenta aproximar:

En esencia, los métodos de Runge-Kutta son generalizaciones de la fórmula básica de Euler yi+1 = yi + h f(ti, yi) en los que el
valor de la función f se reemplaza por un promedio ponderado de valores de f en el intervalo ti ≤ t ≤ ti+1.

Carle David Tolmé Runge fue un matemático, físico y espectroscopista alemán. Fue codesarrollador y co-epónimo del método
de Runge-Kutta en el campo conocido actualmente como análisis numérico.

Martin Wilhelm Kutta fue un físico y matemático alemán. En 1901 desarrolló, en colaboración con Carle David Tolmé Runge, el
método de Runge-Kutta para resolver ecuaciones diferenciales ordinarias.

56
endfunction

SCILAB
function sol = RungeKutta(f)
y0 = 0.5
w = y0

n = 10
a=0
b=2

ti = 0
h = (b-a)/n

for i = 1:n
k1 = h*f(ti,w)
k2 = h*f(ti+h/2,w+1*(k1/2))
k3 = h*f(ti+h/2,w+1*(k2/2))

ti = ti + h
k4 = h*f(ti,w+k3)

w = w + (1/6)*(k1 + 2*k2 + 2*k3 + k4)


disp(w)
end

sol = [w]
57