Anda di halaman 1dari 12

Metodos Numericos (2001852)

II Semestre 2011

Laboratorio # 0

Profesor: Camilo Cubides

Nombre:

Codigo:

Nombre:

Codigo:

Calificacion:

1. Implementar en SciLab una funcion que permita calcular el epsilon de la maquina.


La funcion de SciLab debe tener el siguiente encabezado:
function UN_epsilon
La funcion debe imprimir una tabla de los calculos parciales, donde aparezca el
n
umero de la iteracion y la aproximacion parcial al epsilon de la maquina, que
imprima 16 dgitos de la aproximacion parcial.
2. Implementar en SciLab una funcion que permita calcular la raz cuadrada de un
n
umero positivo a utilizando la aproximacion xk+1 = 12 xk + xak , tal que el valor
inicial sea x0, el error relativo iterativo sea menor que eps y el n
umero maximo de
iteraciones sea M. La funcion de SciLab debe tener el siguiente encabezado:
function r = UN_raiz_cuadrada(a, x0, eps, M)
La funcion debe imprimir una tabla de los calculos parciales, donde aparezca el
n
umero de la iteracion, la aproximacion parcial de la raz y el error relativo iterativo.
Al terminar de ejecutar la funcion, se debe informar si se tuvo exito o fracaso durante
la evaluacion y cual fue la mejor aproximacion encontrada.
3. Implementar en SciLab una funcion que permita evaluar un polinomio utilizando el
metodo de Horner. La funcion de SciLab debe tener el siguiente encabezado:
function px = UN_horner(A, x)
donde x es el valor a evaluar y A es el vector de coeficientes del polinomio, para el
cual la primera componente define el coeficiente principal y el u
ltimo el coeficiente
constante del polinomio.

4. Implementar en SciLab una funcion que permita hallar un vector que represente
la derivada de un polinomio, cuyos coeficientes esten especificados en un vector A
para el cual la primera componente define el coeficiente principal del polinomio y
el u
ltimo el coeficiente constante del polinomio. La funcion de SciLab debe tener el
siguiente encabezado:
function dp = UN_derivada_poli(A)
5. Implementar en SciLab una funcion que permita calcular una aproximacion de la
funcion exponencial evaluada en x, para esto use un metodo iterativo que calcule las
sumas parciales de la serie de Taylor de la funcion exp(x), tal que el error relativo
iterativo sea menor que eps y el n
umero maximo de iteraciones sea M. La funcion
de SciLab debe tener el siguiente encabezado:
function ex = UN_exp(x,eps,M)
La funcion debe imprimir una tabla de los calculos parciales, donde aparezca el
n
umero de la iteracion, la aproximacion parcial de exp(x) y el error relativo iterativo.
Al terminar de ejecutar la funcion, se debe informar si se tuvo exito o fracaso durante
la evaluacion y cual fue la mejor aproximacion encontrada.

Metodos Numericos (2001852)

II Semestre 2011

Laboratorio # 1

Profesor: Camilo Cubides

Nombre:

Codigo:

Nombre:

Codigo:

Calificacion:

4
Nota: para las funciones que se solicita se programen a continuacion en SciLab, se debe
utilizar, s se necesitan, el metodo de evaluacion de Horner y del calculo de la derivada de
un polinomio, programados en el laboratorio # 0.
1. Implementar en SciLab una funcion que permita calcular una raz real por el metodo
de biseccion, de un polinomio p(x) cuyos coeficientes esten especificados en un vector
A para el cual la primera componente define el coeficiente principal del polinomio
y el u
ltimo el coeficiente constante del polinomio, a es el extremo izquierdo y b es
el extremo derecho del intervalo cerrado donde se desea hallar la raz, eps es la
precision deseada y M es el n
umero maximo de iteraciones. Para la detencion del
es el valor de la i-esima
algoritmo, se debe tener que |p(r)| < eps cuando r = a+b
2
aproximacion encontrada. La funcion de SciLab debe tener el siguiente encabezado:
function r = UN_biseccion(A, a, b, eps, M)
La funcion debe imprimir una tabla de los calculos parciales, donde aparezca el
n
umero de la iteracion, el extremo izquierdo del intervalo, el extremo derecho
del intervalo, el valor r = +
la aproximacion parcial de la raz, p(r) la evaluacion
2
del polinomio en el valor r y |p(r)| el error absoluto. Al terminar de ejecutar la
funcion, se debe informar si se tuvo exito o fracaso durante la evaluacion y cual fue
la mejor aproximacion encontrada.
2. Implementar en SciLab una funcion que permita calcular una raz real por el metodo
de la regla falsa, de un polinomio p(x) cuyos coeficientes esten especificados en
un vector A para el cual la primera componente define el coeficiente principal del
polinomio y el u
ltimo el coeficiente constante del polinomio, a es el extremo izquierdo
y b es el extremo derecho del intervalo cerrado donde se desea hallar la raz, eps es
la precision deseada y M es el n
umero maximo de iteraciones. Para la detencion del
algoritmo, se debe tener que |p(r)| < eps cuando r = a+b
es el valor de la i-esima
2
aproximacion encontrada. La funcion de SciLab debe tener el siguiente encabezado:

function r = UN_regla_falsa(A, a, b, eps, M)


La funcion debe imprimir una tabla de los calculos parciales, donde aparezca el
n
umero de la iteracion, el extremo izquierdo del intervalo, el extremo derecho
del intervalo, el valor r = +
la aproximacion parcial de la raz, p(r) la evaluacion
2
del polinomio en el valor r y |p(r)| el error absoluto. Al terminar de ejecutar la
funcion, se debe informar si se tuvo exito o fracaso durante la evaluacion y cual fue
la mejor aproximacion encontrada.
3. Implementar en SciLab una funcion que permita calcular una raz real por el metodo
de Newton-Raphson, de un polinomio p(x) cuyos coeficientes esten especificados en
un vector A para el cual la primera componente define el coeficiente principal del
polinomio y el u
ltimo el coeficiente constante del polinomio, x0 es el valor inicial, eps
es la precision deseada y M es el n
umero maximo de iteraciones. Para la detencion
del algoritmo, se debe tener que |p(xi )| < eps cuando xi es el valor de la i-esima
aproximacion encontrada. La funcion de SciLab debe tener el siguiente encabezado:
function r = UN_newton(A, x0, eps, M)
La funcion debe imprimir una tabla de los calculos parciales, donde aparezca el
n
umero de la iteracion, el valor xi de la aproximacion parcial de la raz, p(r) la
evaluacion del polinomio en el valor r = xi y |p(r)| el error absoluto. Al terminar de
ejecutar la funcion, se debe informar si se tuvo exito o fracaso durante la evaluacion
y cual fue la mejor aproximacion encontrada.
4. Implementar en SciLab una funcion que permita calcular una raz real por el metodo
de la secante, de un polinomio p(x) cuyos coeficientes esten especificados en un vector
A para el cual la primera componente define el coeficiente principal del polinomio y
el u
ltimo el coeficiente constante del polinomio, x0 es un valor inicial, x1 es el otro
valor inicial, eps es la precision deseada y M es el n
umero maximo de iteraciones.
Para la detencion del algoritmo, se debe tener que |p(xi+1 )| < eps cuando xi+1 es el
valor de la i-esima + 1 aproximacion encontrada. La funcion de SciLab debe tener
el siguiente encabezado:
function r = UN_secante(A, x0, x1, eps, M)
La funcion debe imprimir una tabla de los calculos parciales, donde aparezca el
n
umero de la iteracion, xi el valor i-esimo de las aproximaciones de la raz, xi+1 el
valor i-esimo + 1 de las aproximaciones de la raz, p(r) la evaluacion del polinomio
en el valor r = xi+1 y |p(r)| el error absoluto. Al terminar de ejecutar la funcion, se
debe informar si se tuvo exito o fracaso durante la evaluacion y cual fue la mejor
aproximacion encontrada.

Metodos Numericos (2001852)

II Semestre 2011

Laboratorio # 2

Profesor: Camilo Cubides

Nombre:

Codigo:

Nombre:

Codigo:

Calificacion:

1. Implementar en SciLab una funcion que permita hallar la solucion de un sistema de


la forma AX = B donde A es una matriz triangular superior no singular (es decir
invertible) y B un vector columna, mediante el metodo de sustitucion regresiva. El
encabezado de la funcion debe ser el siguiente
function X = UN_sustitucion_regresiva(A,B)
2. Implementar en SciLab una funcion que permita hallar la solucion de un sistema de
la forma AX = B donde A es una matriz triangular inferior no singular y B un
vector columna, mediante el metodo de sustitucion progresiva. El encabezado de la
funcion debe ser el siguiente
function X = UN_sustitucion_progre(A,B)
3. Implementar en SciLab una funcion que calcule un sistema U X = C equivalente al
sistema AX = B donde A es una matriz no singular, U es una matriz triangular
superior, y el sistema U X = C se halle mediante la eliminacion de Gauss aplicada
sobre el sistema AX = B. El encabezado de la funcion debe ser el siguiente
function [U,C] = UN_eliminacion_gauss(A,B)
Para obtener la matriz triangular, es necesario implementar un pivoteo parcial escalonado, es decir, dada una columna q, si se desea convertir a cero los elementos de
la misma columna por debajo de la fila q-esima, entonces, se busca la fila k-esima
tal que
|akq | = max{|aqq |, |aq+1q |, . . . , |aN 1q |, |aN q |}
y se intercambia la fila q-esima por la fila k-esima, y luego s se procede a convertir
a cero los valores por debajo de la diagonal en la columna q.

4. Implementar en SciLab una funcion que permita factorizar en la forma LU una


matriz A, donde A es una matriz no singular, L es una matriz triangular inferior
y U es una matriz triangular superior. El encabezado de la funcion debe ser el
siguiente
function [L,U] = UN_factorizacion_LU(A)
5. Implementar en SciLab una funcion que permita hallar la solucion del sistema
LU X = B, donde L es una matriz triangular inferior, U es una matriz triangular
superior y B un vector columna. Utilice primero el metodo de sustitucion progresiva
para solucionar el sistema LY = B y luego utilice el metodo de sustitucion regresiva para solucionar el sistema U X = Y . El encabezado de la funcion debe ser el
siguiente
function X = UN_solucion_LU(L,U,B)
Notas para la programaci
on:
Dadas dos matrices A y B del mismo n
umero de filas, en SciLab se puede
obtener la matriz (aumentada) en la cual las columnas de B se encuentren a
continuacion de las de A mediante la orden:
[A B]
Dada una matriz A, en SciLab la suma del producto de una fila i por una
constante k con la fila j, dejando el resultado en la fila j se puede hacer as
A(j,:) = A(j,:) + k*A(i,:)
Dada una matriz A, para obtener una submatriz B de la matriz A se puede
utilizar la orden
B = A(i:j,m:n)
donde i j y m n, y la i corresponde a la fila inicial de la matriz B, j
corresponde a la fila final de la matriz B, la m corresponde a la columna inicial
de la matriz B, n corresponde a la columna final de la matriz B, esto dentro
de la matriz A.

Metodos Numericos (2001852)

II Semestre 2011

Laboratorio # 3

Profesor: Camilo Cubides

Nombre:

Codigo:

Nombre:

Codigo:

Calificacion:

1. Implementar en SciLab una funcion que permita realizar la interpolacion mediante


el metodo de interpolacion de Lagrange. El encabezado de la funcion debe ser el
siguiente:
function fx = UN_Inter_Lagrange(X,Y,x)
los parametros X, Y y x, son: el vector de las abscisas de los nodos, el vector las
ordenadas de los nodos y el valor a interpolar o extrapolar, respectivamente.
2. Implementar en SciLab una funcion que permita realizar la interpolacion mediante
el metodo de interpolacion de Newton. El encabezado de la funcion debe ser el
siguiente:
function fx = UN_Inter_Newton(X,Y,x)
los parametros X, Y y x, son: el vector de las abscisas de los nodos, el vector las
ordenadas de los nodos y el valor a interpolar o extrapolar, respectivamente.

Metodos Numericos (2001852)

II Semestre 2011

Laboratorio # 4

Profesor: Camilo Cubides

Nombre:

Codigo:

Nombre:

Codigo:

Calificacion:

4
Nota: para los programas que se deben desarrollar a continuacion y que requieran resolver
sistemas de ecuaciones lineales, es necesario utilizar las funciones de eliminacion de Gauss
desarrolladas en el laboratorio sobre resolucion de sistemas lineales.
1. Implementar en SciLab una funcion que permita obtener la mejor linea recta
(y = Ax + B) que se ajuste al conjunto de puntos (xi , yi ), donde, los valores estaran especificados en los vectores X = [x1 , x2 , . . . , xn ] y Y = [y1 , y2 , . . . , yn ]. El
encabezado de la funcion debe ser el siguiente:
function [A,B] = UN_ajuste_lineal(X,Y)
2. Implementar en SciLab una funcion que permita obtener la mejor funcion potencial
(y = AxM ) que se ajuste al conjunto de puntos (xi , yi ), donde, los valores estaran
especificados en los vectores X = [x1 , x2 , . . . , xn ] y Y = [y1 , y2 , . . . , yn ] y M es un
valor constante. El encabezado de la funcion debe ser el siguiente:
function A = UN_ajuste_potencial(X,Y,M)
3. Implementar en SciLab una funcion que permita obtener la mejor funcion exponencial (y = CeAx ) que se ajuste al conjunto de puntos (xi , yi ), donde, los valores
estaran especificados en los vectores X = [x1 , x2 , . . . , xn ] y Y = [y1 , y2 , . . . , yn ], la
obtencion de los parametros se debe hacer por el metodo de linealizacion de los
datos. El encabezado de la funcion debe ser el siguiente:
function [A,C] = UN_ajuste_exponecial(X,Y)
4. Implementar en SciLab una funcion que permita obtener la mejor curva parabolica
(y = Ax2 + Bx + C) que se ajuste al conjunto de puntos (xi , yi ), donde, los valores
estaran especificados en los vectores X = [x1 , x2 , . . . , xn ] y Y = [y1 , y2 , . . . , yn ]. El
encabezado de la funcion debe ser el siguiente:
function [A,B,C] = UN_ajuste_parabolico(X,Y)

Metodos Numericos (2001852)

II Semestre 2011

Laboratorio # 4

Profesor: Camilo Cubides

Nombre:

Codigo:

Nombre:

Codigo:

Calificacion:

4
Nota: Para las siguientes funciones que deben ser programas en SciLab, debe suponerse
que previamente existe cargada una funcion f en el sistema SciLab definida as:
function fx = f(x)
. . .
endfunction
sobre esta funcion es sobre la cual se hallaran sus derivadas y por lo tanto los calculos
puntuales deben hacerse sobre esta funcion.

df
1. Implementar en SciLab una funcion que permita obtener la primera derivada dx
de la funcion f en x, utilizando la formula centrada de orden O(h2 ). El encabezado
de la funcion debe ser el siguiente:
function dfh2 = UN_primera_derivada_h2(x,h)
donde x es el valor para el cual se quiere calcular la derivada y h es el incremento
diferencial.

df
2. Implementar en SciLab una funcion que permita obtener la primera derivada dx
de la funcion f en x, utilizando la formula centrada de orden O(h4 ). El encabezado
de la funcion debe ser el siguiente:
function dfh4 = UN_primera_derivada_h4(x,h)
donde x es el valor para el cual se quiere calcular la derivada y h es el incremento
diferencial.
2 
3. Implementar en SciLab una funcion que permita obtener la segunda derivada ddxf2
de la funcion f en x, utilizando la formula centrada de orden O(h2 ). El encabezado
de la funcion debe ser el siguiente:
function d2fh2 = UN_segunda_derivada_h2(x,h)

donde x es el valor para el cual se quiere calcular la derivada y h es el incremento


diferencial.
2 
4. Implementar en SciLab una funcion que permita obtener la segunda derivada ddxf2
de la funcion f en x, utilizando la formula centrada de orden O(h4 ). El encabezado
de la funcion debe ser el siguiente:
function d2fh4 = UN_segunda_derivada_h4(x,h)
donde x es el valor para el cual se quiere calcular la derivada y h es el incremento
diferencial.

Metodos Numericos (2001852)

II Semestre 2011

Laboratorio # 6

Profesor: Camilo Cubides

Nombre:

Codigo:

Nombre:

Codigo:

Calificacion:

2
Nota: Para las siguientes funciones que deben ser programas en SciLab, debe suponerse
que previamente existe cargada una funcion f en el sistema SciLab definida as
function fx = f(x)
. . .
endfunction
sobre esta funcion es sobre la cual se hallara la integral entre los lmites a y b, por lo tanto
los calculos puntuales deben hacerse sobre esta funcion.
1. Implementar en SciLab una funcion que permita obtener la integral de una funcion
f desde un punto a hasta un punto b, utilizando la aproximacion del trapecio. El
encabezado de la funcion debe ser el siguiente
function T = UN_integral_trapecio(a,b,n)
donde a es el lmite inferior de la integral, b es el lmite superior de la integral y n
es el n
umero de particiones del intervalo [a, b].
2. Implementar en SciLab una funcion que permita obtener la integral de una funcion
f desde un punto a hasta un punto b, utilizando la aproximacion de 1/3 de Simpson.
El encabezado de la funcion debe ser el siguiente
function S = UN_integral_simpson(a,b,n)
donde a es el lmite inferior de la integral, b es el lmite superior de la integral y n
es el n
umero de particiones del intervalo [a, b].
Nota: no olvide que para el caso de la aproximacion de 1/3 de Simpson, el n
umero
de las particiones se debe duplicar, es decir, el n
umero real de particiones es 2n.

Metodos Numericos (2001852)

II Semestre 2011

Laboratorio # 7

Profesor: Camilo Cubides

Nombre:

Codigo:

Nombre:

Codigo:

Calificacion:

2
Nota: Para las siguientes funciones que deben ser programas en SciLab, debe suponerse
que previamente existe cargada una funcion f (miembro derecho de la ecuacion diferencial)
en el sistema SciLab definida as:
function dy = f(t,y)
. . .
endfunction
sobre esta es sobre la cual se haran los calculos para aproximar la ecuacion diferencial.
1. Implementar en SciLab una funcion que permita obtener una aproximacion a la
solucion y de la ecuacion diferencial y 0 = f (t, y) en el intervalo [t0 , tn ] con condicion
inicial y(t0 ) = y0 , utilizando el metodo de Euler. El encabezado de la funcion debe
ser el siguiente:
function E = UN_ecuacion_diferencial_Euler(t0,y0,tN,n)
donde t0 es t0 , y0 es y0 , tN es tn el punto donde se desea calcular la aproximacion
de y y n es el n
umero de particiones que definen h (el tama
no del paso).
2. Implementar en SciLab una funcion que permita obtener una aproximacion a la
solucion y de la ecuacion diferencial y 0 = f (t, y) en el intervalo [t0 , tn ] con condicion
inicial y(t0 ) = y0 , utilizando el metodo de Runge-Kutta de orden 4. El encabezado
de la funcion debe ser el siguiente:
function RK4 = UN_ecuacion_diferencial_RK4(t0,y0,tN,n)
donde t0 es t0 , y0 es y0 , tN es tn el punto donde se desea calcular la aproximacion
de y y n es el n
umero de particiones que definen h (el tama
no del paso).