Está en la página 1de 11

Apuntes de métodos numéricos

2o de I.T.I.S.

Alexandre González Rodrı́guez


http://alex.rianxosencabos.com
Índice general

1. Métodos de regresión 2
1.1. Regresión lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Regresión polinomial . . . . . . . . . . . . . . . . . . . . . . . . . 2

2. Métodos de interpolación 3
2.1. Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. Lagrance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3. Métodos de integración 5
3.1. Método del trapecio . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2. Método del trapecio con segmentos múltiples . . . . . . . . . . . 5
3.3. Simpson 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.4. Simpson 13 con segmentos múltiples . . . . . . . . . . . . . . . . . 6
3.5. Simpson 38 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.6. Simpson 38 con segmentos múltiples . . . . . . . . . . . . . . . . . 6

4. Métodos de resolución de ecuaciones lineales o métodos de


cálculo de raı́ces 7
4.1. Cerrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.1.1. Método de la bisección . . . . . . . . . . . . . . . . . . . . 7
4.1.2. Método de la regla falsa . . . . . . . . . . . . . . . . . . . 8
4.2. Métodos abiertos . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.2.1. Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . 8
4.2.2. Método de la secante . . . . . . . . . . . . . . . . . . . . . 8

1
Resumen

Con los métodos numéricos intentaremos acortar el rango de error que con los
métodos analı́ticos es mucho mayor.
Sección 1

Métodos de regresión

1.1. Regresión lineal


Nos dan unos puntos y nuestra misión es calcular una recta que se aproxime
lo máximo a todos estos puntos.

a0 = ȳ − a1 x̄
P P P
n · (xi · yi ) − ( xi · yi )
a1 = P P
n · (xi 2 ) − (xi )2 )

1.2. Regresión polinomial


A partir de unos puntos queremos trazar una lı́nea que se aproxime a todos
ellos.
X X X X X
a0 n + a1 xi + a2 xi 2 + a3 xi 3 + . . . + an xi n = (yi · xi 0 )
|{z}
1

Aumentamos un grado la ecuación:


X X X X X
a0 xi + a1 xi 2 + a2 xi 3 + . . . + an xi n+1 = (yi · xi 1 )

..
.
X X X X X
a0 xi n + a1 xi n+1 + a2 xi n+2 + . . . + an xi 2n = (yi · xi n )
NOTA: El grado del polinomio siempre será el número de puntos menos 1.

¿Cuando se utiliza regresión lineal y cuando po-


linomial?
Utilizaremos regresión lineal cuandos lo puntos dados sean dispersos. Es decir
no lleven una estructura ascendente ni descendente. Utilizaremos la polinomial
cuando si la lleven.

2
Sección 2

Métodos de interpolación

Consigue lo que no consigue la regresión. Partes de unos datos concretos y


puede calcularunos nuevos de forma exacta.

2.1. Newton
n
X i−1
Y
fn (x) = ai (x − xj )
i=0 j=0

fn (x) = a0 +a1 (x−x0 )+a2 (x−x0 )(x−x1 )+. . .+an (x−x0 )(x−x1 ) . . . (x−xn−1 )

a0 = f (x0 )
f (x1 ) − f (x0 )
a1 = f [x1 , x0 ] =
x1 − x0
  
f (x2 )−f (x1 ) f (x1 )−f (x0 )
x2 −x1 x1 −x0
a2 = f [x2 , x1 , x0 ] =
f (x2 ) − f (x0 )

Algoritmo de Newton implementado en C


1 #include <stdio.h>
2 #define long_matrix 100
3

4 int introduce(float px[],float py[]){


5 int n,i;
6 printf("\n...
7

8 --- INTRODUCIR DATOS ---


9 }
10

11 float resolver (float px[],float pd[],int n_ele, float pp) {

3
12 float acumulador, resultado=0;
13 int i,f
14

15 for (i=0;i<n_ele;i++){
16 acumulador=1;
17

18 for(j=0;j<i;j++) {
19 acumulador=acumulador*(pp-px[j]);
20 }
21 resultado=resultado+(pd[i]+acumulador);
22 }
23 return resultado;
24 }
25

26 void diferencia(float px[],float py[],float pd[],int n_ele){


27 int j=0,i=0;
28

29 while(i<n_ele){
30 pd[j]=py[i];
31 for(;i<n_ele;i++){
32 py[i]=((py[i+1]-py[i])/px[i]+(j+1)-px[1]);
33 }
34 n_ele--;
35 j++;
36 i=0;
37 }
38 }

2.2. Lagrance
n n
X Y x − xj
fn (x) = f (x)
i=0
xi − xj
j=0,j6=i

x − x1 x − x2 x − xn x − x0
fn (x) = · ... · f (x0 ) + ...
x0 − x1 x0 − x2 x0 − xn x1 − x0
x − x2 x − xn x − x0 x − x1 x − xn−1
... f (x1 ) + . . . + ··· ... f (xn )
x1 − x2 x1 − xn xn − x0 xn − x1 xn − xn−1

4
Sección 3

Métodos de integración

3.1. Método del trapecio


Trazamos una lı́nea entre f (a) y f (b) y calculamos el área del trapecio re-
sultante. Z a
f (b) − f (a)
f (x) dx ' (b − a)
b 2

3.2. Método del trapecio con segmentos múlti-


ples

Z b Z x1 Z x2 Z b
f (x) dx = f (x) dx + f (x) dx + . . . + f (x) dx '
a a x1 x4
" n−1
#
h X
' f (a) + f (b) + 2 f (xi )
2 i=1

n = Número de segmentos
b−a
h=
n
x1 = a + h
x2 = x1 + h

1
3.3. Simpson 3
Gracias a los métodos de interpolación podemos trazar una curva entre los
dos puntos para reducir el error.

5
Este método en comparación con el anteriro (trapecio) consigue mayro apro-
ximación utilizando menor número de puntos porque se ajusta mejor a la curva
que el método del trapecio en el cual se usan lı́neas rectas.
Z b Z b
h
f (x) dx ' f2 (x) dx ' [f (a) + f (b) + 4f (xi )]
a a 3
b−a
La h es igual a 2 .

1
3.4. Simpson 3 con segmentos múltiples
El número de segmentos tiene que ser par.
 
n−2 n−1
h X X
I' f (a) + f (b) + 2 f (xi ) + 4 f (xi )
3 i=2, i par i=1, i impar

3
3.5. Simpson 8

Z b Z b
f (x) dx ' f3 (x) dx '
a a
3h
' [f (a) + f (b) + 3f (x1 ) + 3f (x2 )]
8
b−a
La h es igual a 3 .

3
3.6. Simpson 8 con segmentos múltiples
El número de segmentos tiene que ser múltiplo de 3.
 
n−1 n−3
3h  X X
I' f (a) + f (b) + 3 f (xi ) + 2 f (xi )
8
i=1, i no multiplo 3 i=3, i multiplo 3

6
Sección 4

Métodos de resolución de
ecuaciones lineales o
métodos de cálculo de raı́ces

4.1. Cerrados
Los métodos cerrados tiene que cumplir el teorema de Bolzano1 .

4.1.1. Método de la bisección


1. Comprobamos si se cumple Bolzano: f (a) · f (b) < 0
b−a
2. Xr − 2 + a, es decir, punto medio

3. Se hace la siguiente comprobación:


Si (f (Xr ) · f (a) < 0) → b = Xr
si no si (f (Xr ) · f (b) < 0) → a = Xr
si no Xr =raiz

Repetimos hasta que Xr sea raı́z.

Algoritmo de la bisección implementado en C


1 float f(float x){
2 }
3

4 float biseccion(float a,float b){


5 if (f(a)*f(b)<0){
6 float xr;
7 do {
8 xr=((b-a)/2)+a;
1 Toda f (x) que sea continua y derivable en un intervalo [a, b] si cambia de signo dentro del

intervalo tiene al menos una raı́z.

7
9 if (f(a)*f(xr)<0){
10 b=xr;
11 } else if(f(b)*f(xr)<0){
12 a=xr;
13 }
14 } while (f(xr) != 0);
15 return (xr);
16 }
17 }

4.1.2. Método de la regla falsa

f (a) f (b)
= ⇒ f (a)(Xr − b)) = f (b)(Xr − a) ⇒
Xr − a Xr − b
⇒ f (a)Xr − f (a)b = f (b)Xr − f (b)a ⇒ Xr (f (a) − f (b)) = f (a)b − f (b)a ⇒
f (a)b − f (b)a
⇒ Xr =
f (a) − f (b)

4.2. Métodos abiertos


Se parte de un punto nc que tiene que cumplir Bolzano.

4.2.1. Newton-Raphson
a
f 0 (a) = ⇒ (a − Xr )f 0 (a) = f (a) ⇒
a − Xr
f (a) f (a)
⇒ a − Xr = ⇒ Xr = a − 0
f 0 (a) f (a)
Si f (Xr ) 6= 0, a = Xr y seguimos hasta que f (Xr ) sea igual a 0.

4.2.2. Método de la secante


Entre Xr y el intervalo se puede crear otro punto que quede más cerca de la
raı́z.
f (a) − f (Xr )
f 0 (x) =
a − Xr
f (Xr ) f (Xr )
X r2 = X r − ⇒ X r2 = X r − ⇒
f 0 (Xr ) f (a)−f (Xr )
a−Xr

f (Xr )a − f (Xr )Xr


⇒ X r2 = X r −
f (a) − f (Xr )

8
Algoritmo de la secante implementado en C
1 double secante(double a, double b, double err){
2 double res,ant;
3 res=a;
4 do {
5 ant=res;
6 res=(a-(f(a)*(b-a))/(f(b)-f(a)));
7 a=b;
8 b=res;
9 } while (fabs((res-ant)/res)>err);
10 return res;
11 }

También podría gustarte