Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MÉTODOS NUMÉRICOS
MANUAL DE METODOS EN OCTAVE
PRIMERA EDICIÓN
INDICE
1
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
1. Método de Bisección
1.1. Definición
Este método consiste en obtener una mejor aproximación de la raíz a partir de un intervalo
inicial (a,b) en el cual hay un cambio de signo en la función, es decir: f(a)f(b)<0.
Se obtiene el punto medio:
1.2. Desarrollo
xm es la nueva aproximación a la raíz, y se vuelve a tomar un intervalo, pero ahora mas pequeño,
considerando que siga existiendo un cambio de signo en la función, es decir, el nuevo intervalo
queda determinado por:
El método termina cuando se cumple con alguna condición de paro, en este programa la condición
es la tolerancia :
Este es un método “de encierro”, para aplicarlo se debe contar con un intervalo inicial, en donde
f(a)*f(b) < 0. Este método requiere de menos pasos en un programa, sin embargo converge mas
lentamente que el de Newton-Raphson.
2.- Dividir el intervalo en dos partes iguales reteniendo la mitad en donde f(x) cambia de signo,
para conservar al menos una raíz.
2
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
3.- Repetir el procesó varias veces hasta cumplir con la tolerancia deseada.
si:
f(m) f(b)<0 entonces conservar (m,b) como el sem. intervalo que contiene al menos una raíz.
Ejemplo 1:
Hallar las raíces de la siguiente función: f(x)= 𝑋 3 − 4𝑋 2 − 10
3
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
Ejemplo 2:
Buscar la raíz de x5 - x + 3 = 0
4
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
= -1.5
-1.25
-1.375
5
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
Una de las fórmulas de error mas útiles es la del error relativo porcentual aproximado:
100 %
1.2.1. Desventajas
es un método lento.
6
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
clear
format short;
f=inline(fun);
for k=1:cont
c=(a+b)/2;
e=abs((b-a)/2);
if f(a)*f(c)<0
b=c;
else
a=c;
end
end
disp(A)
7
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
fprintf('f(c)=%8.5 f\?n',f(c))
fprintf('error=%8.5 f\n',e)
1.4. Utilidad
Así como facilitar los problemas y tener una mejor aproximación a los problemas planteados.
8
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
2. Método de Newton-Raphson.
2.1. Definición
Este es un método ampliamente usado en ingeniería para encontrar las raíces de una función
dada, ya que requiere menos iteraciones que otros métodos para encontrar la raíz o sino un
acercamiento aceptable de acuerdo a la exactitud buscada. Recordando que la raíz de una función
es el valor 𝑥𝑖 tal que 𝑓(𝑥𝑖 ) = 0.
El método se emplea proponiendo un punto 𝑥1 de la función en cuestión, si al momento de
evaluar dicho punto en la función no obtenemos cero entonces no es la raíz y procedemos con el
resto del método.
Este método es uno de los más utilizados para localizar raíces ya que en general es muy eficiente
y siempre converge para una función polinomial.
9
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
Se requiere que las funciones sean diferenciables, y por tanto, continuas, para poder aplicar este
método.
Una de las fórmulas de error mas útiles es la del error relativo porcentual aproximado:
10
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
Esto significa que el numero de cifras decimales correctas se duplica aproximadamente en cada
interacción.
Supóngase que el error en una iteración es 10-n el error en la siguiente, (que es proporcional al
cuadrado del error anterior) es entonces aproximadamente 10-2n, el que sigue será
aproximadamente 10-4n etc.
De esto puede afirmarse que de cada iteración duplica aproximadamente el numero de dígitos
correctos.
Sin embargo el método de Newton-Raphson algunas veces no converge, sino que oscila. Esto
ocurre si no hay raíz real, si la raíz es un punto de inflexión o si el valor inicial esta muy alejado de
la raíz buscada y alguna otra parte de la función “atrapa” la iteración.
11
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
derivada representa f(x)/dx , (dx = delta-x) ó dx = X1– X0. Sin embargo, el término f (x) / f `(x)
representa un valor de dx = Δx
2.2.1. Convergencia
En general, la convergencia es cuadrática: el error es esencialmente cuadrado en cada paso (es
decir, el número de dígitos exactos se duplica en cada paso). En primer lugar, el método de
Newton requiere que la derivada se calcula directamente. (Si la derivada es aproximada por la
pendiente de una recta que pasa por dos puntos de la función, el método de la secante resultados,
lo que puede ser más eficiente en función de cómo se mide el esfuerzo computacional.) En
segundo lugar, si el valor inicial es demasiado lejos de la verdad cero, el método de Newton
puede dejar de converger. Debido a esto, las implementaciones más práctica del método de
Newton poner límite al número de iteraciones y tal vez del tamaño de las iteraciones. En tercer
lugar, si la raíz que se busca tiene multiplicidad mayor que uno, la velocidad de convergencia es
meramente lineal (menor número de errores por un factor constante en cada etapa) a menos
que se tomen medidas especiales.
2.2.3. Desventajas
Aunque el método de newton en general es muy eficiente, hay situaciones en que presenta
dificultades:
-En caso especial es las raíces múltiples.
-En algunos casos es posible que para raíces simples se presenten dificultades por su lenta
convergencia.
2.2.4. Conclusión
El método de newton es eficiente en la solución de sistemas de ecuaciones no lineales, converge
muy rápidamente y proporciona una muy buena precisión en los resultados. El método se
emplea en la solución de problemas académicos y propios del mundo real.
12
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
1000
800
600
400
200
0
-200 0 2 4 6 8 10 12 14 16
-400
Primero hay que proponer el valor de 𝑥1 , para el cual podemos proponer el 12, ya que de
acuerdo a su gráfica este valor está cerca de la raíz buscada.
Ahora bien, para simplificar el proceso podemos emplear dos veces sucesivamente la división
sintética a la función con el valor anteriormente propuesto, de esta manera encontraremos
𝑓(𝑥1 ) y 𝑓´(𝑥1 ), para después emplear la fórmula de Newton-Raphson. Cabe mencionar que la
técnica de emplear Newton-Raphson mediante división sintética únicamente es aplicable para
funciones polinómicas.
1 -12.2 7.45 42
𝑥1 = 12 12 -2.40 61
1 -0.2 5.05 𝑓(𝑥1 ) = 103
1 -0.2 5.05
𝑥1 = 12 12 142
1 11.8 𝑓´(𝑥1 ) = 147
Por lo tanto:
103
𝑥2 = 12 − = 12 − 0.7 = 11.3
147
Ahora con el nuevo valor de X realizamos el mismo procedimiento.
1 -12.2 7.45 42
𝑥2 = 11.3 11.3 -10.17 -30.7
1 -0.9 -2.72 𝑓(𝑥2 ) = 11.
13
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
1 -0.9 -2.72
𝑥2 = 11.3 11.3 117.52
1 10.4 𝑓´(𝑥2 ) = 114.80
11
𝑥3 = 11.3 − = 11.3 − 0.1 = 11.2
115
Ahora corresponde evaluar el valor de 𝑥3 con la división sintética.
1 -12.2 7.45 42
𝑥3 = 11.2 11.2 -11.2 -42
1 -1 -3.75 0
Por lo tanto, ya que 𝑓(𝑥3 ) = 0, 𝑥3 = 𝑥𝑖 , y una vez que ya conocemos la primera raíz y hemos
simplificado la función mediante la división sintética podemos encontrar el resto de las raíces
mediante la fórmula general.
𝑓(𝑥) = (𝑥 − 11.2)(𝑥 2 − 𝑥 − 3.75)
𝑥 2 − 𝑥 − 3.75 = 0
Dónde:
14
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
15
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
16
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
Ahora bien, una vez realizado lo dicho deberá instalar el paquete, ingresando el siguiente
comando en la ventana de comandos de Octave: “pkg install nombre del archivo”, es decir “pkg”
siglas de pakage, “install” que es instalar en inglés, y finalmente el nombre del archivo
descargado, escriba el nombre completo del archivo sin olvidar ningún dígito.
Ya que uno haya realizado la instalación del paquete deberá cargarlo, para eso deberá ingresa el
comando de “pkg load nombre del symbolic”, esta vez bastará con que escriba el comando tal
cual se ha puesto aquí, no se olvide de que la librería donde Octave obtiene los archivos a
funcionar tenga el archivo de symbolic que se descargó. Es necesario que sepa que basta con
instalar una vez la paquetería, pero que será necesaria cargarla cada vez que abra Octave.
Una vez que usted ha realizado todo esto podrá correr el programa sin ningún problema.
Regresando a la sintaxis hay que saber que hay detalles como el uso de “*” para expresar
multiplicación, la división se puede marcar con “/”, para suma y resta basta con “+” y “-“,
respectivamente. Si ingresa coeficientes con decimales el programa marcará un mensaje de error
y demás, sin embargo el programa seguirá corriendo después de ello como debe.
17
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
3.2. Desarrollo
El método de Lin Bairstow o también nombrado el método de los factores cuadráticos tiene la
ventaja de obtener las raíces complejas de una ecuación algebraica, aunque es igual de eficiente
para obtener las raíces reales. Al igual que el método de la doble división sintética, este método es
aplicable para resolver solamente ecuaciones algebraicas.
Si se tiene una ecuación algebraica 𝑃(𝑥) = 0 donde 𝑃(𝑥) es:
𝑃(𝑥) = 𝑎0 𝑥 𝑛 + 𝑎1 𝑥 𝑛−1 + 𝑎2 𝑥 𝑛−2 + ⋯ + 𝑎𝑛−1 𝑥 + 𝑎𝑛 ……… (1)
De este polinomio se puede obtener un factor cuadrático de la forma:
𝑥 2 + 𝑝𝑥 + 𝑞
Con lo que la expresión (1) se puede expresar como:
𝑃(𝑥) = (𝑥 2 + 𝑝𝑥 + 𝑞)(𝑏0 𝑥 𝑛−2 + 𝑏1 𝑥 𝑛−3 + 𝑏2 𝑥 𝑛−4 + ⋯ + 𝑏𝑛−3 𝑥 + 𝑏𝑛−2 ) + 𝑅𝑥 + 𝑆………
(2)
Efectuando la multiplicación:
𝑃(𝑥) = 𝑏0 𝑥 𝑛 + 𝑏0 𝑝𝑥 𝑛−1 + 𝑏0 𝑞𝑥 𝑛−2 + 𝑏1 𝑥 𝑛−1 + 𝑝𝑏1 𝑥 𝑛−2 + 𝑞𝑏1 𝑥 𝑛−3 + 𝑏2 𝑥 𝑛−2 +
𝑝𝑏2 𝑥 𝑛−3 + 𝑞𝑏2 𝑥 𝑛−4 + ⋯ + 𝑏𝑛−3 𝑥 3 + 𝑝𝑏𝑛−3 𝑥 2 + 𝑞𝑏𝑛−3 𝑥 + 𝑏𝑛−2 𝑥 2 + 𝑝𝑏𝑛−2 𝑥 + 𝑞𝑏𝑛−2 +
𝑅𝑥 + 𝑆 ..... (3)
Igualando coeficientes de las mismas potencias en los segundos miembros de (1) y (3) y despejando
los coeficientes del polinomio reducido:
𝑎0 = 𝑏0 𝑏0 = 𝑎0
𝑎1 = 𝑏1 + 𝑝𝑏0 𝑏1 = 𝑎1 − 𝑝𝑏0
𝑎2 = 𝑏2 + 𝑝𝑏1 + 𝑞𝑏0 𝑏2 = 𝑎2 − 𝑝𝑏1 − 𝑞𝑏0
𝑎𝑛−1 = 𝑅 + 𝑝𝑏𝑛−2 + 𝑞𝑏𝑛−3 𝑅 = 𝑎𝑛−1 − 𝑝𝑏𝑛−2 − 𝑞𝑏𝑛−3
𝑎𝑛 = 𝑆 + 𝑞𝑏𝑛−2 𝑆 = 𝑎𝑛 − 𝑝𝑏𝑛−2
En general, los coeficientes de un polinomio están dados por:
𝑏𝑘 = 𝑎𝑘 − 𝑝𝑏𝑘−1 − 𝑞𝑏𝑘−2
18
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
𝑘 = 𝐶, 1, 2, 3, … . . (𝑛 − 2) (4)
𝑏−1 = 𝑏−2 = 0
Ahora bien, analizando la expresión (2) para que 𝑥 2 + 𝑝𝑥 + 𝑞. Sea un factor del polinomio 𝑃(𝑋),
se requiere que 𝑅 y 𝑆 sean iguales a cero, por lo tanto:
Donde p’ y q’ son los nuevos valores calculados. Considerando que estos valores están dados por
(8) y (9) respectivamente se tiene:
𝑎𝑛−1 −𝑞𝑏𝑛−3 𝑎𝑛
𝑝′ = ; 𝑞′ =
𝑏𝑛−2 𝑏𝑛−2
Sustituyendo la expresión (10). Obtenemos:
𝑎𝑛−1 −𝑞𝑏𝑛−3
∆𝑝 = −𝑝
𝑏𝑛−2
𝑎𝑛
∆𝑞 = −𝑞
𝑏𝑛−2
Simplificando:
𝑎𝑛−1 − 𝑝𝑏𝑛−2 − 𝑞𝑏𝑛−3 𝑎𝑛 − 𝑞𝑏𝑛−2
∆𝑝 = ; ∆𝑞 =
𝑏𝑛−2 𝑏𝑛−2
Como el numerador de estas ecuaciones corresponden a la de las expresiones (5), entonces:
19
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
𝑅 𝑆
∆𝑝 = ; ∆𝑞 = ……….. (11)
𝑏𝑛−2 𝑏𝑛−2
Ejemplo Numérico I. A:
Obtener las raíces complejas de la siguiente ecuación algebraica con dos cifras decimales exactos:
𝑥 4 − 𝑥 3 + 6𝑥 2 − 3𝑥 + 4 = 0
a) Factorizando 𝑃(𝑥) según la ecuación (2). Obtenemos:
𝑝= 0 −0.50
𝑞= 0 0.67
𝑎0 1 𝑏0 1
𝑎1 −1 𝑏1 −1
20
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
𝑎2 6 𝑏2 6
𝑎3 −3 𝑅 −3
𝑎4 4 𝑆 4
∆𝑝= −0.50
∆𝑞 = 0.67
21
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
Ejemplo II.A
El sistema mostrado en la figura, el cual consiste en tres reactores en serie, será controlado en
“feedback” con un controlador Proporcional-Derivada-Integral (PDI). Se piden las raíces de la
ecuación característica.
F0 F1 F2 F3
𝑑𝐶𝐴1 𝐾+1 1
+[ ] 𝐶𝐴1 = [ ]𝐶𝐴0
𝑑𝑡 𝜏 𝜏
𝑑𝐶𝐴2 𝐾+1 1
+[ ] 𝐶𝐴2 = [ ]𝐶𝐴1
𝑑𝑡 𝜏 𝜏
𝑑𝐶𝐴3 𝐾+1 1
+[ ] 𝐶𝐴1 = [ ]𝐶𝐴2
𝑑𝑡 𝜏 𝜏
22
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
En notación de operadores:
3
𝐾+1 2 𝐾+1 𝐾+1 3 1
[𝐷 + 3 [ ]𝐷 + 3[ ]𝐷 + [ ] ]𝐶𝐴3 = [ ]3 𝐶𝐴0
𝜏 𝜏 𝜏 𝜏
1
𝐶𝐴3 [ ]3 CA3(S)
CA0(S) 𝐺(𝑆) = = 𝜏
𝐶𝐴0 𝐾+1 3
[𝑆 + [ ] ]
𝜏
Cuando se agrega el elemento controlador PID la nueva representación del proceso es:
1
𝐶𝐴3 8
𝐺(𝑆) = =
CA CA0 (S) 𝐶𝐴0 [𝑆 + 1]3 CA3 (S)
-1
CA3
Donde: B(S)
𝜏𝐼 𝑆 + 1 𝜏𝐷 𝑆 + 1
𝐵(𝑆) = 𝐾𝐶 . .
𝜏𝐼 𝑆 [ 𝜏𝐷 ] 𝑆 + 1
20
Con lo que la ecuación característica del sistema controlado es:
1 + 𝐵(𝑆)𝐺𝑀 (𝑆) =
𝑆+1 1
𝜏𝐼 𝜏𝐷 𝑆+1 20 60 60 20𝐾𝐶
1 + 𝐾𝐶 . 𝜏 . 8
𝑆 5 + [3 + 𝜏 ] 𝑠 4 + [3 + 𝜏 ] 𝑠 3 + [1 + 𝜏 + ]𝑆 2
𝑆 [ 𝐷 ]𝑆+1 [𝑆+1]3 𝐷 𝐷 𝐷 8
20
20 20𝐾𝐶 1 1 20𝐾𝐶
[ + ( + )] 𝑆 + 𝜏 𝜏 = 0
𝜏𝐷 8 𝜏𝐷 𝜏 𝐼 8 𝐷 𝐼
23
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
Cuyas raíces son: (encontradas con el método de Lin- Bairstow y con error de bN y bN-1 aceptado
como 10-16).
CASO I
PARTE REAL PARTE IMAGINARIA
-0.17748 1.10189
-0.17748 -1.10189
-0.42220 0.00000
-2.21993 0.00000
-44.44735 0.00000
CASO II
-0.48779 0.54676
-0.48779 -0.54676
-0.93064 1.71573
-0.93064 -1.71573
-22.38536 0.00000
CASO III
PARTE REAL PARTE IMAGINARIA
-0.42397 0.00000
-0.62796 0.00000
-0.73085 2.20080
-0.73085 -2.20080
-11.59747 0.00000
24
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
a0=0;
a1=0;
a2=0;
a3=-4;
a4=-15;
a5=4;
p=0;
q=0;
Tol=0.0000000001;
b0=a0;
b1=a1-b0*p;
b2=a2-b1*p-b0*q;
b3=a3-b2*p-b1*q;
b4=a4-b3*p-b2*q;
b5=a5-b3*q;
p0=(a4-q*b2)/b3;
q0=a5/b3;
p1=b4/b3;
q1=b5/b3;
while (p1<Tol & q1<Tol)
b0=a0;
b1=a1-b0*p0;
b2=a2-b1*p0-b0*q0;
b3=a3-b2*p0-b1*q0;
b4=a4-b3*p0-b2*q0;
b5=a5-b3*q0;
p0=(a4-q0*b2)/b3;
q0=a5/b3;
p1=p0-p1;
q1=q0-q1;
end
x1=(-p0+sqrt(p0^2-4*q0))/2;
25
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
x2=(-p0-sqrt(p0^2-4*q0))/2;
fprintf('La raiz x1 de la ecuacion es: \n %3.4f\n',x1);
fprintf('La raiz x2 de la ecuacion es: \n %3.3f\n',x2);
26
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
La base del método consiste en construir una sucesión convergente definida iterativamente. El
límite de esta sucesión es precisamente 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.
4.2. Desarrollo
En la iteración de Jacobi, se escoge una matriz Q que es diagonal y cuyos elementos diagonales son
los mismos que los de la matriz A. La matriz Q toma la forma:
Qx(k) = (Q-A)x(k-1) + b
27
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
El producto de la matriz Q por el vector columna x(k) será un vector columna. De modo análogo,
el producto de la matriz R por el vector columna x(k-1) será también un vector columna. La
expresión anterior, que es una ecuación vectorial, se puede expresar por n ecuaciones escalares
(una para cada componente del vector). De este modo, podemos escribir, para un elemento i
cualquiera y teniendo en cuenta que se trata de un producto matriz-vector:
Si tenemos en cuenta que en la matriz Q todos los elementos fuera de la diagonal son cero, en el
primer miembro el único término no nulo del sumatorio es el que contiene el elemento diagonal
qii, que es precisamente aii. Más aún, los elementos de la diagonal de Rson cero, por lo que podemos
eliminar el término i=j en el sumatorio del segundo miembro. De acuerdo con lo dicho, la
expresión anterior se puede reescribir como:
que es la expresión que nos proporciona las nuevas componentes del vector x(k) en función de
vector anterior x(k-1) en la iteración de Jacobi. En la figura (14) se presenta un algoritmo para el
método de Jacobi..
28
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
29
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
3 x + 12 y − z = − 2
11 x − 4 y + 3 z = − 3
−3 x − 2 y − 12 z = − 2
Con el orden y → x → z el sistema y su matriz de coeficientes quedan:
12 y + 3 x − z = − 2 − 4 y + 11 x + 3 z = − 3 − 2 y − 3 x − 12 z = −2
x1=0
x2=0
x3=0
6x1 + 2x2 + x3 = 22
-x1 + 8x2 + 2x3 = 30
x1 - x2 + 6x3 = 23
Solución:
30
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
2. Para un vector inicial (0; 0; 0) hallo los valores de x1, x2, x3.
4. Así sucesivamente sustituimos los valores de la primera iteración en las ecuaciones para seguir
a los valores de las variables.
31
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
32
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
33
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
32. Aquí se redefine el valor de z con la fórmula de Jacobi pertinente, imprimiendo el resultado
en pantalla.
33. Aquí se calcula el valor de “s” evaluando una de las tres ecuaciones con los valores de x, y
y z que se obtuvieron en esa iteración.
34. Aquí se redefine el valor del “error” como el valor absoluto de s.
35. Aquí se le da final a las acciones que se repiten en el bucle iniciado en la linea de código 29.
34
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
5.1. Definición
En análisis numérico el método de Gauss-Seidel es un método iterativo utilizado para resolver
sistemas de ecuaciones lineales. 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.
Aunque este método puede aplicarse a cualquier sistema de ecuaciones lineales que produzca una
matriz (cuadrada, naturalmente pues para que exista solución única, el sistema debe tener tantas
ecuaciones como incógnitas) de coeficientes con los elementos de su diagonal no-nulos, la
convergencia del método solo se garantiza si la matriz es diagonalmente dominante o si es
simétrica y, a la vez, definida positiva.
El método de Gauss-Seidel es el más comúnmente usado para resolver sistemas muy grandes de
ecuaciones lineales.
5.2. Desarrollo
Es una modificación del método de Jacobi que hace que la convergencia sea más rápida.
Comienza con una aproximación inicial x (0) a la solución x y genera una sucesión de vectores x
(k) que convergen a la solución x.
Un sistema de ecuaciones algebraicas lineales es un conjunto de ecuaciones de la forma:
:: :: ::
35
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
36
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
La ecuacion anterior nos permite saber el margen de error para cada valor del vector columna.
37
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
38
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
39
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
- qrst (x) el cual sirve para poder obtener el valor de la raíz cuadrada de un número.
• Se toman las aproximaciones iniciales para hallar las nuevas aproximaciones, teniendo en
cuenta el fundamento del método.
• En cada paso, es posible calcular el error, que es este caso está definido en normas (las
cuales son infinitas).
40
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
6.1. Definición
Se trata de un procedimiento basado en la derivada, para encontrar aproximaciones a las raíces
de una función real de variable real que sea derivable. Es muy útil en análisis numérico, sobre
todo para aproximar raíces de polinomios en los cuales los métodos conocidos no funcionan (por
ejemplo:
6.2. Desarrollo
Este método sirve inclusive para aproximar valores como por ejemplo:
encontrando de manera aproximada las raíces de las siguientes ecuaciones
Sea una función derivable, de la cual sabemos que tiene una raíz en dicho
intervalo y queremos encontrar una aproximación que nos satisfaga.
(1)
• Esta recta debe intersecar al eje de las x, en un punto , más cercano a la raíz buscada.
• Así, el punto satisface la ecuación (1) y sustituyendo, queda:
41
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
(2)
42
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
syms x y z
A =[x^3,y^3,-z^3,-129] % A = [x^3,y^3,-z^3,-129];
B =[x^2,y^2,-z^2,-9.75] % B = [x^2,y^2,-z^2,-9.75];
C =[x,y,-z,-9.49] % C = [x,y,-z,-9.49];
FunA=x^3+y^3-z^3-129;
FunB=x^2+y^2-z^2-9.75;
FunC=x+y-z-9.49;
fin1=inline('x^3+y^3-z^3-129');
fin2=inline('x^2+y^2-z^2-9.75');
fin3=inline('x+y-z-9.49');
l1=inline('3*x^2');
l2=inline('3*y^2');
l3=inline('-3*z^2');
m1=inline('2*x');
m2=inline('2*y');
m3=inline('-2*z');
n1=inline('1');
n2=inline('1');
n3=inline('1');
n=1;
43
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
f1=-1*fin1(x,y,z);
f2=-1*fin2(x,y,z);
f3=-1*fin3(x,y,z);
F = [f1;f2;f3];
o1=3*x^2;
o2=3*y^2;
o3=-3*z^2;
p1=2*x;
p2=2*y;
p3=-2*z;
q1=1;
q2=1;
q3=-1;
Dev=[o1,o2,o3;p1,p2,p3;q1,q2,q3];
Inversa= inv(Dev);
H = Inversa*F;
h1 = H(1,1);
h2 = H(2,1);
h3 = H(3,1);
E(n,:)=[n x y z f1 f2 f3 h1 h2 h3];
x = x + h1;
y = y + h2;
z = z + h3;
n = n + 1;
end
x = x;
y = y;
z = z;
fprintf('\n\tInter \tx \ty \tz \tf1 \tf2 \tf3 \th1 \th2 \th3 \n')
disp(E);
fprintf('\n');
fprintf('El valor de x = %.5f\n',x);
fprintf('El valor de y = %.5f\n',y);
fprintf('El valor de z = %.5f\n',z);
44
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
7.1 Definición.
En el subcampo matemático del análisis numérico, se denomina interpolación a la obtención de
nuevos puntos partiendo del conocimiento de un conjunto discreto de puntos.
Dada una función y una correspondiente data se llama interpolación polinomial al
proceso de encontrar un polinomio de grado menor o igual a la cantidad de datos, tal
que , es decir, que el polinomio tome como puntos de apoyos las abscisas
de la data, y que pase por cada una de las ordenadas. En todo caso, se trata de, a partir de n parejas
de puntos, obtener una función f que verifique a la que se denomina función interpolante de dichos
puntos, a los cuales llamaremos nodos.
7.2 Desarrollo del método.
Las funciones polinomiales son una de las técnicas más utilizadas para ajustar una cantidad de
datos y conocer su comportamiento. Este grupo de funciones son descritas como:
Es necesario especificar que es un entero positivo, y que los coeficientes son constantes
reales. El grado del polinomio es . Este tipo de funciones pueden aproximar uniformemente
funciones continuas, es decir, dada una función definida y continua en un intervalo cerrado, existe
un polinomio que es muy cercano a la función dada.
7.2.1 Newton.
Se basa en la obtención de un polinomio a partir de un conjunto de puntos dado, aproximándose
lo más posible a la curva buscada.
La ecuación general para la obtención de la función por este método es:
Donde las “bi” se obtienen mediante la aplicación de una serie de funciones incluidas en una tabla
de diferencias.
Suponiendo que tenemos 4 puntos, la tabla de diferencias tiene la siguiente forma:
45
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
7.2.2 Lagrange.
Un polinomio de interpolación de Lagrange, p, se define en la forma:
46
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
x 5 -7 -6 0
y 1 -23 -54 -954
47
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
48
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
49
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
8.1. Definición
Las fórmulas de derivación numérica son importantes en el desarrollo de algoritmos para resolver
problemas de contorno de ecuaciones diferenciales ordinarias y ecuaciones en derivadas parciales.
8.2. Desarrollo
Las aproximaciones numéricas que podamos hacer (para h > 0) serán: Diferencias hacia adelante:
Segunda diferencia:
50
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
Segunda diferencia:
51
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
52
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
53
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
54
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
55
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
56
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
3er EJERCICIO
Para la función definida en forma tabular:
Obtener:
F’(2,0) a partir de un esquema de interpolación de segundo orden. El punto pivote para este cálculo
es (2,0, 14,7781). Para la elección de una de las tres fórmulas disponibles dentro del esquema de
interpolación de segundo orden debe contemplarse que de acuerdo a la posición del punto pivote
en la función tabular se dispone de puntos hacia atrás y hacia adelante del mismo. De acuerdo a
las recomendaciones, cabe elegir una fórmula de diferencias centrales:
F'(2,2) a partir de un esquema de interpolación de segundo orden. De nuevo, por la ubicación del
punto pivote sólo es posible utilizar una fórmula de diferencias finitas hacia atrás, siendo la
fórmula:
57
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
58
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
2. clc, clear
4. x = sym("x")
5. f = sym("f")
9. fx = function_handle (f);
10. q = n + k;
11. w = n + (2*k);
12. R= (-3*fx(n)+4*fx(q)-fx(w))/(2*k);
13. e = k * k * 100;
59
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
8.3.2 Recomendaciones.
• Para el uso del programa copie el código dado, quitando la enumeración del código, pegue
el código en la ventana de edición, guárdelo con un nombre en alguna carpeta de la librería
que tiene en uso para su Octave.
60
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
Octave, la cual hay que descargar y cargar dentro del programa para poder hacer uso de
algunas herramientas empleadas dentro del código del programa aquí presente.
Primero tendrá que descargar el archivo de “symbolic bundle” para Octave, este archivo
se puede encontrar en el siguiente sitio web
(https://github.com/cbm755/octsympy/releases) como “symbolic-win-py-bundle-
2.7.0.zip”. Una vez descargado guarde el archivo comprimido en alguna carpeta dentro de
la librería que este en uso en su Octave, dicha librería se puede cambiar a gusto siempre.
Ahora bien, una vez realizado lo dicho deberá instalar el paquete, ingresando el siguiente
comando en la ventana de comandos de Octave: “pkg install nombre del archivo”, es decir
“pkg” siglas de pakage, “install” que es instalar en inglés, y finalmente el nombre del
archivo descargado, escriba el nombre completo del archivo sin olvidar ningún caracter.
Ya que uno haya realizado la instalación del paquete deberá cargarlo, para eso deberá
ingresa el comando de “pkg load symbolic”, esta vez bastará con que escriba el comando
tal cual se ha puesto aquí, no se olvide de que la librería donde Octave obtiene los archivos
a funcionar tenga el archivo de symbolic que se descargó. Es necesario que sepa que basta
con instalar una vez la paquetería, pero que será necesaria cargarla cada vez que abra
Octave.
Una vez que usted ha realizado todo esto podrá correr el programa sin ningún problema.
61
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
9.1 Definición.
En los cursos de Cálculo Integral aprendemos a calcular una integral definida de una función
continua haciendo uso del Teorema Fundamental del Cálculo que dice que si f(x) es una función
continua en un intervalo [a, b] y F(x) es una anti derivada de f(x) entonces:
b
∫f(x)dx=F(b)−F(a)
a
El problema en la práctica se presenta, cuando se nos hace imposible mediante métodos analíticos
determinar la anti derivada requerida, aun cuando se trate de integrales aparentemente sencillas
que son imposibles de resolver con el Teorema Fundamental del Cálculo.
En estos casos, debemos de recurrir a la integración numérica que permite obtener
aproximaciones bastantes exactas y que se pueden resolver con el uso de asistentes matemáticos
como Máxima, Derive, Mathematica, entre otros.
62
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
63
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
En la gráfica se muestra una parábola que aproxima a una función real. Observe que se calcula el
área o la integral bajo la parábola que pasa por los tres puntos.
𝑏
ℎ 𝑏−𝑎
∫ 𝑓(𝑥)𝑑𝑥 ≈ [𝑓(𝑎) + 4𝑓(𝑥𝑚) + 𝑓(𝑏)], 𝑐𝑜𝑛 ℎ =
𝑎 3 2
9.2.3 Desventajas.
La precisión del resultado es directamente proporcional al número de intervalos en que se divida
el intervalo original, por lo que muchas veces es necesario realizar operaciones repetitivas lo que
hace a estos métodos bastantes tediosos.
9.2.4 Conclusión.
La necesidad de aproximar numéricamente el valor de una integral surge por dos motivos
fundamentalmente: la dificultad o imposibilidad en el cálculo de una primitiva, o bien, la función
a integrar solo se conoce por una tabla de valores.
64
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
Para estos casos, los métodos de integración numérica son sumamente útiles, ya que nos permite
resolver dichas integrales, que muchas veces se encuentran en el campo laboral; por ejemplo: en
el cálculo de cargas, áreas, presión hidrostática, etc.
65
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
66
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
Lo que hicimos fue declarar las variables básicas con su respectivo valor para poder darle
estructura al código. Un ejemplo seria: A=2;
A es el nombre de la variable y para el programa de octave a y A son distintas.
El signo igual (=) se utiliza igual que en matemáticas.
2 es el valor que le damos a la variable A.
La función del punto y coma (;) es la de omitir el valor de la variable en pantalla.
Se usó un operador matemático como:
exp (x), su función es calcular el valor de la constante e elevado a una potencia x elegida por el
usuario o aquel que realizo el código
Ademas de con la ayuda de ^ seguido del numero podemos elevar un numero a cualquier potencia.
No olvidar que los paréntesis nos indican que acción se llevara a cabo de adentro hacia afuera y si
en dado caso hay operadores aritméticos dentro de estos primero se realizaran las operaciones
según la jerarquía y despues seguirán la jerarquía de los paréntesis.
Línea 22-23 del código.
En estos renglones se declaran de nueva cuenta variables, y también se utilizan operadoras
aritméticos en donde:
67
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
68
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
10.2. Desarrollo
Considere el problema de calcular la pendiente de una curva desconocida que comienza en un
punto dado y satisface una cierta ecuación diferencial dada. Se puede pensar en la ecuación
diferencial como una fórmula que nos permite calcular la pendiente de la recta tangente a la curva
en cualquier punto de la curva, una vez que el punto ha sido calculado.
La idea es que a pesar de que la curva es desconocida en un principio, su punto de comienzo, al
cual denotamos por A0, es conocido. Entonces, de la ecuación diferencial se puede calcular la
pendiente de la curva en el punto A0 y por lo tanto la recta tangente a la curva.
Ahora, dando un pequeño paso sobre dicha recta, podemos tomarnos un nuevo punto A1 y suponer
que dicho punto pertenece a la curva, entonces seguimos el mismo razonamiento aplicado
anteriormente y volvemos a calcular la pendiente de la recta tangente a la curva en el punto A1.
Luego de varios pasos tendremos formada una curva poligonal A0A1A2A3... En general esta curva
que obtenemos al aplicar el método no diverge lejos de la curva original, además el error entre
ambas curvas se puede minimizar si se dan pasos muy pequeños al avanzar sobre la recta tangente
a la curva y además el intervalo sobre el que trabajamos es finito (aunque las cosas son más
complicadas para ecuaciones inestables, como se discute más abajo)...
10.3. Pasos
Método que realiza la solución de ecuaciones diferenciales de primer orden. Como los métodos
anteriores, tienen un salto constante ℎ .
Para la solución de este problema, la ecuación diferencial se pone de la forma:
69
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
y’(x)=f[x,y] … … … … … (1)
f[x,y]= Función de dos variables, ya que se encuentran involucradas 2 variables 𝑥 y 𝑦.
De la primera ecuación se transforma a una función discreta es decir.
y’(x)=f[x,y] --->f[x,y]=f[xn,yn] … … … … … (2)
f[xn,yn]= 𝒙𝒏= Siempre serán conocidos, ya que el salto será conocido. Ejemplo se h=0.1, significa
que dando un valor inicial se ira evaluando datos que corresponden al salto.
Sabiendo que la derivada es igual a la pendiente de la recta tangente.
𝑦𝑛+1−𝑦𝑛
Y’(x)= … … … … … (3)
ℎ
Sustituyendo (2) y (3) en la ecuación 1. Se tiene.
𝑦𝑛+1−𝑦𝑛
=f[xn,yn]
ℎ
Yn+1=Valor que desea conocer, por lo cual se tendrá que despejar.
Yn+1=h*f[xn,yn]+yn
Y2=h*f[x1,y1]+y1
10.4. Ejemplos
70
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
71
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
10.6. Descripción
El programa resolverá el problema planteado en el ejemplo, para comprobar que es cierto, usando
la ecuación, el intervalo a evaluar, h & y.
El programa se ejecutará con while, y terminará hasta que se cumpla
72
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
11.1. Definición
Los métodos de Runge-Kutta son una serie de métodos numéricos usados para
encontrar aproximaciones de las soluciones de ecuaciones diferenciales y sistemas de
ecuaciones diferenciales, lineales y no lineales.
11.2. Desarrollo
Son métodos numéricos que para avanzar un paso, sólo dependen del paso anterior, es
decir el paso n+1 solo depende del paso n o, con más precisión, son métodos de la forma.
A este método se le conoce también como Euler modificado. Es igual que el método de
Euler mejorado pero en la ecuación de la pendiente no se despeja , sino que se
evalúa en la ecuación de Euler sin mejorar.
73
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
11.3. Funcionamiento
1. Poner de la forma:
Considérese
Podemos simplificar la
fórmula de recurrencia a
Ejemplo:
Pasar a la forma .
74
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
k4 = eval(funcao);
xt = a+i*h;
yt = yt+h/6*(k1+2*(k2+k3)+k4);
disp([ i xt yt]);
end
75
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
12.1. Definición
Una serie de Taylor es una aproximación de funciones mediante una serie de potencias o suma d
e potencias enteras de polinomios como (𝑥 − 𝑎)𝑛 {\displaystyle (x-a)^{n}}(((llamados términos
de la serie, dicha suma se calcula a partir de las derivadas de la función para un determinado valo
r o punto 𝑎 a suficientemente derivable sobre la función y un entorno sobre el cual converja la se
rie. A la serie centrada sobre el punto cero 𝑎 = 0, se le denomina también serie de McLaurin.
Esta aproximación tiene tres ventajas importantes:
-la derivación e integración de una de estas series se puede realizar término a término, que result
an operaciones triviales;
-se puede utilizar para calcular valores aproximados de funciones;
-es posible calcular la optimidad de la aproximación.
12.2. Desarrollo
Algunas funciones no se pueden escribir como serie de Taylor porque tienen alguna singularidad.
En estos 3casos normalmente se puede conseguir un desarrollo en serie utilizando potencias neg
ativas de x
La serie de Taylor de una función es a menudo útil en situaciones físicas donde se desee obtener
el valor aproximado de la función alrededor del punto de expansión x0. Se puede evaluar término
a término en términos de las derivadas de la función. Es típico que los términos sucesivos en una
aproximación en serie de una función sean cada vez más y más pequeños, y cuando el valor del
siguiente término se considere despreciable en términos del problema que se aborda, entonces
uno puede juzgar que se ha logrado una aproximación suficientemente exacta de la función.
Es frecuente el caso donde un conveniente punto de expansión es x0 = 0, y la serie alrededor de
este punto de expansión especial se le llama también serie de Maclaurin. Hay muchas aplicaciones
para expansiones de funciones comunes alrededor de x=0.
76
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
Lo que pretende conseguirse con una serie de Taylor es aproximar una función cualquiera (f(x))
por un polinomio (la serie). Salvo que f(x) sea de entrada un polinomio, nuestra aproximación
nunca será exacta (a no ser que usemos polinomios con infinitos términos, asunto del que
hablaremos más adelante)… ¡ya empezamos con las chapuzas! Ante este problema, tenemos que
escoger un punto alrededor del cual queremos que nuestra aproximación sea lo más acertada
posible. Este es el punto que hemos llamado x0 en la ecuación anterior.
Para que nuestro polinomio aproximante en torno a x0 sea digno de ese nombre, como poco,
tendrá que ser igual a la función en dicho punto, ¿no? Esto equivale a que el polinomio p(x) cumpla
la siguiente condición:
El caso más simple que verifica la ecuación anterior es un polinomio de orden 0, esto es, un polin
omio constante. Gráficamente vemos que nuestra aproximación es muy simplona:
77
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
¿Cómo podríamos mejorarla? Por ejemplo, haciendo que la recta sea tangente a la curva en el
punto. Gráficamente:
Pero, ¿por qué detenerse aquí?, ¿qué pasa si exigimos también igualdad en las segundas
derivadas? Es decir, algo cómo:
Echando un vistazo al gráfico vemos que, en efecto, igualar las segundas derivadas mejora nuestra
aproximación:
78
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
syms x
fprintf ("SERIE DE TAYLOR \n \n ")
fx = input ("Ingrese la funcion f(x) en terminos de x para procesar: \n f(x)= "); % funcion
a = input ("\n Ingrese el primer termino de la aproximacion 'a': \n a = "); % valor x0
r = input ("\n Ingrese el rango de evaluacion (Escriba entre corchetes [a,b]): \n r= "); % rango
n = input ("\n Ingrese el grado 'n' del polinomio de Taylor (T_n): \n n= "); % grado
m=0;
fy=subs(fx,a);
while m<=n
m=m+1;
df=diff(fx,m);
q= (subs(df,a))/(prod(1:m));
p=(x-a).^m;
fprintf(" El polinomio de Taylor de grado %d aproximado a f(x) es: \n ", m)
fy = fy + q*p
end
79
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
13.2. Desarrollo
El primer paso para la aplicación del método consiste en discretizar el recinto del plano en el que
se quiere resolver la ecuación con una malla, por conveniencia cuadrada. Los puntos de la malla
están separados una distancia h en ambas direcciones x e y.
80
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
por lo tanto:
Condición de convergencia:
a. Instante t = 0:
u0,0 = f(x0) = 2 - |x0 - 2| = 2 - |0 - 2| = 0 = f(x4)
u1,0 = f(x1) = 2 - |x1 - 2| = 2 - |1 - 2| = 1 = f(x3)
u2,0 = f(x2) = 2 - |x2 - 2| = 2 - |2 - 2| = 2
b. Instante t=1:
ui,1 = a2·(ui-1,0+ui+1,0)/2 + (1 - a2)·ui,0 + k·g(xi)
donde a2 = 1/4, 1 - a2 = 3/4:
u1,1 = (1/4)(u0,0 + u2,0)/2 + (3/4)u1,0 =
81
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
Procediendo análogamente
82
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
2. clc, clear;
8. p = i;
9. q = j;
10. U = zeros(i,j)
11. for i = 1 : 1 : i
12. for j = 1 : 1 : j
13. if ( i == 1)
16. endif
17. if (j == 1)
20. endif
21. if(j == q)
24. endif
25. if(i == p)
83
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
27. endif
28. endfor
29. endfor
30. U(i,j)
32. n = 1;
33. while(n<m)
34. for i = 1 : 1 : i
35. for j = 1 : 1 : j
36. if (i ~= 1)
37. if ( j ~= 1)
38. if ( i ~= p)
39. if ( j ~= q)
41. endif
42. endif
43. endif
44. endif
45. endfor
46. endfor
47. n = n + 1;
48. endwhile
49. U(i,j)
84
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
85
UNIVERSIDAD AUTÓNOMA DE CHIAPAS
FACULTAD DE INGENIERÍA CIVIL
MÉTODOS NUMERICOS
MANUAL DE PROGRAMAS EN OCTAVE
32. Se solicita el valor de la variable “m” que será el número de iteraciones para el próximo
ciclo.
33. Se define a la variable “n” como 1.
34. Se inicia el ciclo while que se repetirá siempre y cuando “n” sea menor a “m”.
35. Se inicia el ciclo que se repetirá “i” veces.
36. Se inicia el ciclo que se repetirá “j” veces.
37. Se inicia la decisión que se cumple si “i” es diferente a 1.
38. Se inicia la decisión que se cumple si “j” es diferente a 1.
39. Se inicia la decisión que se cumple si “i” es diferente a su valor máximo “p”.
40. Se inicia la decisión que se cumple si “j” es difirente a su valor máximo “q”.
41. Se expresa la ecuación despejada de las relaciones de los valores de la malla de un EDP de
Laplace.
42. Se termina la decisión iniciada en 40
43. Se termina la decisión iniciada en 39.
44. Se termina la decisión iniciada en 38.
45. Se termina la decisión iniciada en 37.
46. Se termina el ciclo iniciado en 36.
47. Se termina el ciclo iniciado en 35.
48. Se redefine a la variable n, como la suma de su valor anterior más uno.
49. Se termina el ciclo iniciado en 34.
50. Se imprime en pantalla la matriz “U”, con los valores de frontera ingresados en un inicio
y ahora también con los valores calculados de los puntos dentro de la malla definida para
el problema.
86