2Eva_IT2009_T3_MN Asignar presupuesto a comunidades aledañas

2da Evaluación I Término 2009-20010. ICM02188 Métodos Numéricos

Tema 3 (30 puntos) En una región se han agregado 4 nuevas comunidades a las 8 comunidades existentes. Estas 8 comunidades existentes reciben anualmente recursos monetarios (miles de dólares) como se indica en el cuadro adjunto.

Las 4 nuevas comunidades deberá recibir una cantidad de dinero igual al promedio de las comunidades ubicadas inmediatamente a su alrededor. Estos valores se los ha representado por x1, x2, x3, x4 y deben ser calculados:

48.2 53.4 x4
40.5 x1 65.1
x2 58.0 42.6
55.4 x3 70.8

a. Plantee un sistema de ecuaciones para representar y resolver este problema.

b. Determine si el método iterativo de Jacobi convergerá. Justifique su respuesta.

c. Comience con un vector nulo y calcule la solución hasta obtener un decimal de precisión. Use el método iterativo de Gauss-Seidel. Escriba los resultados intermedios.

2Eva_IT2009_T2_MN Longitud de perfil de la plancha

2da Evaluación I Término 2009-20010. ICM02188 Métodos Numéricos

Tema 2 (30 puntos). plancha Techo Ondulada
En el techado de las casas se utilizan planchas corrugadas con perfil ondulado.

Cada onda tiene la forma
f(x) = sen(x)
con un periodo de 2π pulgadas.

El perfil de la plancha tiene 8 ondas y la longitud L de cada onda se puede calcular con la siguiente integral:

L = \int_0^{2\pi} \sqrt{1+(f'(x))^2} \delta x

Este integral no puede ser calculado por métodos analíticos.

Encuentre la longitud del perfil de la plancha. Use la fórmula de Simpson con m=6 para calcular L.

 

2Eva_IT2009_T1_MN Demanda de producto por semana

2da Evaluación I Término 2009-20010. ICM02188 Métodos Numéricos

Tema 1 (40 puntos). Los siguientes datos representan la medición de la demanda f de un producto durante cinco semanas consecutivas:

t = [ 1,  2,  3,  4,  5]
f = [24, 45, 62, 65, 58]

Use todos los datos proporcionados para calcular los siguientes resultados y estimar el error en sus respuestas:

a. Encuentre la demanda en la semana 3.5

b. Determine el día en que la demanda fue  50

c. En qué día se tuvo la mayor demanda.

1Eva_IT2009_T2_MN Costos de producción y presupuesto

1ra Evaluación I Término 2009-2010. 7/Julio/2009. ICM02188 Métodos Numéricos

Tema 3. (40 puntos) Una empresa produce por semana tres productos P1, P2 y P3. Cada producto registra costo de materia prima M1 y costo de manufactura M2. El costo en dólares para obtener cada unidad de producto se describe en el siguiente cuadro:

P1 P2 P3
M1 2 4 5
M2 8 1 2

La cantidad de dinero presupuestada por semana es de 400 dólares para la materia prima y 200 dólares para manufactura. Estos valores deben usarse completamente cada semana.

a. Plantee un sistema de ecuaciones lineales para determinar la cantidad producida de cada producto. Use el método de Gauss-Jordan para reducir el sistema a su forma escalonada con 1’s en la diagonal hasta donde sea posible. Use dos decimales en los cálculos.

b. Encuentre la variable libre, asignando un valor t. Exprese  la solución (cantidad de unidades producidas de cada producto) en términos de la variable libre t y determine su dominio.

c. Si x1, x2, x3 representan la cantidad de unidades producidas por semana y se conoce que el costo de transporte por semana está dato por la función

f(t) = 2( x_1)^2 + 4(x_2)^2 +3(x_3)^2

encuentre el valor de t para el cual el costo de trasporte semanal es mínimo. Con éste valor, indique cuál debe ser el nivel de producción semanal de los tres productos para minimizar costos.

 

1Eva_IT2009_T3_MN Interpolar contagios por virus

1ra Evaluación I Término 2009-2010. 7/Julio/2009. ICM02188 Métodos Numéricos

Tema 3. (30 puntos) gripecontagio01
Suponga que el siguiente modelo f(x) describe la cantidad de personas que son infectadas por un virus

f(x) = a x + b x^2 + c e^{0.1x}

en donde x es tiempo en días. Los coeficientes a, b, c  deben determinarse.

Se conoce que la cantidad de personas infectadas registradas son:

x 0 5 10
f(x) 1 4 20

a. Plantee un sistema de ecuaciones lineales.

b. Resuelva el sistema para determinar los coeficientes

c. Use el modelo f(x) para determinar el día que la cantidad de personas infectadas por el virus sea 1000. Obtenga la solución con el método de la Bisección.

Previamente encuentre un intervalo de convergencia y obtenga la respuesta con un decimal exacto.

Muestre los valores intermedios calculados hasta llegar a la solución.

s3Eva_IT2009_T3 Integrar Simpson compuesta

Ejercicio: 3Eva_IT2009_T3 Integrar Simpson compuesta

La fórmula a integrar es:

\int_0^1 \frac{\cos (2x)}{x^{1/3}} \delta x

Que tiene la forma:

da como resultado:

el área bajo la curva es:  0.879822622256

Algoritmo en Python

# 3Eva_IT2009_T3 Integrar Simpson compuesta
import numpy as np
import matplotlib.pyplot as plt

funcionx = lambda x: np.cos(2*x)/(x**(1/3))

# INGRESO
a = 0.00001
b = 1
tramos = 10000

# PROCEDIMIENTO
h = (b-a)/tramos
x = a
area = 0
for i in range(0,tramos,2):
    deltaA = (h/3)*(funcionx(x)+4*funcionx(x+h)+funcionx(x+2*h))
    area = area + deltaA
    x = x + 2*h
    
# para la gráfica
xi = np.linspace(a,b,tramos+1)
fxi = funcionx(xi)

print('el área bajo la curva es: ', area)

# Gráfica
plt.plot(xi,fxi)
plt.title('Funcion a integrar')
plt.grid()
plt.xlabel('x')
plt.show()

Tarea: convertir a función el cálculo de Simpson

s1Eva_IT2009_T2 Materiales y Productos 3×4

Ejercicio: 1Eva_IT2009_T2 Materiales y Productos 3×4

Con los datos de la tabla se plantean las ecuaciones:

P1 P2 P3 P4
M1 0.2 0.5 0.4 0.2
M2 0.3 0 0.5 0.6
M3 0.4 0.5 0.1 0.2

La cantidad disponible de cada material es: 10, 12, 15 Kg respectivamente, los cuales deben usarse completamente.

1. Plantear el sistema de ecuaciones

0.2 x_0 + 0.5 x_1 + 0.4 x_2 + 0.2 x_3 = 10 0.3 x_0 + 0 x_1 + 0.5 x_2 + 0.6 x_3 = 12 0.4 x_0 + 0.5 x_1 + 0.1 x_2 + 0.2 x_3 = 15

Observe que hay más incógnitas que ecuaciones.

Para equiparar las ecuaciones con el número de incógnitas, podríamos suponer que uno de los productos NO se fabricará. por ejemplo el producto x3 que podría hacerse igual a cero. Supone que la variable libre es x3 .

Para mantener la forma de las ecuaciones para otros valores de x3, se pasa la variable y su coeficiente a la derecha.

\begin{cases} 0.2 x_0 + 0.5 x_1 + 0.4 x_2 = 10 - 0.2 x_3 \\ 0.3 x_0 + 0 x_1 + 0.5 x_2 = 12 - 0.6 x_3 \\ 0.4 x_0 + 0.5 x_1 + 0.1 x_2 = 15 - 0.2 x_3 \end{cases}

Para analizar el ejercicio, se supondrá que el valor de x3 = 0, lo que permite usar el modelo del problema como A.X=B .En caso de que x3 sea diferente de cero,  el vector B modifica, y se puede proceder con el sistema de ecuaciones.

2. Convertir a la forma matricial AX = B

Siendo así, suponiendo que x3 = 0, el ejercicio se puede desarrollar usando:

\begin{pmatrix} 0.2 && 0.5 &&0.4 &&10 \\ 0.3 && 0. && 0.5 && 12.\\ 0.4 && 0.5 && 0.1 && 15. \end{pmatrix}

que de debe pivotear por filas antes de aplicar cualquier método de solución, primero se intercambian la primera y última filas para que el primer valor de la diagonal sea el mayor en la columna.

\begin{pmatrix} 0.4 && 0.5 && 0.1 && 15. \\ 0.3 && 0. && 0.5 && 12. \\0.2 && 0.5 &&0.4 &&10 \end{pmatrix}

luego se repite el proceso a partir de la diagonal en la fila segunda, columna segunda, que al tener un valor de 5  en la tercera fila que es mayor que 0, se intercambia la fila segunda con la tercera

\begin{pmatrix} 0.4 && 0.5 && 0.1 && 15. \\0.2 && 0.5 &&0.4 &&10 \\ 0.3 && 0. && 0.5 && 12. \end{pmatrix}

Para el proceso de eliminación hacia adelante se tiene:

para pivote[0,0] = 0.4,

fila = 0 vs fila 1:
pivote = 0.4, factor = 0.2/0.4 = 0.5

\begin{pmatrix} 0.4 && 0.5 && 0.1 && 15. \\0 && 0.25 &&0.35 &&2.5 \\ 0.3 && 0. && 0.5 && 12. \end{pmatrix}

fila = 0 vs fila 2:
pivote = 0.4, factor = 0.3/0.4 = 0.75

\begin{pmatrix} 0.4 && 0.5 && 0.1 && 15. \\0 && 0.25 &&0.35 &&2.5 \\ 0 && -0.375 && 0.425 && 0.75 \end{pmatrix}

y luego para pivote [1,1]

fila = 1 vs fila 2:

pivote = 0.25, factor =-0.375/0.25 = -1.5

\begin{pmatrix} 0.4 && 0.5 && 0.1 && 15. \\0 && 0.25 &&0.35 &&2.5 \\ 0 && 0. && 0.95 && 4.5 \end{pmatrix}

Para eliminación hacia atrás los factores serán:

fila 2 pivote: 0.95
factor: 0.368421052631579 para fila: 1
factor: 0.10526315789473685 para fila: 0

\begin{pmatrix} 0.4 && 0.5 && 0 && 14.52631579 \\0 && 0.25 &&0 &&0.84210526 \\ 0 && 0. && 0.95 && 4.5 \end{pmatrix}

fila 1 pivote: 0.25
factor: 2.0 para fila: 0

\begin{pmatrix} 0.4 && 0 && 0 && 12.84210526 \\0 && 0.25 &&0 &&0.84210526 \\ 0 && 0. && 0.95 && 4.5 \end{pmatrix}

lo que da como resultado:

\begin{pmatrix} 1 && 0 && 0 && 32.10526316 \\0 && 1 &&0 &&3.36842105 \\ 0 && 0 && 1 && 4.73684211 \end{pmatrix}

que da como solución:

x= [32.10526316, 3.36842105 , 4.73684211]

Algoritmo en Python

Para el algoritmo se puede empezar con:

A = np.array([[0.2, 0.5, 0.4],
              [0.3, 0.0, 0.5],
              [0.4, 0.5, 0.1]])
B = np.array([10, 12, 15],dtype=float)

que luego armar el algoritmo y su ejecución, obtendría una solución semejante:

Matriz aumentada
[[ 0.2  0.5  0.4 10. ]
 [ 0.3  0.   0.5 12. ]
 [ 0.4  0.5  0.1 15. ]]
Pivoteo parcial:
  1 intercambiar filas:  0 y 2
  2 intercambiar filas:  1 y 2
[[ 0.4  0.5  0.1 15. ]
 [ 0.2  0.5  0.4 10. ]
 [ 0.3  0.   0.5 12. ]]
Elimina hacia adelante:
 fila 0 pivote:  0.4
   factor:  0.5  para fila:  1
   factor:  0.7499999999999999  para fila:  2
 fila 1 pivote:  0.25
   factor:  -1.4999999999999998  para fila:  2
 fila 2 pivote:  0.95
[[ 0.4   0.5   0.1  15.  ]
 [ 0.    0.25  0.35  2.5 ]
 [ 0.    0.    0.95  4.5 ]]
Elimina hacia Atras:
 fila 2 pivote:  0.95
   factor:  0.368421052631579  para fila:  1
   factor:  0.10526315789473685  para fila:  0
 fila 1 pivote:  0.25
   factor:  2.0  para fila:  0
 fila 0 pivote:  0.4
[[ 1.          0.          0.         32.10526316]
 [ 0.          1.          0.          3.36842105]
 [ 0.          0.          1.          4.73684211]]
solución X: 
[32.10526316  3.36842105  4.73684211]
>>>

Instrucciones en Python

#1Eva_IT2009_T2 Materiales y Productos 3×4
# Método de Gauss-Jordan
# Solución a Sistemas de Ecuaciones
# de la forma A.X=B

import numpy as np

def pivoteafila(A,B,vertabla=False):
    '''
    Pivotea parcial por filas
    Si hay ceros en diagonal es matriz singular,
    Tarea: Revisar si diagonal tiene ceros
    '''
    A = np.array(A,dtype=float)
    B = np.array(B,dtype=float)
    # Matriz aumentada
    nB = len(np.shape(B))
    if nB == 1:
        B = np.transpose([B])
    AB  = np.concatenate((A,B),axis=1)
    
    if vertabla==True:
        print('Matriz aumentada')
        print(AB)
        print('Pivoteo parcial:')
    
    # Pivoteo por filas AB
    tamano = np.shape(AB)
    n = tamano[0]
    m = tamano[1]
    
    # Para cada fila en AB
    pivoteado = 0
    for i in range(0,n-1,1):
        # columna desde diagonal i en adelante
        columna = np.abs(AB[i:,i])
        dondemax = np.argmax(columna)
        
        # dondemax no es en diagonal
        if (dondemax != 0):
            # intercambia filas
            temporal = np.copy(AB[i,:])
            AB[i,:] = AB[dondemax+i,:]
            AB[dondemax+i,:] = temporal

            pivoteado = pivoteado + 1
            if vertabla==True:
                print(' ',pivoteado, 'intercambiar filas: ',i,'y', dondemax+i)
                
    if vertabla==True:
        if pivoteado==0:
            print('  Pivoteo por filas NO requerido')
        else:
            print(AB)
    return(AB)

def gauss_eliminaAdelante(AB, vertabla=False,lu=False,casicero = 1e-15):
    ''' Gauss elimina hacia adelante, a partir de,
    matriz aumentada y pivoteada.
    Para respuesta en forma A=L.U usar lu=True entrega[AB,L,U]
    '''
    tamano = np.shape(AB)
    n = tamano[0]
    m = tamano[1]
    L = np.identity(n,dtype=float) # Inicializa L
    if vertabla==True:
        print('Elimina hacia adelante:')
    for i in range(0,n,1):
        pivote = AB[i,i]
        adelante = i+1
        if vertabla==True:
            print(' fila',i,'pivote: ', pivote)
        for k in range(adelante,n,1):
            if (np.abs(pivote)>=casicero):
                factor = AB[k,i]/pivote
                AB[k,:] = AB[k,:] - factor*AB[i,:]

                L[k,i] = factor # llena L
                
                if vertabla==True:
                    print('   factor: ',factor,' para fila: ',k)
                print(AB)
            else:
                print('  pivote:', pivote,'en fila:',i,
                      'genera division para cero')
    respuesta = AB
    if vertabla==True:
        print(AB)
    if lu==True:
        U = AB[:,:n-1]
        respuesta = [AB,L,U]
    return(respuesta)

def gauss_eliminaAtras(AB, vertabla=False, precision=5, casicero = 1e-15):
    ''' Gauss-Jordan elimina hacia atras
    Requiere la matriz triangular inferior
    Tarea: Verificar que sea triangular inferior
    '''
    tamano = np.shape(AB)
    n = tamano[0]
    m = tamano[1]
    
    ultfila = n-1
    ultcolumna = m-1
    if vertabla==True:
        print('Elimina hacia Atras:')
        
    for i in range(ultfila,0-1,-1):
        pivote = AB[i,i]
        atras = i-1  # arriba de la fila i
        if vertabla==True:
            print(' fila',i,'pivote: ', pivote)
            
        for k in range(atras,0-1,-1):
            if (np.abs(AB[k,i])>=casicero):
                factor = AB[k,i]/pivote
                AB[k,:] = AB[k,:] - factor*AB[i,:]
                
                if vertabla==True:
                    print('   factor: ',factor,' para fila: ',k)
            else:
                print('  pivote:', pivote,'en fila:',i,
                      'genera division para cero')
 
        AB[i,:] = AB[i,:]/AB[i,i] # diagonal a unos
    X = np.copy(AB[:,ultcolumna])
    
    if vertabla==True:
        print(AB)
    return(X)

# PROGRAMA ------------------------
# INGRESO
A = np.array([[0.2, 0.5, 0.4],
              [0.3, 0.0, 0.5],
              [0.4, 0.5, 0.1]])
B = np.array([10, 12, 15],dtype=float)

# PROCEDIMIENTO
AB = pivoteafila(A,B,vertabla=True)

AB = gauss_eliminaAdelante(AB,vertabla=True)

X = gauss_eliminaAtras(AB,vertabla=True)

# SALIDA
print('solución X: ')
print(X)

Encontrada la solución, modifique el algoritmo para calcular B en función de x3, pregunte el valor al inicio, y vuelva a calcular.

x3 = float(input('cantidad a producir de cuarto producto: ')

Observe el rango para x3, por ejemplo que debe ser mayor o igual que cero, pues no hay producción negativa. De producir solamente ése un producto, el valor máximo de unidades a obtener no superaría lo posible con la cantidad de materiales disponible.

Ejemplo:

x3 = 1
B3 = [0.2,0.6,0.2]
Bnuevo = B - x3*B3

>>> Bnuevo
array([  9.8, 11.4,  14.8])

Y se vuelve a generar el sistema A.X=Bnuevo

Observación: Algunos productos se fabrican por unidades, no necesariamente por peso o volumen. ¿comentarios al respecto?

 

s1Eva_IT2009_T1 Demanda de un producto alcanza la producción

Ejercicio: 1Eva_IT2009_T1 Demanda de un producto alcanza la producción

Desarrollo analítico

– igualar la ecuación al valor buscado, 80

200 t e^{-0.75t} = 80

– forma estándar de la ecuación para el método f(x) = 0:

f(t) = 200 t e^{-0.75t} - 80

– derivada de la ecuación

f'(t) = 200 e^{-0.75t} + 200 t (-0.75) e^{-0.75t} f'(t) = 200 e^{-0.75t}(1-0.75t)

– fórmula del método de Newton-Raphson

t_{i+1} = t_i - \frac{f(t)}{f'(t)}

– Punto inicial. Como la variable es t, tiempo, el rango de análisis es t>0
El valor inicial de búsqueda se selecciona t0 = 1

iteración 0:

f(1) = 200 (1) e^{-0.75(1)} - 80 =14.4733 f'(1) = 200 e^{-0.75(1)}(1-0.75(1)) = 23.6183 t_{1} = 1 - \frac{14.4733}{23.6183} =0.3872 error = |0.3872 - 1| = 0.6128

iteración 1:

f(0.3872)= 200 (0.3872) e^{-0.75(0.3872)} - 80 = -22.0776 f'(0.3872 )= 200 e^{-0.75(0.3872)}(1-0.75(0.3872)) = 106.1511 t_{2} = 0.3872 - \frac{-22.0776}{106.1511} = 0.5952 error = |0.5952- 0.3872| = 0.208

iteración 2:

f(0.5952)=200 (0.5952) e^{-0.75(0.5952)} - 80 = -3.8242 f'(0.5952) = 200 e^{-0.75(0.5952)}(1-0.75(0.5952)) = 70.855 t_{3} = 0.5952 - \frac{-3.8242}{70.855} = 0.64916

error = |0.64916-0.5952| = 0.053972

tabla de iteraciones

i ['xi', 'fi', 'dfi', 'xnuevo', 'tramo']
0 [ 1.     14.4733 23.6183  0.3872  0.6128]
1 [  0.3872 -22.0776 106.1511   0.5952   0.208 ]
2 [ 5.9518e-01 -3.8242e+00  7.0855e+01  6.4916e-01  5.3972e-02]
3 [ 6.4916e-01 -2.1246e-01  6.3069e+01  6.5252e-01  3.3686e-03]
4 [ 6.5252e-01 -7.9031e-04  6.2600e+01  6.5254e-01  1.2625e-05]
5 [ 6.5254e-01 -1.1069e-08  6.2599e+01  6.5254e-01  1.7683e-10]
raíz en:  0.6525363029069534

Se obtiene el valor de la raíz con 5 iteraciones, y un error de 1.2625e-05


Desarrollo con Python

# 1Eva_IT2009_T1 Demanda de un producto alcanza la producción

import numpy as np
import matplotlib.pyplot as plt

def newton_raphson(fx,dfx,xi, tolera, iteramax=100, vertabla=False, precision=4):
    '''
    fx y dfx en forma numérica lambda
    xi es el punto inicial de búsqueda
    '''
    itera=0
    tramo = abs(2*tolera)
    if vertabla==True:
        print('método de Newton-Raphson')
        print('i', ['xi','fi','dfi', 'xnuevo', 'tramo'])
        np.set_printoptions(precision)
    while (tramo>=tolera):
        fi = fx(xi)
        dfi = dfx(xi)
        xnuevo = xi - fi/dfi
        tramo = abs(xnuevo-xi)
        if vertabla==True:
            print(itera,np.array([xi,fi,dfi,xnuevo,tramo]))
        xi = xnuevo
        itera = itera + 1

    if itera>=iteramax:
        xi = np.nan
        print('itera: ',itera, 'No converge,se alcanzó el máximo de iteraciones')

    return(xi)

# INGRESO
fx  = lambda t: 200*t*np.exp(-0.75*t) - 80
dfx = lambda t: 200*np.exp(-0.75*t) + 200*t*(-0.75)*np.exp(-0.75*t)

#fx  = lambda t: 200*np.exp(-0.75*t) + 200*t*(-0.75)*np.exp(-0.75*t)
#dfx = lambda t: (112.5*t - 300.0)*np.exp(-0.75*t)

x0 = 1
tolera = 0.00001

# PROCEDIMIENTO
respuesta = newton_raphson(fx,dfx,x0, tolera, vertabla=True)
# SALIDA
print('raíz en: ', respuesta)

Para la gráfica se añade:

# grafica
a = 0
b = 2
muestras = 21

xi = np.linspace(a,b,muestras)
fi = fx(xi)
plt.plot(xi,fi)
plt.axhline(0)
plt.xlabel('x')
plt.ylabel('f(x)')
plt.show()

Literal b

Para el caso de encontrar el máximo se usaría la expresión fb(t) cuando f'(t)= 0.

Con lo que para el algoritmo la expresión nueva f(t) es :

y fb‘(t) es f''(t):

f_b(t) = f'(t) = 200 e^{-0.75t} + 200 t (-0.75) e^{-0.75t} f_b'(t) = f''(t) = (112.5t-300)e^{-0.75t}

se desarrolla las expresiones con Sympy :

>>> import sympy as sym
>>> t = sym.Symbol('t')
>>> f = 200*t*sym.exp(-0.75*t)-80
>>> sym.diff(f,t,1)
-150.0*t*exp(-0.75*t) + 200*exp(-0.75*t)
>>> sym.diff(f,t,2)
(112.5*t - 300.0)*exp(-0.75*t)
>>> 

Se actualiza el algoritmo con las funciones:

fx  = lambda t: 200*np.exp(-0.75*t) + 200*t*(-0.75)*np.exp(-0.75*t)
dfx = lambda t: (112.5*t - 300.0)*np.exp(-0.75*t)

y se obtiene como resultado:

método de Newton-Raphson
i ['xi', 'fi', 'dfi', 'xnuevo', 'tramo']
0 [  1.      23.6183 -88.5687   1.2667   0.2667]
1 [  1.2667   3.8674 -60.9117   1.3302   0.0635]
2 [ 1.3302e+00  1.7560e-01 -5.5445e+01  1.3333e+00  3.1671e-03]
3 [ 1.3333e+00  4.1611e-04 -5.5183e+01  1.3333e+00  7.5406e-06]
raíz en:  1.3333333332906878

 

1Eva_IIT2008_T3_MN Ganancia en inversión

1ra Evaluación II Término 2008-2009. 9/Diciembre/2008. ICM02188 Métodos NuméricosinversionGanancia01

Tema 3. Se dispone de los datos (x, f(x)), en donde x es un valor de inversión y f(x) es un valor de ganancia, ambos en miles de dólares:

 

inversión ganancia
3.2 5.12
3.8 6.42
4.2 7.25
4.5 6.85

para analizar éste comportamiento se propone usar el siguiente modelo:

f(x) = a_1 x^3 + a_2 x^2 + a_3 x + a_4

a) Sustituya cada dato (x, f(x)) en el modelo y obtenga un sistema de ecuaciones lineales.

b) Obtenga los coeficientes ai resolviendo el sistema lineal con un método numérico directo.

c) Con el modelo f(x), use el método de la Bisección para calcular cuánto debe invertirse si se desea que la ganancia sea de 6.0 (miles de dólares).
Precisión: dos decimales exactos.


xi = np.array([3.2 , 3.8 , 4.2 , 4.5 ]) 
fi = np.array([5.12, 6.42, 7.25, 6.85])

1Eva_IIT2008_T2_MN Distribuidores de productos

1ra Evaluación II Término 2008-2009. 9/Diciembre/2008. ICM02188 Métodos Numéricos

Tema 2.  Para mejorar la cadena de distribución de un producto, se desea instalar tres nuevos distribuidores X1, X2, X3 en la parte interna de la región. En las cercanías ya existen otros distribuidores: A, B, C, D, E, F, G del mismo producto.

En el gráfico, el valor de los círculos indican el precio de venta del producto que ofrece cada distribuidor. Las líneas muestran los otros distribuidores que están directamente conectados y el costo del transporte.

Determine el precio de venta que deben establecer los distribuidores X1, X2 y X3, de tal manera que sean el promedio de los precios de los distribuidores con los que están directamente conectados, incluyendo el precio del transporte.

a) Plantee un modelo matemático para describir el problema (sistema de ecuaciones lineales)

b) Encuentre la solución con un método numérico directo