Contenido
4. METODOS NUMERICOS DE FUNCIONES CONTINUAS.......................................155
4.1 INTRODUCCION..................................................................................................155
4.1.1 Series de Taylor: ( Nakamura paginas del 1 al 4).........................................155
4.1.2.-Número en las computadoras.......................................................................155
4. 2 INTEGRACION NUMÉRICA...............................................................................156
4.2.1 Método de rectángulo circunscritos.-.............................................................156
4.2.2 Método de rectángulo Inscritos.-....................................................................158
4.2.3 Método del punto medio.................................................................................158
4.2.4 Método trapecial.............................................................................................160
4.2.5 Método Simpson................................................................................................161
4.2.6 Método de Monte Carlo..................................................................................162
4.3. CALCULO DE LOS VOLUMENES......................................................................164
4.3 1 Método del disco............................................................................................164
Ver Menú de volumenes..........................................................................................165
4.3.2 El Método de las arandelas o rebanadas.......................................................167
4.3.3 Volumen por el método de las capas o casquetes cilíndricos.......................169
4.4 LONGITUD DE LA TRAYECTORIA O LONGITUD DE ARCO.............................173
4.5 AREA DE UNA SUPERFICIE DE REVOLUCION...............................................175
4.6 PROBLEMAS DE OPTIMIZACION......................................................................177
Ejemplo 1. Problemas de aplicación de máximos y mínimos.................................177
Ejemplo 2 ¿Qué puntos de la gráfica de y=4-x 2 están mas cerca del punto (0,2);
Según la solución matemática del libro de Cálculo y geometría analítica de Larson
pag. 283 es..............................................................................................................178
Ejemplo 3. Dos postes de 12 y 28 pies de altura, distan 30 pies, hay que
conectarlos mediante un cable que este atado en algún punto del suelo entre ellos
, ¿ en qué punto ha de amarrase al suelo con el fin de utilizar la menor cantidad de
cable que sea posible?............................................................................................179
4.7.- SOLUCION DE ECUACIONES NO LINEALES.................................................180
4.7.1 Introducción....................................................................................................180
4.7.2 Método de busca............................................................................................181
4.8 METODOS INTUITIVOS......................................................................................184
4.7.3 Método de bisección.......................................................................................184
4.7.4.-Método de regula Falsi..................................................................................185
4.7.5.- Método converge..........................................................................................188
4.7.6.- Método de Newton Raphson........................................................................190
4.9 INTERSECCION DE DOS FUNCIONES.............................................................192
4.10 DIFERENCIACION NUMERICA........................................................................194
Hallar derivada cualquier función pruebe (x 2-3x)2...................................................196
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 2-
Ejemplo 1 Diferenciación Numérica, la ecuación y su derivada.............................196
4.11 Maximos y minimos de una función...................................................................196
Problema 2 Encontrar los máximos y los mínimos................................................197
4.11 PROBLEMAS RESUELTOS...............................................................................198
Problema C401. Menú de Integrales.......................................................................198
Problema C402 Integración por la regla trapecial usando la fórmula general Area =
h/2(y0+2y1+2y2+2y3+...+2yn-1 +2yn)...........................................................................200
Problema C403 Integración por la regla de simpson usando la fórmula general...201
Area= h/3(y0+4y1+2y2+4y3+...+4yn-2 +2yn-1 +yn)........................................................201
Problema C404 Calcular el Área sombreada..........................................................202
PROBLEMA C405. Encontrar el punto de equilibrio dado un costo fijo y costo
variable y el precio de venta de un producto..........................................................204
PROBLEMA C406 Grafique las rectas de ventas totales, mostrando el punto de
equilibrio..................................................................................................................206
Problema C407 Encontrar el área de un circulo dado el tope (que puede variar de 0
a 2*radio) si tope = 0 (Es todo el circulo) Si el tope = radio (Es medio círculo).....207
Problema C408.- Un tanque...................................................................................208
Explicación por la regla de Simpson con 6 divisiones............................................210
Problema C409.- Encuentre el Área sombreada de la ecuación (x+1)(x-2)(x-3)
desde la raíz hasta el primer punto de inflexión explique como encuentra la raíz , la
altura máxima elabore su prueba de datos.............................................................211
4.12 PROBLEMAS DE OPTIMIZACION....................................................................212
Problema C410. Con cuatro pies de alambre se desea construir un circulo y un
cuadrado ¿cuanto de alambre hay que emplear en cada figura para lograr que
entre ambos encierren el área máxima posible ?...................................................212
Problema C411 Hallar dos números positivos cuya suma sea 100 y su producto el
máximo posible........................................................................................................214
Problema C412. Calcular la longitud y altura de un rectángulo que formen un área
máxima dado el perímetro.......................................................................................214
Problema C413. Un rectángulo está acotado por los ejes y por la grafica de y = (6-
x/2) véase figura), que longitud debe tener el rectángulo para que su área sea
máxima....................................................................................................................216
Problema C415. Un cable de energía pasa por los pueblos p1(x1,y1) y p2 (x2,y2)
se quiere proveer energía a un tercer pueblo P3( x3,y3) en que punto de la línea de
x1,y1 a x2 y2 se debe sacar la energía para proveer al pueblo p3 de tal manera
que la longitud del cable sea mínima......................................................................218
Problema C416.Una ganadero desea vallar un prado rectangular adyacente a un
rio, el prado ha de tener 180,000 m2 con el fin de proporcionar suficiente pasto para
el ganado ¿ que dimensiones debe tener el prado para que requiera la menor
cantidad de valla posible , teniendo en cuenta que no hay que poner valla en el
lado que da al rio ?..................................................................................................219
Problema C417 Un confeccionista textil fabrica trajes y vestidos, un traje usa 3
metros de tela de lana y 1 metros de tela de algodón y un vestido dos metros de
cada tipo de tela. Un traje lo vende a 200 soles y el vestido a 150 soles . En el
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 3-
almacén tiene 500 metros de tela de lana y 400 de tela de algodón , cuantos trajes
y vestidos debe hacer para maximizar sus ganancias...........................................220
Existen 3 centros de demanda con las coordenadas(x,y) y poblacion especificadas
ubicar una planta cuya distancia a los centros sea el minimo ( resolviendo con
solver de Excel).......................................................................................................221
Problema C419 Las secciones de un canal de riego son trapecios isósceles con
tres lados de 8 pies de longitud(véase figura): Determinar el ángulo de elevación θ
tal que el área de la sección es máxima ...............................................................224
Problema C420. Un Estanque tiene forma de tronco de cono radio menor es 4 ( la
parte de abajo) y el radio mayor es 5 metros(la parte de arriba , la altura es 2
metros, usando calculo............................................................................................225
Problema C421 Encontrar el volumen del solido al girar alrededor del eje Y........227
Encontrar la recta que pasa por los puntos (4,0) y (5,2).........................................227
Problema C422 Calcule el volumen del solido de revolución al girar la parabola
alrededor del eje Y cuando x varia de 0 a 2...........................................................229
Problema C424 Menú de volúmenes por el método del disco..............................230
Problema C425 Volumen por el metodo de casquetes cilindricos........................233
4.13 PROBLEMAS PROPUESTOS...........................................................................236
4.14. PROBLEMAS VARIOS......................................................................................239
4.15 Preguntas y respuestas.....................................................................................240
1. Si puede tener más de una variable con el mismo nombre................................240
Se tiene la funcion f(x) = (x+2)(x-1)(x-2) encuentre el punto maximo y minimo, entre
los puntos li=-2 y ls = 3, lalongitud de arco entre li y ls , el area entre el li y ls
pruebe dx= 0.5 Y muestre los resultados de la siguiente manera.........................243
Graficar un una función y recorrerlo y en cada momento el programa debe
informar la posicion x,y y la distancia recorrida......................................................245
Problema 3 .- Utilizando recursividad encuentre la integraL de una función que
usted crea desde el punto a al punto b...................................................................246
Encuentre también la trayectoria del punto a al punto b........................................246
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 4-
4.1 INTRODUCCION
h2 h3 h4
Sen(x) = sen(1) + hcos(1) - ---- sen(1) - ---- cos(1) + ...--- sen(1) ++
2 6 24
donde h=x-1;
x2 X3 X4
ex = 1+ x ---- + --- + ---. ..
2! 3! 4!
X 3 X5 X7
Sen(x) = x- ---- + ---- - --- + ...
3! 5! 7!
X 2 X4 X6
Ej. Cos(x) = 1- ---- + ---- - --- + ...
3! 4! 6!
Representación binaria
Errores por redondeo
a) Cuando se suma o se resta de un número muy pequeño de uno muy grande
b) Cuando un número de resta del otro que es muy cercano .
4. 2 INTEGRACION NUMÉRICA
b
Se tiene la función y= f(x) donde a = Límite inferior
| x2 dx
b = Límite superior
a
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 5-
El Área total se divide en n áreas parciales
Si F(x) y = x2 Calcular el Área bajo la curva en el intervalo[0,2]
2 Y=X2
5.00
| x2 = X3 /2 = 2.6667
0 4.00
3.00
2.00
X Y
0.00 0.00 1.00
0.50 0.25 0.00
1.00 1.00
0.00 0.50 1.00 1.50 2.00 2.50
1.50 2.25
2.00 4.00
x0 x1 x2 x3 x4
x 0.00 0.50 1.00 1.50 2.00
f(x) 0.00 0.25 1.00 2.25 4.00
y0 y1 y2 y3 y4
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 6-
Y=X2
4.50
4.00
3.50
3.00
2.50
2.00
1.50
1.00
0.50
0.00
circunscritos.-
Sea f(x)= x2 y el intervalo de integración [0,2] y n=4 se que tiene dx =(2-0)/4 =0.5
Module Module1
Function f(ByVal x As Single) As Single
Return x * x
End Function
Function circunscritos(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As
Single
Dim at As Single = 0, ap As Single, dx As Single, x As Single, y As Single
dx = (b - a) / n
For x = a + dx To b Step dx
y = f(x)
ap = dx * y
at = at + ap
Next
Return at
End Function
Sub Main()
Dim n As Integer
Dim a, b, area As Single
Console.Write("Ingrese limite inferior a: ")
a = CSng(Console.ReadLine)
Console.Write(" Ingrese limite superior b: ")
b = CSng(Console.ReadLine())
Console.Write(" Ingrese Numero de divisiones n: ")
n = CInt(Console.ReadLine())
area = circunscritos(a, b, n)
Console.WriteLine("La integral es {0} ", area)
Console.ReadLine()
End Sub
End Module
Area x y Ap At
A1 0.00 0.00 0.000 0.000
A2 0.50 0.25 0.125 0.125
A3 1.00 1.00 0.500 0.625
A4 1.50 2.25 1.125 1.750
Utilizando la misma función del caso 4.2.1 el alto del rectángulo (y i) se considera el
punto medio como se muestra en la figura.
Area x y Ap At x y
A1 0.2500 0.06250 0.03125 0.03125 0.25 0.0625
A2 0.7500 0.56250 0.28125 0.31250 0.75 0.5625
A3 1.2500 1.56250 0.78125 1.09375 1.25 1.5625
1.75 3.0625
A4 1.7500 3.06250 1.53125 2.62500
A1= dx*f(x0+dx/2) = 0.5*f(0.25)=0.5*0.0625 = 0.03125
A2= dx*f(x1+dx/2) = 0.5*f(0.75)=0.5*0.5625 = 0.28125
A3= dx*f(x2+dx/2) = 0.5*f(1.25)=0.5*1.5625 = 0.78125
A4= dx*f(x3+dx/2) = 0.5*f(1.75)=0.5*3.0625 = 1.53125
----------
AT= A1+A2+A3+A4 = 2.62500
AT= dx(y0 + y1+y2…Yn-1) donde x0=x0+dx/2
Sea f(x)= x2 y el intervalo de integración [0,2] y n=4 se que tiene dx =(2-0)/4 =0.5
Otra forma de calcular el área bajo una curva es utilizar el método de Monte Carlo el
cuál utiliza números generados aleatoriamente, Supóngase que la curva y= f(x) es
positiva para cualquier valor de x entre los límites inferior y superior x= a, x= b
dados, haciendo que el mayor valor de y sea y*, el método Monte Carlo , procede
como sigue:
a) Comenzar inicializando un contador con cero.
b) Generar un número aleatorio rx, cuyo valor está comprendido entre a y b.
c) Evaluar f(rx)
d) Generar un segundo número aleatorio ry, cuyo valor esté comprendido entre 0 y y*.
e) Comparar ry con f(rx); si ry es menor o igual que f(rx) , entonces estará localizado
bajo la curva dada, por tanto , se incrementa el contador en 1.
f) Se repiten los pasos b) y d) un gran número de veces, cada repetición se llama un
ciclo.
g) Cuando se han completado un determinado número de ciclos, la relación del
número de puntos que están localizados bajo la curva, F, se calcula como el valor
del contador dividido por el número total de ciclos; y el área bajo la curva se obtiene
como A= Fy*(b-a).
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 13-
Sea f(x)= x2 y el intervalo de integración [0,2] y n=4 y sea numero de puntos = 10000
se tiene
Module Module1
Function f(ByVal x As Single) As Single
Return x * x
End Function
Function maximo(ByVal a As Single, ByVal b As Integer, ByVal n As Single) As Single
Dim x As Single, dx As Single = (b - a) / n, mayor As Single
mayor = -10000
For x = a To b Step dx
If (f(x) > mayor) Then mayor = f(x)
Next
Return mayor
End Function
Sub Main()
Dim n As Integer = 1000
Dim a As Single = 0, b As Single = 2, area As Single
Console.Write("Ingrese limite inferior a: ")
a = CSng(Console.ReadLine())
Console.Write(" Ingrese limite superior b: ")
b = CSng(Console.ReadLine())
Console.Write(" Ingrese Numero de divisiones n: ")
n = CInt(Console.ReadLine())
area = montecarlo(a, b, n)
Console.WriteLine("La integral es {0} ", area)
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 14-
Console.ReadLine()
End Sub
End Module
∆V=πR2∆x
Module Module1
Function f(ByVal x As Single) As Single
Return x * x
End Function
Function volumen(ByVal a As Single,
ByVal b As Single, ByVal n As Single) As Single
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 15-
Dim x, dx, y1 As Single
Dim y2 As Single = 0, vp As Single = 0
Dim vt As Single = 0, r As Single
dx = (b - a) / n
For x = a To b - dx Step dx
y1 = f(x)
y2 = f(x + dx)
r = (y1 + y2) / 2
vp = CSng(r * r * Math.PI * dx)
vt = vt + vp
Next
Return vt
End Function
Sub Main()
Dim a As Single = 0, b As Single = 2, n As Single = 4000
Console.WriteLine("el volumen del solido es {0}", volumen(a, b, n))
Console.ReadLine()
End Sub
End Module
A 0
B 2
N 4
Dx 0,5
X y1 y2 r vp vt
0,0245436
0,00 0,00 0,25 0,125 9 0,02454369
0,6135923
0,50 0,25 1,00 0,625 2 0,63813601
4,1478840
1,00 1,00 2,25 1,625 5 4,78602006
15,339807
1,50 2,25 4,00 3,125 9 20,1258279
Solución matemática
Option Explicit On
Option Strict On
Module Module1
Function f(ByVal x As Single) As Single
Return CSng(Math.Sqrt(Math.Sin(x)))
End Function
Function volumen(ByVal a As Single, ByVal b As Single, ByVal n As Single) As Single
Dim x, dx, y1 As Single
Dim y2 As Single = 0, vp As Single = 0
Dim vt As Single = 0, r As Single
dx = (b - a) / n
For x = a To (b - dx) Step dx
y1 = f(x)
y2 = f(x + dx)
r = (y1 + y2) / 2
vp = CSng(r * r * Math.PI * dx)
vt = vt + vp
Next
Return vt
End Function
Sub Main()
Dim a As Single = 0, b As Single = Math.PI - 0.1, n As Single = 4000
Console.WriteLine("el volumen del solido es {0}", volumen(a, b, n))
Console.ReadLine()
End Sub
End Module
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 17-
Ejemplo. :calcular el volumen generado al girar la región acotada por las gráficas de y=
√x e y x2 en torno al eje x (figura)
Solución matemática
Module Module1
Function f(ByVal x As Single) As Single
Return CSng(Math.Sqrt(x))
End Function
Function g(ByVal x As Single) As Single
Return x * x
End Function
Function VolumenArandelas(ByVal a As Single, ByVal b As Single, ByVal n As
Single) As Single
Dim x, dx, R1, r2 As Single
Dim vp As Single, vt As Single = 0
dx = (b - a) / n
For x = a To (b - dx) Step dx
R1 = (f(x) + f(x + dx)) / 2
r2 = (g(x) + g(x + dx)) / 2
vp = CSng(Math.PI * (R1 * R1 - r2 * r2) * dx)
vt = vt + vp
Next
Return vt
End Function
Sub Main()
Dim a As Single = 0, b = 1, n = 40000
Console.WriteLine("el volumen metodo de arandelas es {0}", volumenArandelas(a,
b, n))
Console.ReadLine()
End Sub
End Module
Nota Este problema también podría haberse resuelto por el método del disco
calculando el volumen de giro de la función f(x) sobre el eje x y restando el volumen
de revolución de la función g(x) sobre el eje x
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 19-
Sub Main()
Dim a As Single = 0, b = 1, n = 40000, v1, v2
v1 = volumen1(0, b, n)
v2 = volumen2(0, b, n)
Console.WriteLine("el volumen del solido es {0}", v1 - v2)
Console.ReadLine()
End Sub
= p (r22 - r12 )h
= p (r2 + r1 )(r2 - r1 )h
�r + r �
= 2p �2 1 �(r2 - r1 )h
�2 �
0.83775804
Solución con el Lenguaje Vb
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 21-
Module Module1
Function f(ByVal x As Single) As Single
Return CSng(x - Math.Pow(x, 3))
End Function
Function VolumenCilindro(ByVal a As Single, ByVal b As Single, ByVal n As Single)
As Single
Dim x As Single, R1 As Single, r2 As Single, dx As Single
Dim vp As Single, vt As Single = 0, rp As Single, h As Single
dx = (b - a) / n
For x = a To (b - dx) Step dx
r2 = x
R1 = (x + dx)
rp = (r2 + R1) / 2
h = (f(r2) + f(R1)) / 2 REM altura promedio
vp = CSng(2 * Math.PI * rp * h * (R1 - r2))
vt = vt + vp
Next
Return vt
End Function
Sub Main()
Dim a As Single = 0
Dim b As Single = 1, n As Single = 10000, Vol As Single
Vol = VolumenCilindro(a, b, n)
Console.WriteLine("el volumen del solido metodo cilindro es {0}", Vol)
Console.ReadLine()
End Sub
End Module
Module Module1
Function f(ByVal x As Single) As Single
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 22-
Return x * x
End Function
Sub Main()
Dim a As Single = 0, b As Single = 2, n As Single = 4, Vol As Single
Vol = VolumenCilindro(a, b, n)
Console.WriteLine("el volumen del solido metodo cilindro es {0}", Vol)
Console.ReadLine()
End Sub
End Module
A 0
B 2
N 4
dx 0,5
X y r R h1 h2 h vp vt
0,0 0,0 0,0 0,5 0,2 0,12 0,0981747
0 0 0 0 0 5 5 0,09817477 7
0,5 0,2 0,5 1,0 0,2 0,62 1,47262155 1,5707963
0 5 0 0 5 1 5 6 27
1,0 1,0 1,0 1,5 2,2 1,62 6,38136007 7,9521564
0 0 0 0 1 5 5 8 04
1,5 2,2 1,5 2,0 2,2 3,12 17,1805848 25,132741
0 5 0 0 5 4 5 2 23
Module Module1
Function f(ByVal x As Single) As Single
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 23-
Return 4 - x
End Function
Module Module1
Function f(ByVal x As Single) As Single
Return CSng(Math.Pow(x, 3) / 6.0 + 1.0 / (2 * x))
End Function
Function Longitud(ByVal a As Single, ByVal b As Single, ByVal n As Single) As Single
Dim x, dx, x1, x2, y1, y2 As Single
Dim lp As Single, lt As Single = 0
dx = (b - a) / n
For x = a To (b - dx) Step dx
x1 = x
x2 = x + dx
y1 = f(x1)
y2 = f(x2)
lp = CSng(Math.Sqrt(Math.Pow((x2 - x1), 2) + Math.Pow((y2 - y1), 2)))
lt = lt + lp
Next
Return lt
End Function
Sub Main()
Dim a As Single = 0.5, b As Single = 2, n As Single = 40000
Console.WriteLine("Logintud de arco es {0}", Longitud(a, b, n))
Console.ReadLine()
End Sub
End Module
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 25-
Determinar longitud de arco de la circunferencia F(X)= sqrt(16-x*x) y compruebe con
la formula = L = 2*pi()*r
Si se hace girar la gráfica de una función continua en torno a una recta, la superficie
resultante es una superficie de revolución
Module Module1
Function f(ByVal x As Single) As Single
Return 2 + x / 2
End Function
Function SuperficieRevolucion(ByVal a As Single, ByVal b As Single, ByVal n As
Single) As Single
Dim x, dx, R1, r2, alp, g As Single
Dim alt As Single = 0
dx = (b - a) / n
For x = a To (b - dx) Step dx
r2 = f(x)
R1 = f(x + dx)
g = CSng(Math.Sqrt(Math.Pow(dx, 2) + Math.Pow((R1 - r2), 2)))
alp = CSng(Math.PI * (R1 + r2) * g)
alt = alt + alp
Next
Return alt
End Function
Sub Main()
Dim a As Single = 0.5, b As Single = 6, n As Single = 6
Console.WriteLine("Superficie de revolucion {0}", SuperficieRevolucion(a, b, n))
Console.ReadLine()
End Sub
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 27-
End Module
PUNT
O X Y r R g alp alt
2. 1.1180339 15.805833 15.805833
1 0 2 2 5 89 14 14
2. 2. 1.1180339 19.318240 35.124073
2 1 5 5 3 89 51 66
3. 1.1180339 22.830647 57.954721
3 2 3 3 5 89 88 53
3. 3. 1.1180339 26.343055 84.297776
4 3 5 5 4 89 24 77
4. 1.1180339 29.855462 114.15323
5 4 4 4 5 89 61 94
4. 4. 1.1180339 33.367869 147.52110
6 5 5 5 5 89 97 94
Un fabricante desea diseñar una caja abierta con base cuadrada y un área de 108
pulgadas cuadradas de superficie , como indica la figura, ¿Que dimensiones producen
la caja de máximo volumen ?
Como queremos optimizar V, la expresamos en función de una sola variable. A tal fin
podemos despejar h en la ecuación x 2+4xh =108 en términos de x, obteniendo
h= (108-x2)/4x, sustituyendo en la ecuación primaria se obtiene.
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 28-
Ejemplo 2 ¿Qué puntos de la gráfica de y=4-x2 están mas cerca del punto
(0,2); Según la solución matemática del libro de Cálculo y geometría analítica
de Larson pag. 283 es
Module Module1
Function f(ByVal x As Single) As Single
Return 4 - x * x
End Function
Function dmenor(ByVal px As Single, ByVal py As Single, ByVal li As Single, ByVal ls
As Single, ByVal n As Single) As Single
Dim menor As Single = 10000, xmenor = li
Dim x, y, d As Single
Dim dx As Single = (ls - li) / n
For x = li To ls Step dx
y = f(x)
d = CSng(Math.Sqrt(Math.Pow((px - x), 2) + Math.Pow((py - y), 2)))
If (d < menor) Then
xmenor = x
menor = d
End If
Next
Return xmenor
End Function
Sub Main()
Dim nd As Single = 20000, px As Single = 0, py As Single = 2, d1 As Single, d2 As
Single
d1 = dmenor(px, py, -5, 0, nd)
d2 = dmenor(px, py, 0, 5, nd)
Console.WriteLine("primer punto x= {0} y ={1}", d1, f(d1))
Console.WriteLine("Segundo punto x= {0} y ={1}", d2, f(d2))
Console.ReadLine()
End Sub
End Module
Usando un programa VB
Module Module1
Function wmenor(ByVal Ap1 As Single, ByVal Ap2 As Single, ByVal li As Single,
ByVal ls As Single, ByVal n As Single) As Single
Dim wmenor1 As Single = 10000, xmenor = li
Dim x, y, z, w As Single
Dim dx As Single = (ls - li) / n
For x = li To ls Step dx
y = CSng(Math.Sqrt(Math.Pow(Ap1, 2) + Math.Pow(x, 2)))
z = CSng(Math.Sqrt(Math.Pow(Ap2, 2) + Math.Pow((ls - li) - x, 2)))
w=y+z
If (w < wmenor1) Then
xmenor = x
wmenor1 = w
End If
Next
Return xmenor
End Function
Sub Main()
Dim nd As Single = 2000, Ap1 As Single = 12, Ap2 As Single = 28
Console.WriteLine("se debe amarrarse a una distancia de x= {0} del primer
poste", wmenor(Ap1, Ap2, 0, 30, nd))
Console.ReadLine()
End Sub
End Module
Las soluciones de una ecuación no lineal se llaman raíces o ceros. Los siguientes son
algunos ejemplos de ecuaciones no lineales
Los métodos numéricos diseñados para encontrar raíces son poderosos aunque cada
uno tiene sus propias limitaciones y defectos por lo tanto los estudiantes deben
aprender los pros y los contras de cada método - en particular sus dificultades y
familiarizarse con los métodos mediante la práctica en una computadora.
Sea y =f(x) una cierta función dada la cual es continua en todo el intervalo para el cual
se ha definido. Dar solución a las ecuaciones de la forma f(x) = 0 es equivalente a
calcular un cierto x tal que y = 0; por ello buscaremos un intervalo [a, b ] lo
suficientemente pequeño (de longitud especificada por usuario) tal que contenga a
dicho valor x buscado. Si interpretamos esto en un gráfico
x*x+2*x-4
Programa
Module Module1
Function f(ByVal x As Single) As Single
Return x * x + 2 * x - 4
End Function
Function busca(ByVal a As Single, ByVal h As Single) As Single
Dim b As Single = a + h
While (f(a) * f(b) > 0)
a=b
b=a+h
End While
Return a
End Function
Sub Main()
Dim a As Single = 0
REM valor inicial para busqueda hacia adelante
Dim h As Single = 0.0001
Console.WriteLine("a= {0} h= {1} raiz a= {2} busqueda hacia adelante ", a, h,
busca(a, h))
a=0
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 33-
Console.WriteLine("a= {0} h= {1} raiz a= {2} busqueda hacia atras ", a, h, busca(a, -h))
Console.ReadLine()
End Sub
End Module
Module Module1
Function f(ByVal x As Single) As
Single
Return x * x + 2 * x - 4
End Function
Son aquellos métodos, en las cuales en base a particiones convenientes del intervalo
en el cual se encuentra la solución de la ecuación se va aproximando su solución
conforme se continua reduciendo el intervalo de solución
Es requisito indispensable para el uso de estos métodos, que la función con la cual se
está trabajando sea continua , es decir se ella admite , para dos valores x1 x2, otros
dos correspondientes y1=f(x1) y=f(x2), entonces asume todos los valores intermedios
Sea y =f(x) una función dada, la cual es continua en todo el intervalo [a, b], aceptamos
además, la existencia dentro de dicho intervalo de un cierto valor x, solución de f(x) =0
; ello se comprobará fácilmente verificando que : f(a)* f(b) >0;
De acuerdo a esto el proceso de solución a la ecuación f(x) =0, será considerado del
siguiente modo
1. Calcular el valor de c, punto medio del intervalo [a, b] , por ello c = (a+b)/2
2. Evaluar la función en el valor c, anteriormente calculado , hallando así f(c).
3. Reemplazar uno de los extremos del intervalo inicial de solución, por el valor c,
verificando que dentro del nuevo intervalo se encuentre la solución buscada. Para
ello considere:
b= c siempre que f(a)*f(b) <0
a=c si en cambio f(a)*f(c)> 0
f(b)
4. Repetir el proceso a partir del primer f(c)
a
paso, hasta obtener la solución
deseada. c b
Interpretación geométrica. f(a)
Module Module1
Function f(ByVal x As Single) As Single
Return x * x + 2 * x - 4
End Function
Function biseccion(ByVal a As Single, ByVal b As Single, ByVal h As Single) As
Single
Dim pr As Single
Dim c As Single = CSng((a + b) / 2.0)
While ((b - a) > h)
c = (a + b) / 2
pr = f(a) * f(c)
If (pr > 0) Then
a=c
Else : b = c
End If
End While
Return (a + b) / 2
End Function
Sub Main()
Dim a As Single = -0, b As Single = 10
Dim h As Single = 0.001
Console.WriteLine("raiz por le metodo de biseccion {0} ", biseccion(a, b, h))
Console.ReadLine()
End Sub
End Module
1 Apaza herrera Pablo/ Método Numéricos 1 con Basic 2da edición 1989- Lima Perú pag. 22
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 36-
Consideramos y = f(x) una función continua en todo el intervalo [a,b] donde a y b han
sido determinados de modo que el producto de f(a) y f(b) sea menor que cero (esto
significa que es negativa)
Por consiguiente es factible pensar que dentro de dicho intervalo existe por lo menos
un valor x , el cual es solución de f (x) =0 : Bajo esta premisa estableceremos el
proceso de solución a la ecuación f(x) = 0 del modo siguiente
1.Evaluamos la función f(x) en los puntos x=a y x=b hallamos de ese modo f(a) y f(b)
2.Unimos mediante una línea recta, los puntos de las coordenadas (a,f(a) ) y (b, f(b) )
los cuales se han determinado respecto a un cierto sistema referencial.
3.Determinamos el valor de c, como el punto de intersección de la recta dada con el
eje horizontal de referencia el cual está definido por y= 0.
4.Evaluamos la función y = f(x) en el punto c, calculando así f( c)
5.Reemplazamos uno de los extremos del intervalo inicial de solución por el valor de
c, verificando que se encuentre en el nuevo intervalo, la solución buscada para
f(x)= 0.Para ello seguir el siguiente procedimiento.
hacer b= c siempre que f(a)*f(b) <0
hacer a = c si en cambio f(a)*f(c)> 0
6. Repetir el proceso desde el segundo paso , hasta obtener la aproximación
deseada.
Interpretación geométrica
tg m = f(a)/(c-a)
tg n = f(b)/(b-c)
a * f(b) - b * f(a)
c=-----------------------
f(b) - f(a)
Console.WriteLine("{0} {0} {0} {0} {0} {0} {0} {0}", a, b, f(a), f(b), c, f(c), dif, pr)
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 38-
NOTA IMPORTANTE
1. El correcto empleo de los métodos enunciados estará en proporción directa al
conocimiento que se tenga sobre el comportamiento de la función en el intervalo
que se está analizando y sobre todo de la gráfica de la función en el intervalo en
cuestión ( para ello podría usar Excel)
2. Deberá pues, el lector al aplicar los métodos no depender tanto de los valores
numéricos que vaya entregándole al computador que esté empleando ,
procurando mantener siempre presente el criterio personal
1 x= 1
2 x= 4-2(1) = 1.41421
3 x= 4-2(1.41421) = 1.08239
4 x= 4-2(1.08239) = 1.35470
Module Module1
Function f(ByVal x As Single) As Single
Return CSng(Math.Sqrt(4 - 2 * x))
End Function
Function converge(ByVal x As Single, ByVal h As Single) As Single
Dim iter As Integer = 0
Dim dif As Single, x1 As Single
Do
iter += 1
x1 = f(x)
dif = Math.Abs(x - x1)
x = x1
'Console.WriteLine("Iteracion {0} {1} {2} {3} ", iter, x, x1, dif)
Loop While (dif > h)
Console.WriteLine("numero de iteraciones {0}", iter)
Return x
End Function
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 40-
Sub Main()
Dim x As Single = 1
Dim error1 As Single = 0.001
Console.WriteLine("La raiz por el metodo converge es {0} ", converge(x, error1))
Console.ReadLine()
End Sub
End Module
iter x x1 dif
Iteracion 1 1.0000 1.4142 0.4142
Iteracion 2 1.4142 1.0824 0.3318
Iteracion 3 1.0824 1.3547 0.2723
Iteracion 4 1.3547 1.1360 0.2187
Iteracion 5 1.1360 1.3145 0.1785
Iteracion 6 1.3145 1.1709 0.1436
Iteracion 7 1.1709 1.2877 0.1168
Iteracion 8 1.2877 1.1936 0.0942
numero de iteraciones 8
La raiz por el metodo converge es 1.1936
Este método propone localizar la raíz de f(x) =0 mediante el uso del siguiente algoritmo
Xn+1=xn -f(xn)/f'(xn)
F= X2+2x-4 ; D= 2x +2
Entonces X0=2 ; F(X0) = (2)2+2(2) –4 = 4+4- 4= 4 D(X0) = 2(2) +2 = 6
Module Module1
Function f(ByVal x As Single) As Single
Return x * x + 2 * x - 4
End Function
Function df(ByVal x As Single) As Single
Return 2 * x + 2
End Function
Function newton(ByVal a As Single, ByVal h As Single) As Single
Dim iter As Integer = 0
Dim x As Single = a, x1 As Single = x, dif As Single
Do
iter += 1
x1 = x - f(x) / df(x)
dif = Math.Abs(x1 - x)
Console.WriteLine("Iteracion {0} {1} {2} {3} ", iter, x, x1, dif)
REM esta linea es explicativa
x = x1
Loop While (dif > h)
Return x
End Function
Sub Main()
Dim a, h, raiz As Single
a = 1 REM valor inicial
h = 0.01 REM hasta que el intervalo se h=0.01
raiz = newton(a, h)
Console.WriteLine("la Raiz por el metodo de newton es {0}", raiz)
Console.ReadLine()
End Sub
End Module
Module Module1
Function f(ByVal x As Single) As Single
Return x
End Function
Function g(ByVal x As Single) As Single
Return 4 - x
End Function
Function biseccion(ByVal a As Single, ByVal b As
Single, ByVal h As Single) As Single
Dim pr, d1, d2 As Single
Dim c As Single = CSng((a + b) / 2.0)
While ((b - a) > h)
c = (a + b) / 2
d1 = f(a) - g(a)
d2 = f(c) - g(c)
pr = d1 * d2
If (pr > 0) Then
a=c
Else : b = c
End If
End While
Return (a + b) / 2
End Function
Sub Main()
Dim a As Single = 0, h As Single = 0.001, b As Single = 10
Console.WriteLine("interseccion por le metodo de biseccion {0} ", biseccion(a, b, h))
Console.ReadLine()
End Sub
End Module
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 43-
Module Module1
Function f(ByVal x As Single) As
Single
Return (x + 2) * (x - 1) * (x - 3)
End Function
Para ilustrar la diferenciación numérica, consideremos una función f(x) como la que se
muestra en la figura. Supongamos que se desea evaluar la primera derivada de f(x)
en x= x0 . Si se conocen los valores de f en x 0 –h x0 y x0+h donde h es el tamaño del
intervalo entre dos puntos consecutivos en el eje x, entonces se puede aproximar f’
(x0) mediante el gradiente de la interpolación lineal A, B, o C mostradas en la figura.
Estas aproximaciones se llaman respectivamente las aproximaciones por diferencias
hacia adelante, hacia atrás y central, sus formulas matemáticas son como sigue:
f f f(x 0) f
f(x0) f(x) f(x) f(x 0) f(x)
A
C
B
X X X
x0 x0 +h x0-h x0 X0 -h X0 X0 +h
f’(X0) Se aproxima mediante el gradiente de una recta que pasa por f(x 0) y(x0)
f(x0)-f(x0 –h)
f’(x0)= - ------------------
h
C) Aproximación que utiliza C( aproximación por diferencia central)
f(x0+h)-f(x0-h)
f’(x0)= -----------------------
2h
Hallar la derivada de x3
Module Module1
Function f(ByVal x As Single) As Single
Return CSng(Math.Pow(x, 3))
End Function
Function dx1(ByVal x As Single, ByVal h As Single) As Single
Return (f(x + h) - f(x)) / h
End Function
Function dx2(ByVal x As Single, ByVal h As Single) As Single
Return (f(x) - f(x - h)) / h
End Function
Function dx3(ByVal x As Single, ByVal h As Single) As Single
Return (f(x + h) - f(x - h)) / (2 * h)
End Function
Sub Main()
Dim x As Single = 2, h As Single = 0.1
Console.WriteLine("derivada de x^3 para x={0} y h= {0}", x, h)
Console.WriteLine("aproximacion por diferencias hacia delante {0}", dx1(x, h))
Console.WriteLine("aproximacion por diferencias hacia atras {0}", dx2(x, h))
Console.WriteLine("aproximacion por diferencia central es {0}", dx3(x, h))
x=2
h = 0.00001
Console.WriteLine("derivada de x^3 para x={0} y h= {0}", x, h)
Console.WriteLine("aproximacion por diferencias hacia delante {0}", dx1(x, h))
Console.WriteLine("aproximacion por diferencias hacia atras {0}", dx2(x, h))
Console.WriteLine("aproximacion por diferencia central es {0}", dx3(x, h))
Console.ReadLine()
End Sub
End Module
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 46-
Module Module1
Function f(ByVal x As Single) As Single
Return x * x
End Function
Function dx(ByVal x As Single, ByVal h As Single) As Single
Return (f(x + h) - f(x)) / h
End Function
Sub Main()
Dim h As Single = 0.0001, x As Single
Console.WriteLine("valores de la funcion y su derivada ")
For x = -2 To 3 Step 0.5
Console.WriteLine("{0,8:f4} {1,8:f4} {2,8:f4} ", x, f(x), dx(x, h))
Next
Console.ReadLine()
End Sub
End Module
Module Module1
Function f(ByVal x As Single) As Single
Return CSng(Math.Sin(x))
End Function
Sub Main()
Dim x As Single, incre As Single = 0.5 REM por motivos did�cticos
Dim p1 As Single, p2 As Single, li As Single = 0
Dim ls As Single = 10, h As Single = 0.001
Console.WriteLine("valores de la funcion y su derivada ")
For x = li To ls Step incre
p1 = dx(x, h)
p2 = dx(x + incre, h)
Console.WriteLine("{0,8:f4} {1,8:f4} {2,8:f4} ", x, f(x), dx(x, h))
If (p1 * p2 < 0) Then
If (p1 < p2) Then
Console.WriteLine(" P.inflexion MINIMO {0}", x + incre)
Else : Console.WriteLine(" P.inflexion MAXIMO {0}", x + incre)
End If
End If
Next
Console.ReadLine()
End Sub
End Module
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 48-
Sin(x)
1
0.8
0.6
0.4
0.2
0
-0.2 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
-0.4
-0.6
-0.8
-1
Module Module1
Function f(ByVal x As Single) As Single
Return x * x
End Function
Sub Ingresar(ByRef a As Single, ByRef b As Single, ByRef n As Integer)
Dim opcion As Integer
Console.Write("Ingrese limite inferior a: ")
a = CSng(Console.ReadLine())
Console.Write(" Ingrese limite superior b: ")
b = CSng(Console.ReadLine())
Console.Write(" Ingrese numero de divisiones n: ")
n = CInt(Console.ReadLine())
End Sub
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 49-
Function circunscritos(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As
Single
Dim at As Single = 0, ap As Single, dx As Single, x As Single, y As Single
dx = (b - a) / n
For x = a + dx To b Step dx
y = f(x)
ap = dx * y
at = at + ap
Next
Return at
End Function
Sub main()
Dim n, opcion As Integer
Dim a As Single = 0, b As Single = 1, area As Single = 0
Do
Console.WriteLine("1. ingresar valores 2 circunscrito 3 inscritos ")
Console.WriteLine("4 punto medio 5 trapecial 6 simpson 7 todas 8 salir ")
Console.Write("Ingrese opcion :")
opcion = CInt(Console.ReadLine())
Select Case opcion
Case 1 : Ingresar(a, b, n)
Case 2 : Console.WriteLine("Area por R circunscritos es {0} ", circunscritos(a, b, n))
Case 3 : Console.WriteLine("Area por R inscritos es {0} ", inscritos(a, b, n))
Case 4 : Console.WriteLine("Area por R puntomedio es {0} ", puntomedio(a, b, n))
Case 5 : Console.WriteLine("Area por R trapecial es {0} ", trapecial(a, b, n))
Case 6 : Console.WriteLine("Area por R simpson es {0} ", simpson(a, b, n))
Case 7 : Console.WriteLine("Todas las opciones ")
Console.WriteLine("circunscritos es {0} ", circunscritos(a, b, n))
Console.WriteLine("Area por R inscritos es {0} ", inscritos(a, b, n))
Console.WriteLine("Area por R puntomedio es {0} ", puntomedio(a, b, n))
Console.WriteLine("Area por R trapecial es {0} ", trapecial(a, b, n))
Console.WriteLine("Area por R simpson es {0} ", simpson(a, b, n))
Case 8
Case Else : Console.WriteLine("no es e opcion correcta")
End Select
Loop While (opcion <> 8)
Console.ReadLine()
End Sub
End Module
Module Module1
Function f(ByVal x As Single) As Single
Return x * x
End Function
Function trapecial(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As
Single
Dim at As Single = 0, dx As Single = (b - a) / n, area As Single
Dim j, peso As Integer
For j = 0 To n
If (j = 0 Or j = n) Then
peso = 1
Else : peso = 2
End If
at = at + peso * f(a + j * dx)
area = dx / 2 * at
Next
Return area
End Function
Sub main()
Dim n As Integer
Dim a, b As Single
Console.Write("Ingrese limite inferior a: ")
a = CSng(Console.ReadLine())
Console.Write(" Ingrese limite superior b: ")
b = CSng(Console.ReadLine())
Console.Write(" Ingrese Numero de divisiones n: ")
n = CInt(Console.ReadLine())
Console.WriteLine("el area por el metodo trapecia regla general {0}", trapecial(a, b, n))
Console.ReadLine()
End Sub
End Module
Module Module1
Function f(ByVal x As Single) As Single
Return x * x
End Function
Module Module1
Function f(ByVal x As Single) As Single
Return -x * x + 3 * x + 10
End Function
Function dx(ByVal x As Single) As Single
Dim h As Single = 0.001
Dim deriv As Single = (f(x + h) - f(x)) / h
Return deriv
End Function
Function inflex(ByVal a As Single, ByVal b As Single, ByVal h As Single) As Single
Dim x As Single = a
Dim p1 As Single, p2 As Single
For x = a To b Step h
p1 = dx(x)
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 53-
p2 = dx(x + h)
If (p1 * p2 < 0) Then
Exit For
End If
Next
Return x + h
End Function
Sub main()
Dim a As Single = -5, b As Single = 6, h As Single = 0.001, r1 As Single, p1 As
Single, area As Single
r1 = biseccion(a, b, h)
p1 = inflex(r1, b, h)
area = simpson(r1, p1, 1000)
Console.WriteLine("el valor de la raiz es {0} ", r1)
Console.WriteLine("el punto de imflexion esta en {0} ", p1)
Console.WriteLine("el Area es {0} ", area)
Console.ReadLine()
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 54-
Console.ReadLine()
End Sub
End Module
Module Module1
Function ventas(ByVal x As Single, ByVal pv As Single) As Single
Return pv * x
End Function
Sub main()
Dim li As Single = 0, ls As Single = 15
Dim h As Single = 1, q As Single
Dim pv As Single = 10, cf As Single = 50
Dim cv As Single = 5, utilidad As Single, qe As Single
Console.WriteLine(" {0} {1}{2}{3}", " q ", " V=p*q", " Ct=cf+cv", "U=V-CT")
For q = li To ls Step h
utilidad = ventas(q, pv) - ct(q, cf, cv)
Console.Write("{0} {1} {2} {3} ", q, ventas(q, pv), ct(q, cf, cv), utilidad)
If (utilidad < 0) Then
Console.ForegroundColor = CType(12, ConsoleColor)
Console.WriteLine("PERDIDA")
Else
If (utilidad = 0) Then
Console.ForegroundColor = CType(14, ConsoleColor)
Console.WriteLine("PUNTO EQUILIBRIO")
End If
Console.ForegroundColor = CType(9, ConsoleColor)
Console.WriteLine("GANANCIA")
End If
Next
qe = interseccion(li, ls, 0.0001, pv, cf, cv)
Console.WriteLine("el punto de equilibrio esta en {0} unidades ", qe)
Console.ReadLine()
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 56-
End Sub
End Module
Option Explicit On
Option Strict On
Module Module1
Function ventas(ByVal x As Single, ByVal pv As Single) As Single
Return pv * x
End Function
Function ct(ByVal x As Single, ByVal cf As Single, ByVal cv As Single) As Single
Return cf + cv * x
End Function
Function interseccion(ByVal a As Single, ByVal b As Single, ByVal h As Single, ByVal
pv As Single, ByVal cf As Single, ByVal cv As Single) As Single
Dim c As Single = (a + b) / 2, pr As Single
Dim dif1, dif2 As Single
While ((b - a) > h)
c = (a + b) / 2
dif1 = ventas(a, pv) - ct(a, cf, cv)
dif2 = ventas(c, pv) - ct(c, cf, cv)
pr = dif1 * dif2
If (pr > 0) Then
a=c
Else
b=c
End If
End While
Return (a + b) / 2
End Function
Sub main()
Dim factor As Single = 10
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 57-
Dim li As Single = 0, ls As Single = 20, h As Single = 1, pv As Single = 10 / factor
Dim cf As Single = 50 / factor, cv As Single = 5 / factor, utilidad As Single, qe As
Single
Dim x As Single, y1 As Single, y2 As Single, px1 As Single, py1 As Single
Dim cx As Single = 2, cy As Single = 24, ex As Single = 1, ey As Single = -1
For x = li To ls Step h
y1 = ventas(x, pv)
y2 = ct(x, cf, cv)
Console.ForegroundColor = CType(9, ConsoleColor)
Console.SetCursorPosition(CInt(cx + x * ex), CInt(cy + y1 * ey))
Console.WriteLine("*")
Console.ForegroundColor = CType(12, ConsoleColor)
Console.SetCursorPosition(CInt(cx + x * ex), CInt(cy + y2 * ey))
Console.WriteLine("*")
Next
qe = interseccion(li, ls, 0.0001, pv, cf, cv)
Console.ForegroundColor = CType(14, ConsoleColor)
Console.SetCursorPosition(CInt(cx + qe * ex), CInt(cy + ventas(qe, pv * ey)))
Console.WriteLine("Pe= {0}", qe)
Console.ReadLine()
End Sub
End Module
Tarea pruebe con diferentes valore de Costo Fijo, costo variable precio de venta , y el
factor y vea las variaciones en la grafica
Tarea 2. Elabores esta aplicación en programación visual
Problema C407 Encontrar el área de un circulo dado el tope (que puede variar
de 0 a 2*radio) si tope = 0 (Es todo el circulo) Si el tope = radio (Es medio
círculo)
Module Module1
Function f(ByVal x As Single, ByVal radio As Single) As Single
Dim y As Single
If (radio * radio - x * x > 0) Then
y = CSng(Math.Sqrt(radio * radio - x * x))
Else : y = 0
End If
Return y
End Function
Function simpson(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As
Single
Dim at As Single = 0, dx As Single = (b - a) / n, area As Single
Dim j, peso As Integer
Dim r As Single = Math.Abs(a)
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 58-
For j = 0 To n
If (j = 0 Or j = n) Then
peso = 1
Else
If j Mod 2 = 1 Then
peso = 4
Else
peso = 2
End If
End If
at = at + peso * f(a + j * dx, r)
Next
area = dx / 3 * at
Return area
End Function
Sub main()
Dim radio As Single = 1, n As Single = 1000, area As Single
area = simpson(-radio, radio, CInt(n))
Console.WriteLine("el Area es {0}", area * 2)
Console.ReadLine()
End Sub
End Module
tiene la forma cónica cuyo radio Mayor( R ) es 1 metro y el menor ( r) 80 cm. Calcular la
cantidad de litros de agua que contiene a una altura dada ( la altura máxima es de 0.6
cm)
Explique por la regla de Simpson con 6 divisiones a= 0 b = 0.6 verifique por el
Volumen de tronco de cono = h/3(pR2 +pr2 +pRr)
donde h es la altura R y r los radios de las bases
Solución
la ecuacion de la recta es que pasa por los puntos p1(0.80), p2 (0.6,1)
Encontramos los valores de b= (y1-y0)/(x1-x0)= (1-0.8)/(0.6-0)= 0.3333
Encontramos el valor de a= y1-b*x1= 1-0.333(0.6) =0.8
Por la tanto f(x)= 0.8 +0.3333x
X f(X)
0.0000 0.8000
0.1000 0.8333
0.2000 0.8667
0.3000 0.9000
0.4000 0.9333
0.5000 0.9667
0.6000 1.0000
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 59-
Module Module1
Function f(ByVal x As Single) As Single
Return CSng(0.8 + 0.3333333 * x)
End Function
Function volumen(ByVal a As Single, ByVal b As Single, ByVal n As Single) As Single
Dim x, dx, vp As Single
Dim vt As Single = 0, r As Single
dx = (b - a) / n
For x = a To (b - dx) Step 2 * dx
r = CSng((f(x) + 4 * f(x + dx) + f(x + 2 * dx)) / 3.0)
vp = CSng(r * r * Math.PI * dx * 0.5) REM son 2 son dos alturas(dx)
vt = vt + vp
Next
Return vt
End Function
Sub main()
Dim a As Single = 0, b As Single = 0.6, n As Single = 10000
Console.WriteLine("El volumen del solido es {0}", volumen(a, b, n))
Console.ReadLine()
End Sub
End Module
Console.WriteLine(" {0} {1} {2} {3} {4} ", x, f(x) + f(x + dx) + f(x + 2 * dx), r, vp, vt)
Module Module1
Function f(ByVal x As Single) As Single
Return CSng(0.8 + 0.3333333 * x)
End Function
Function simpson(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As
Single
Dim at As Single = 0, dx As Single = (b - a) / n
Dim vt As Single = 0, vp As Single
Dim vol, r As Single
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 60-
Dim j, peso As Integer
For j = 0 To n
If (j = 0 Or j = n) Then
peso = 1
Else
If j Mod 2 = 1 Then
peso = 4
Else
peso = 2
End If
End If
r = f(a + j * dx)
vp = peso * r * r
vt = vt + vp
Next
vol = CSng((dx / 3.0) * Math.PI * vt)
Return vol
End Function
Sub main()
Dim a As Single = 0, b As Single = 0.6, n As Single = 6
Console.WriteLine("El volumen del solido es {0}", simpson(a, b, CInt(n)))
Console.ReadLine()
End Sub
End Module
Explicación
Console.WriteLine("{0} {2} {3} {4}", j, a + j * dx, f(a + j * dx), vp, vt)
-2
-3
-4
Problema C409.- Encuentre el Área
sombreada de la ecuación (x+1)(x-2)(x-3) desde la raíz hasta el primer punto
de inflexión explique como encuentra la raíz , la altura máxima elabore su
prueba de datos
Module Module1
Function f(ByVal x As Single) As Single
Return (x + 1) * (x - 2) * (x - 3)
End Function
Sub main()
Dim a As Single = -4 REM valor inicial para busqueda hacia adelante
Dim h As Single = 0.001
Dim raiz, pmax, area As Single
raiz = busca(a, h)
pmax = maximo(raiz, 10, h)
area = simpson(raiz, pmax, 1000)
Console.WriteLine("la raiz es {0} ", raiz)
Console.WriteLine("El punto maximo es {0} para x={0}", f(pmax), pmax)
Console.WriteLine("El Area sombreada es {0} ", area)
Console.ReadLine()
End Sub
End Module
El único número critico en (0,1 ) es x = 4/(π+4) =0.56 ,por tanto usando a(0)= 1,273
a (0,56) = 0.56 y a(1) = 1
Concluimos que el área máxima ocurre cuando x=0 , es decir cuando todo el alambre
se dedica a construir el circulo
Module Module1
Function f(ByVal x As Single) As Single
Return CSng(Math.Pow(x, 2) + Math.PI * Math.Pow((2 * (1 - x) / Math.PI), 2))
End Function
Sub main()
Dim nd As Single = 2000, li As Single = 0, ls As Single = 1
Console.WriteLine("valor de x x= {0} ", amayor(li, ls, nd))
Console.ReadLine()
End Sub
End Module
Programa en VB
Module Module1
Function f(ByVal x As Single) As Single
Return x * (100 - x)
End Function
Sub main()
Dim nd As Single = 2000, li As Single = 0, ls As Single = 100
Console.WriteLine("valor de x x= {0} ", pmayor(li, ls, nd))
Console.ReadLine()
End Sub
End Module
Programa en VB
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 65-
Module Module1
Function f(ByVal ancho As Single, ByVal per As Single) As Single
Return ancho * ((per - 2 * ancho) / 2)
End Function
Sub main()
Dim nd As Single = 10000, li As Single = 0
Dim ls As Single = 100
Dim ancho As Single = 100
Dim alto As Single = 100
Dim per As Single = 100
ancho = pmayor(li, ls, nd, per)
alto = CSng((per - 2 * ancho) / 2.0)
Console.WriteLine("ancho {0} ", ancho)
Console.WriteLine("alto= {0} ", alto)
Console.WriteLine("area {0} ", ancho * alto)
Console.ReadLine()
Console.ReadLine()
End Sub
End Module
Problema C413. Un rectángulo está acotado por los ejes y por la grafica de y =
(6-x/2) véase figura), que longitud debe tener el rectángulo para que su área
sea máxima
Función a optimizar A= x*y = x ( 6-x)/2
Restricción y = (6-x)/2
Dominio 0 a 6
Programa en VB
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 66-
Module Module1
Function f(ByVal x As Single) As Single
Return x * ((6 - x) / 2)
End Function
Sub main()
Dim nd As Single = 10000, li As Single = 0
Dim ls As Single = 6
Dim ancho As Single, alto As Single, per As Single = 100
ancho = pmayor(li, ls, nd)
alto = f(ancho)
Console.WriteLine("ancho {0} ", ancho)
Console.WriteLine("alto= {0} ", alto)
Console.WriteLine("area {0} ", ancho * alto)
Console.ReadLine()
End Sub
End Module
Module Module1
Function f(ByVal x As Single, ByVal y As Single, ByVal h As Single) As Single
Return CSng((h - y) + Math.Sqrt(Math.Pow(-x, 2) + y * y) + Math.Sqrt(x * x + y * y))
End Function
Sub main()
Dim nd As Single = 20000, li As Single = 0
Dim h As Single = 100
Dim ls As Single = h
Dim x As Single = 20
Dim y As Single, longMin As Single
y = lminima(li, ls, nd, x, h)
longMin = CSng((h - y) + Math.Sqrt(Math.Pow(-x, 2) + Math.Pow(y, 2)) +
Math.Sqrt(x * x + y * y))
Console.WriteLine("valor de y {0} ", y)
Console.WriteLine("longitud minima {0} ", LongMin)
Console.ReadLine()
End Sub
End Module
Module Module1
Function f(ByVal x As Single, ByVal a As Single, ByVal b As Single) As Single
Return a + b * x
End Function
Sub main()
Dim x1 As Double = 1, y1 As Double = 2, x2 As Double = 40, y2 As Double = 10,
x3 As Double = 20, y3 As Double = 12
Dim li As Single = CSng(x1), ls As Single = CSng(x2), nd As Single = 40000, a As
Single, b As Single, xmenor As Single
Dim dmenor As Double = 10000, dx As Double, x As Double, y As Double, d As
Double
b = CSng((y2 - y1) / (x2 - x1))
a = CSng(y1 - b * x1)
dx = (ls - li) / nd
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 69-
For x = li To ls Step dx
y = f(CSng(x), a, b)
d = Math.Sqrt(Math.Pow((x3 - x), 2) + Math.Pow((y3 - y), 2))
If (d < dmenor) Then
dmenor = d
xmenor = CSng(x)
End If
Next
Console.WriteLine("el punto de insercion es x= {0} y={1} ", xmenor, f(xmenor, a, b))
Console.WriteLine("con una distancia de {0} ", dmenor)
Console.ReadLine()
End Sub
End Module
Tarea. Cambie los puntos x1,y1 x2,y2 x3,y3 y vea los resultados , compruebe con el
Solver de Excel
Module Module1
Function f(ByVal base As Single, ByVal area As Single) As Single
Return base + 2 * area / base
End Function
Function pmenor(ByVal li As Single, ByVal ls As Single, ByVal n As Single, ByVal
area As Single) As Single
Dim Menor As Single = 400000, xmenor As Single = li, dx As Single, x As Single, y
As Single
dx = (ls - li) / n
For x = li To ls Step dx
y = f(x, area)
If (y < Menor) Then
Menor = y
xmenor = x
End If
Next
Return xmenor
End Function
Sub main()
Dim nd As Single = 180000, li As Single = 1, ls As Single = 180000
Dim area As Single = 180000, base As Single, h As Single
base = pmenor(li, ls, nd, area)
h = area / base
Console.WriteLine("base {0} ", base)
Console.WriteLine("altura= {0} ", h)
Console.WriteLine("valla {0} ", base + 2 * h)
Console.WriteLine("Area {0} ", base * h)
Console.ReadLine()
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 70-
End Sub
End Module
Module Module1
Sub main()
Dim utilidad As Single = 0, mayor As Single = 0
Dim lana As Single = 500, algodon As Single = 400, mlt As Single = 3
Dim mat As Single = 1, mlv As Single = 2, mav As Single = 2
Dim li As Single = 0, ls As Single, x1 As Single = 0
Dim x2, ntl, nta, nvl, nva, x1mayor, x2mayor As Single
X Y
40 2
PUNT DISTANCI
O X Y W A Dw
1 2 2 1000 38 38000
20.591260 41182.52
2 30 20 2000 3 07
6.8048E- 0.000204
3 40 2 3000 08 15
2 2
PROM 24 8
58.591260 79182.52
SUMA 4 09
p p1 p2
Usando lenguaje VB
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 72-
Module Module1
Sub main()
Dim cx As Single = 1, cy As Single = 24, ex As Single = 1, ey As Single = -1
Dim x1 As Single = 2, y1 As Single = 2, x2 As Single = 30, y2 As Single = 20, x3
As Single = 40, y3 As Single = 2
Dim w1 As Single = 1000, w2 As Single = 2000, w3 As Single = 3000
Dim dismenor As Single = 400000, ccx As Single, ccy As Single
Dim px, py, fila, col, d1, d2, d3, dw As Single
Console.ForegroundColor = CType(10, ConsoleColor)
linea(cx + x1 * ex, cy + y1 * ey, cx + x2 * ex, cy + y2 * ey)
linea(cx + x2 * ex, cy + y2 * ey, cx + x3 * ex, cy + y3 * ey)
linea(cx + x3 * ex, cy + y3 * ey, cx + x1 * ex, cy + y1 * ey)
px = (x1 + x2 + x3) / 3
py = (y1 + y2 + y3) / 3
Console.ForegroundColor = CType(9, ConsoleColor)
linea(cx + x1 * ex, cy + y1 * ey, cx + px * ex, cy + py * ey)
linea(cx + x2 * ex, cy + y2 * ey, cx + px * ex, cy + py * ey)
linea(cx + x3 * ex, cy + y3 * ey, cx + px * ex, cy + py * ey)
For fila = 1 To 24
For col = 1 To 70
d1 = CSng(Math.Sqrt(Math.Pow(col - x1, 2) + Math.Pow(fila - y1, 2)))
d2 = CSng(Math.Sqrt(Math.Pow(col - x2, 2) + Math.Pow(fila - y2, 2)))
d3 = CSng(Math.Sqrt(Math.Pow(col - x3, 2) + Math.Pow(fila - y3, 2)))
dw = d1 * w1 + d2 * w2 + d3 * w3
If (dw < dismenor) Then
ccx = col
ccy = fila
dismenor = dw
End If
Next
Next
Console.ForegroundColor = CType(12, ConsoleColor)
linea(cx + x1 * ex, cy + y1 * ey, cx + ccx * ex, cy + ccy * ey)
linea(cx + x2 * ex, cy + y2 * ey, cx + ccx * ex, cy + ccy * ey)
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 73-
linea(cx + x3 * ex, cy + y3 * ey, cx + ccx * ex, cy + ccy * ey)
Console.ForegroundColor = CType(14, ConsoleColor)
Console.SetCursorPosition(CInt(cx + x1), CInt(cy + y1 * ey))
Console.WriteLine("{0}: {1}", x1, y1)
Console.SetCursorPosition(CInt(cx + x2), CInt(cy + y2 * ey))
Console.WriteLine("{0}: {1}", x2, y2)
Console.SetCursorPosition(CInt(cx + x3), CInt(cy + y3 * ey))
Console.WriteLine("{0}: {1}", x3, y3)
Console.SetCursorPosition(CInt(cx + px), CInt(cy + py * ey))
Console.WriteLine("{0}: {1}", px, py)
Console.ForegroundColor = CType(15, ConsoleColor)
Console.SetCursorPosition(CInt(cx + ccx), CInt(cy + ccy * ey))
Console.WriteLine("{0}: {1}", ccx, ccy)
Console.ReadLine()
End Sub
End Module
p p1 p2
Nota. Para localizar una planta con muchos mercados se debe usar arreglos
Module Module1
Sub main()
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 75-
Dim b1 As Single = 8, h As Single = 8, n As Single = 1000, mayor As Single = 0
Dim Dx As Single = 360 / n
Dim fcgr = Math.PI / 180 REM equivalente de grados en radianes
Dim grados As Single = 20, alfa As Single
Dim B, altura, Area, angulo As Single
For grados = 0 To 360 Step Dx
alfa = CSng(grados * fcgr)
B = CSng(b1 + 2 * h * Math.Cos(alfa))
altura = CSng(h * Math.Sin(alfa))
Area = (b1 + B) / 2 * altura
If (Area > mayor) Then
mayor = Area
angulo = grados
End If
Next
Console.WriteLine("area maxima es {0}", mayor)
Console.WriteLine("cuando el angulo es {0} grados", angulo)
Console.ReadLine()
End Sub
End Module
a) encuentre el volumen del deposito en metros cúbicos, comprobar con la fórmula del
tronco de cono
b) Se mide la profundidad del agua que hay en deposito(altura determinada)
encuentre el volumen de agua almacenada
c) Dado un caudal de agua de litros /seg en cuanto tiempo se llena el depósito
( mostrar un grafico tiempo versus volumen )
El área de un tronco de cono se puede hallar mediante la fórmula:
Encontrar la ecuación de la recta que pasa por los puntos (0,4) (2,5)
Module Module1
Function f(ByVal x As Single) As Single
Return CSng(4 + 0.5 * x)
End Function
Function AreaLateral(ByVal a As Single, ByVal b As Single, ByVal n As Single) As
Single
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 77-
Dim x, dx, ap, r1, R2, g As Single
Dim at As Single = 0
dx = (b - a) / n
For x = a To b Step dx
r1 = f(x)
R2 = f(x + dx)
g = CSng(Math.Sqrt(dx * dx + Math.Pow(R2 - r1, 2)))
ap = CSng(Math.PI * (R2 + r1) * g)
at = at + ap
Next
Return at
End Function
Sub main()
Dim a As Single = 0, b As Single = 2, n As Single = 40000
Console.WriteLine("el Area Lateral del solido es {0}", AreaLateral(a, b, n))
Console.ReadLine()
End Sub
End Module
Problema C421 Encontrar el volumen del solido al girar alrededor del eje Y
Encontrar la recta que pasa por los puntos (4,0) y (5,2)
m= (2-0)//5-4)= 2
encontrando el valor en Y1 = a+b(x1) a=Y1-b(x1) a= 0-2*4= -8
Y= -8+2*x
Module Module1
Function f(ByVal x As Single) As Single
Return -8 + 2 * x
End Function
Sub main()
Dim a As Single = 0, b As Single = 4, n As Single = 4000, VA As Single, VB As
Single
VA = volumenA(a, b, n)
VB = volumenB(4, 5, n)
Console.WriteLine("el volumen del solido parte Aes {0}", VA)
Console.WriteLine("el volumen del solido parte Bes {0}", VB)
Console.WriteLine("el volumen del total es Bes {0}", VA + VB)
Console.ReadLine()
End Sub
End Module
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 79-
Module Module1
Function f(ByVal x As Single) As Single
Return 4
End Function
Sub main()
Dim a As Single = 0, b As Single = 2, n As Single = 1000
Dim V1 As Single, V2 As Single, V As Single, a1 As Single = 0, b1 As Single = 2
V1 = VolumenCilindro1(a, b, n)
Console.WriteLine("el volumen1 es {0}", V1)
V2 = VolumenCilindro2(a, b, n)
Console.WriteLine("el volumen2 es {0}", V2)
V = V1 - V2
Console.WriteLine("el volumen es {0}", V)
Console.ReadLine()
End Sub
End Module
Module Module1
Function f(ByVal x As Single) As Single
Return x * x
End Function
Sub main()
Dim n, opcion As Integer
Dim a As Single = 0, b As Single = 1, area As Single = 0
Do
console.writeline("1. ingresar valores 2 circunscrito 3 inscritos ")
console.writeline("4 punto medio 5 trapecial 6 simpson 7 todas 8 salir ")
Console.Write("Ingrese opcion :")
opcion = CInt(Console.ReadLine())
Select Case opcion
Case 1
Console.Write("Ingrese limite inferior a: ")
a = CSng(Console.ReadLine())
Console.Write(" Ingrese limite superior b: ")
b = CSng(Console.ReadLine())
Console.Write(" Ingrese N�mero de divisiones n: ")
n = CInt(Console.ReadLine())
Case 2 : Console.WriteLine("Volumen por R circunscritos es {0} ",
Vcircunscritos(a, b, n))
Case 3 : Console.WriteLine("Volumen por R inscritos es {0} ", VInscritos(a, b, n))
Case 4 : Console.WriteLine("Volumen por R puntomedio es {0} ",
VPuntoMedio(a, b, n))
Case 5 : Console.WriteLine("Volumen por Trapecial es {0} ", VTrapecial(a, b, n))
Case 6 : Console.WriteLine("Volumen por Simpson es {0} ", VSimpson(a, b, n))
Case 7 : Console.WriteLine("Todas las opciones ")
Console.WriteLine("circunscritos es {0} ", Vcircunscritos(a, b, n))
Console.WriteLine("Volumen por R inscritos es {0} ", VInscritos(a, b, n))
Console.WriteLine("Volumen por R puntomedio es {0} ", VPuntoMedio(a, b, n))
Console.WriteLine("Volumen por Trapecial es {0} ", VTrapecial(a, b, n))
Console.WriteLine("Volumen por Simpson es {0} ", VSimpson(a, b, n))
Case 8
Case Else : Console.WriteLine("no es e opcion correcta")
End Select
Loop While (opcion <> 8)
End Sub
Module Module1
Function f(ByVal x As Single) As Single
Return x / 2
End Function
vt = 0
dx = (b - a) / n
For x = a To b - dx Step dx
y1 = f(x)
y2 = f(x + dx)
r2 = x
R1 = x + dx
h = CSng((y1 + y2) / 2.0)
vp = CSng(Math.PI * R1 * R1 * h - Math.PI * r2 * r2 * h)
vt = vt + vp
Next
Return vt
End Function
Sub main()
Dim n, opcion As Integer
Dim a As Single = 0, b As Single = 1
Do
Console.WriteLine("1. ingresar valores 2 circunscrito 3 inscritos ")
Console.WriteLine("4 punto medio 5 trapecial 6 simpson 7 todas 8 salir ")
Console.Write("Ingrese opcion :")
opcion = CInt(Console.ReadLine())
Select Case opcion
Case 1
Console.Write("Ingrese limite inferior a: ")
a = CSng(Console.ReadLine())
Console.Write(" Ingrese limite superior b: ")
b = CSng(Console.ReadLine())
Console.Write(" Ingrese N�mero de divisiones n: ")
n = CInt(Console.ReadLine())
Case 2 : Console.WriteLine("Volumen Cilindro por R circunscritos es {0} ",
Vcircunscritos(a, b, n))
Case 3 : Console.WriteLine("Volumen Cilindro por R inscritos es {0} ",
Vinscritos(a, b, n))
Case 4 : Console.WriteLine("Volumen Cilindro por R puntomedio es {0} ",
VPuntoMedio(a, b, n))
Case 5 : Console.WriteLine("Volumen Cilindro por trapecial es {0} ",
Vtrapecial(a, b, n))
Case 6 : Console.WriteLine("Volumen Cilindro por Simpson es {0} ",
VSimpson(a, b, n))
Case 7 : Console.WriteLine("Todas las opciones ")
Console.WriteLine("circunscritos es {0} ", Vcircunscritos(a, b, n))
Console.WriteLine("Volumen Cilindro por R inscritos es {0} ", Vinscritos(a,
b, n))
Console.WriteLine("Volumen Cilindro por R puntomedio es {0} ",
VPuntoMedio(a, b, n))
Console.WriteLine("Volumen Cilindro por trapecial es {0} ", Vtrapecial(a, b, n))
Console.WriteLine("Volumen Cilindro por Simpson es {0} ", VSimpson(a, b, n))
Case 8
Case Else : Console.WriteLine("no es es opcion correcta")
End Select
Loop While (opcion <> 8)
End Sub
End Module
9 Diseño de producto
Se desea construir una vasija que se obtiene al girar una función
f(x) alrededor del eje y se desea que tenga un grosor de de 0.5
cm , cuanto de material se necesita para construir la vasija, y
cuanto de liquido almacena
11 Un herrero con 80 kgs. de acero y 120 kgs. de aluminio quiere hacer bicicletas de
paseo y de montaña que quiere vender, respectivamente a 20.000 y 15.000 Bolívares
cada una para sacar el máximo beneficio. Para la de paseo empleará 1 kg. De acero y
3 kgs de aluminio, y para la de montaña 2 kgs. de ambos metales. ¿Cuántas bicicletas
de paseo y de montaña venderá?
Respuesta. Ha de vender 20 bicicletas de paseo y 30 de montaña para obtener un
beneficio máximo de 850.000 Bolívares
15. se lanza una bola hacia arriba con una velocidad inicial de 64/pie/s desde una
altura inicial de 80 pies (ffigura 4.4) . Elaborar una programa que exprese la altura s en
funcion del tiempo t hasta cuando la bola llega al suelo. Modificar el programa para que
considere las coordendas x,y
Problema 5.- Un tanque tiene la forma cónica cuyo radio superior es 1 metro y el
inferior el inferior 80 cm. calcular la cantidad de litros de agua que contiene a una altura
dada (La altura máxima es de 0.6 cm)
compruebe con el volumen de tronco de cono = h/3(pR2 +pr2 +pRr)
donde h es la altura R y r los radios de las bases
Problema 6.- Se tiene una circunferencia de diámetro 0.2 Mt. Calcular su volumen
usando para ello cálculo de volúmenes con la computadora la ecuación de la
circunferencia es x= r2-x2 donde 0<= x <= r comprueba analíticamente sus
3
resultados de volumen de la esfera 4/3pR
Problema 7. Un banco tiene una demanda anual en su sucursal de 10 millones de soles
, el costo de transporte ( como son el carro blindado y otros se calcula en 2100 soles)
el costo de mantenimiento se calcula en un 2% del inventario promedio de capital que
exista en la sucursal. Elaborar un programa en c que calcule el punto de equilibrio osea
que cantidad de soles se se debe enviar a la sucursal y cada cuanto tiempo
El costo total de inventario se calcula con la fórmula
q r
CT= --- c1 + --- c3 ==
2 q
C1
C3
CT
Si desde cualquier punto se llega a una de las raíces aunque en algunos casos realiza
más iteraciones. Para ellos se ha probado con el siguiente segmento de código, En
este caso el punto X0 que varía desde –2 hasta 4 y encuentra siempres una de las
raíces
Puede usar Microsoft Excel para elaborar sus gráficos de funciones.Para ello siga los
siguiente pasos:
a) Rellene una columna con los valores de x para ello utilice Menú edición rellenar /
series.
b) Para calcular los valores f(x) utilice la siguiente columna por ejemplos f(x) =x 2
podría utilizar = A4*A4 o utilizar comando de función (Escoja funciones
matemáticas y trigonométricas) por ejemplo = seno(B4)
c) Utilice la opción copiar y pegar para los demás valores
d) Escoger el Icono / tipo de gráfico XY(Dispersión). Escoja la alternativa 2 dispersión
con líneas suavizadas y sin marcadores de datos.
e) Haga las correcciones necesarias con las opciones de gráficos
En la siguiente figura se muestra la gráfica la función f(x)= Sin(x) para –4<=x <4 ( x en
radianes)
Problemas
1. Estudie la aplicacion que grafica una funcion y con el Mouse se puede recorrer la
funcion y encuentra el area desde el limite inferirior hasta el punto requerido.
modifique el problema para la funcion cubica =(x-4)*(x-1)*(x+2) o otra función que
usted vea por conveniente . puede inclusive usar interseción de funciones
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 92-
TAREA
Se tiene la funcion f(x) = (x+2)(x-1)(x-2) encuentre el punto maximo y minimo,
entre los puntos li=-2 y ls = 3, lalongitud de arco entre li y ls , el area entre el li
y ls pruebe dx= 0.5 Y muestre los resultados de la siguiente manera
X F(X)
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 93-
-2 0
-1.5 5.625
-1 8
-0.5 7.875
0 6
0.5 3.125
1 0
1.5 -2.625
2 -4
2.5 -3.375
3 0
Module Module1
Function f(ByVal x As Single) As Single
Return (x - 2) * (x - 1) * (x - 3)
End Function
Sub main()
Dim a As Single = -2, b As Single = 3, nd As Single = 8000, xmin As Single, xmax
As Single
Console.WriteLine("la longitud de la funcion es de {0} a {1} es {2}", a, b,
longitud(a, b, CInt(nd), xmin, xmax))
Console.WriteLine("el minimo esta x={0} y y ={1} ", xmin, f(xmin))
Console.WriteLine("el maximo esta eb x={0} y ={1} ", xmax, f(xmax))
console.readline()
End Sub
End Module
Cual es el punto mas cercano y cual el mas elejado del punto maximo y de un punto
dado ,distancia cuva de l1 a l2 y recta de l1 a l2
Module Module1
Function f(ByVal x As Single) As Single
Return CSng(Math.Sin(x))
End Function
Dim x, y As Single
REM coordenadas
Console.ForegroundColor = CType(12, ConsoleColor)
For x = 1 To 70
Console.SetCursorPosition(CInt(x), CInt(cy))
Console.WriteLine("*")
Next
For y = 1 To 24
Console.SetCursorPosition(CInt(cx), CInt(y))
Console.WriteLine("*")
Console.ForegroundColor = CType(9, ConsoleColor)
Next
For x = li To ls Step dx
y = f(x)
Console.SetCursorPosition(CInt(cx + x * ex), CInt(cy + y * ey))
Console.WriteLine("*")
Next
While CBool((1))
For x = li To ls Step dx
Console.ForegroundColor = CType(14, ConsoleColor)
y = f(x)
Console.SetCursorPosition(CInt(cx + x * ex), CInt(cy + y * ey))
Console.WriteLine("*")
System.Threading.Thread.Sleep(10)
Console.ForegroundColor = CType(15, ConsoleColor)
Console.SetCursorPosition(1, 1)
Console.WriteLine("x= {0} y= {1}", x, y)
Console.ForegroundColor = CType(9, ConsoleColor)
Console.SetCursorPosition(CInt(cx + x * ex), CInt(cy + y * ey))
Console.WriteLine("*")
Next
End While
End Sub
Sub main()
Dim cx As Single = 40, cy As Single = 12, ex As Single = 8, ey As Single = -6
Dim x As Single, y As Single, li As Single = -4, ls As Single = 4, dx As Single = 0.01
graficar(cx, cy, li, ls, dx, ex, ey)
Console.ReadLine()
End Sub
End Module
LA FUNCION ES
X F(X)
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 96-
-2 1
-1 1,5
0 2
1 2,5
2 3
3 3,5
4 4
5 4,5
6 5
7 5,5
8 6
F(X)
7
6
5
4
3
2
1
0
-4 -2 0 2 4 6 8 10
Module Module1
Function f(x As Single) As Single
f = 2 + 0.5 * x
End Function
Dim at As Single = 0
Function Inscritos(a As Single, b As Single, dx As Single) As Single
If (a = b - dx) Then
Inscritos = f(b - dx) * dx
Else
Inscritos = (f(a) * dx) + Inscritos(a + dx, b, dx)
End If
End Function
Sub main()
Dim a As Single = 0
Dim b As Single = 5
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 97-
Dim n As Integer = 80
Dim h As Single = (b - a) / n
Dim area As Single
area = Inscritos(a, b, h)
Console.WriteLine(" la Integral es {0} ", area)
Console.ReadLine()
End Sub
End Module