Anda di halaman 1dari 97

Programacion y Metodos numéricos 2019A\.

Métodos numéricos \ Ismael Véliz Vilca - 1-

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. METODOS NUMERICOS DE FUNCIONES CONTINUAS

4.1 INTRODUCCION

Al aprender métodos numéricos nos volvemos aptos para:

1) Entender esquemas numéricos a fin de resolver problemas matemáticos de


ingeniería y científicos en una computadora.
2) Deducir esquemas numéricos básicos.
3) Escribir programas y resolverlos en una computadora
4) Usar correctamente el software existente para dichos métodos Ej. MATLAB

4.1.1 Series de Taylor: ( Nakamura paginas del 1 al 4)

Las soluciones numéricas son, en su mayoría aproximaciones de las soluciones


exactas.

El desarrollo de Taylor es una serie infinita de potencias que representa de manera


exacta a una función dentro de un cierto radio alrededor de un punto dado: Ej. La
función de X alrededor de X = 1 es

h2 h3 h4
Sen(x) = sen(1) + hcos(1) - ---- sen(1) - ---- cos(1) + ...--- sen(1) ++
2 6 24
donde h=x-1;

La serie de Taylor alrededor de x = 0 recibe el nombre de serie Maclaurin (Ejemplos)

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!

4.1.2.-Número en las computadoras

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

4.2.1 Método de rectángulo


0.00 0.50 1.00 1.50 2.00

circunscritos.-

Dado una función f(x),dividimos el intervalo de integración [a,b] en n Subintervalos


(Rectángulos) , cada uno de estos tendrá una longitud de dx=(b-a)/n .
El Área de cada rectángulo estará dada por ap = dx*y i (base = dx* altura yi que es
variable. Para este caso se considera el lado derecho del rectángulo como el alto y i.

Sea f(x)= x2 y el intervalo de integración [0,2] y n=4 se que tiene dx =(2-0)/4 =0.5

A1 = dx*y1 = 0.5*0.25 = 0.125


A2 = dx*y2 = 0.5*1.00 = 0.500
A3 = dx*y3 = 0.5*2.25 = 1.125
A4 = dx*y4 = 0.5*4.00 = 2.000
----------
AT = A1+A2+A3+A4 = 3.750
AT = dx(y1 + y2+ y3…Yn)
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 7-
Programa de integración por el método de rectángulos
circunscritos

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

4.2.2 Método de rectángulo Inscritos.-


Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 8-
Utilizando la misma función del
caso 4.2.1, el alto del rectángulo
(yi) se considera el lado izqueirdo

Sea f(x)= x2 y el intervalo de


integración [0,2] y n = 4 se que
tiene dx =(2-0)/4 =0.5

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

A1= dx*y0 = 0.5*0.00 = 0.000


A2= dx*y1 = 0.5*0.25 = 0.125
A3= dx*y2 = 0.5*1.00 = 0.500
A4= dx*y3 = 0.5*2.25 = 1.125
----------
AT= A1+A2+A3+A4 = 1.750

AT= dx(y0 + y1+y2…Yn-1))

Siendo el programa principal lo mismo, se cambia la función, su prototipo y la llamada


a la función ( observe las pequeñas variaciones)
La llamada a la función es area= inscritos(a,b,n);

Function inscritos(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 To b - dx Step dx
y = f(x)
ap = dx * y
at = at + ap
Next
Return at
End Function

4.2.3 Método del punto medio.

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.

Sea f(x)= x2 y el intervalo de integración [0,2] y n = 4 se que tiene dx =(2-0)/4 =0.5


Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 9-

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

Siendo el programa principal lo mismo, se cambia la función, su prototipo y la llamada a


la función.

Function PuntoMedio(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 / 2 To b Step dx
y = f(x)
ap = dx * y
at = at + ap
Next
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 10-
Return at
End Function

4.2.4 Método trapecial

Dado una función f(x) ,dividimos el intervalo de integración [a,b] en n Subintervalos


(Trapecios), cada uno de estos tendrá una longitud de dx=(b-a)/n .

El Área de cada trapecio estará dada por ap = dx* (y i+yi+1)/2 donde:


ap = Área parcial del trapecio
yi = Altura del lado izquierdo(Base menor)
yi+1 = Altura del lado derecho (base mayor)

Sea f(x)= x2 y el intervalo de integración [0,2] y n=4 se que tiene dx =(2-0)/4 =0.5

Area x y1=f(x) y2=f(x+dx) Ap At


A1 0.0000 0.0000 0.2500 0.0625 0.0625
A2 0.5000 0.2500 1.0000 0.3125 0.3750
A3 1.0000 1.0000 2.2500 0.8125 1.1875
A4 1.5000 2.2500 4.0000 1.5625 2.7500

A1 = dx*(y0+ Y1)/2= 0.5*(0.00+0.25)/2= 0.0625


A2 = dx*(y1+ Y2)/2= 0.5*(0.25+1.00)/2= 0.3125
A3 = dx*(y2+ Y3)/2= 0.5*(1.00+2.25)/2= 0.8125
A4 = dx*(y3+ Y4)/2= 0.5*(2.25+4.00)/2= 1.5625
----------
AT = A1+A2+A3+A4 = 2.7500
AT = dx(y1 + 2y2 + 2y3 + ... +2yn-1+Yn

Siendo el programa principal lo mismo, se cambia la función, su prototipo y la llamada a


la función.
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 11-

Function Trapecial(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As Single


Dim at As Single = 0, ap, dx, x, y1, y2 As Single
dx = (b - a) / n
For x = a To b - dx Step dx
y1 = f(x)
y2 = f(x + dx)
ap = (y1 + y2) / 2 * dx
at = at + ap
Next
Return at
End Function

4.2.5 Método Simpson

En este método, se toma el intervalo de anchura


2h(2*dx) comprendida entre xi y xi+2 , y se
sustituye la función f(x) por la parábola que pasa
por tres puntos (xi,y), (xi+1, yi+1) , y (xi+2, yi+2) el
valor del área aproximada sombreada es un poco
laborioso y el resultado es h/3 (yi+4yi+1 + yi+2)

Sea f(x)= x2 y el intervalo de integración [0,2] y


n=4 se tiene dx(h) =(2-0)/4 =0.5
n debe ser par:

Area x f(x) f(x+dx) f(x+2dx) Ap At


A1 0.0000 0.0000 0.2500 1.0000 0.3333 0.3333
A2 1.0000 1.0000 2.2500 4.0000 2.3333 0.6667

A1= dx/3 *( f(x0) +4 f(x1) + f(x2) = 0.1667*(0.00+4(0.25)+ 1.00))= 0.3333


A2= dx/3 *( f(x2) +4 f(x3) + f(x4) = 0.1667*(1.00+4(2.25)+ 4.00))= 2.3333
-------------
AT= A1+A2+A3+A4 = 2.6667

AT= dx/3 (y0 + 4y1+2y2+ 4y3+.. 2yn-2 +4yn-1+ yn)


Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 12-

Siendo el programa principal lo mismo, se cambia la función, su prototipo y la llamada a


la función.

Function Simpson(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As Single


Dim at As Single = 0, ap, h, x As Single
h = (b - a) / n
For x = a To b - h Step 2 * h
ap = h / 3 * (f(x) + 4 * f(x + h) + f(x + 2 * h))
at = at + ap
Next
Return at
End Function

4.2.6 Método de Monte Carlo

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

Function montecarlo(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As


Single
Dim ymax As Single = maximo(a, CInt(b), n)
Dim y As Single, rp As Single REM relaci�n de puntos
Dim rx As Single, ry As Single
Dim i As Integer, cont As Integer = 0
randomize()
For i = 0 To n
rx = Rnd() * (b - a)
y = f(rx)
ry = Rnd() * ymax
If (ry <= y) Then cont += 1
Next
rp = CSng(cont / n)
Return rp * ymax * (b - a)
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

RESUMEN DE METODOS DE INTEGRACION

4.3. CALCULO DE LOS VOLUMENES

4.3 1 Método del disco

∆V=πR2∆x

Para calcular el volumen de un sólido de revolución por el método de los discos ,


utilizar de las siguientes formulas

Ejemplo 1 Encontrar volumen de revolución dado por la función f(x)=x 2 0<=


x<=2 n=4000 y utilice la regla del trapecio.

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

Ver Menú de volumenes


Ejemplo 2 Calcular el volumen del sólido de revolución formado al hacer girar la región
acotada por la gráfica de:
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 16-
donde x(0≤x≤ π ) en torno al eje x

Solución matemática

Del Rectángulo representativo de la Fig 6.17


vemos que el radio de este sólido es

Así su volumen viene dado por

Usando lenguaje VB y cambiando la función a

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-

4.3.2 El Método de las arandelas o rebanadas

Sustituyendo el disco representativo por una arandela


representativa, el método de los discos se extiende a los sólidos
huecos , la arandela se genera haciendo girar un rectángulo en
torno al eje x , como se muestra en la figura . si r, R denotan
los radios interno y externo de la arandela y w su anchura el
volumen viene dado por

El volumen del sólido engendrado viene dado por:

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

En la figura vemos que los radios interno y externo son


R(x)= √x R(x) =x2
Integrando entre 0 y 1 obtenemos
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 18-

Solución con visual basic

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

4.3.3 Volumen por el método de las capas o casquetes cilíndricos

El método de cálculo integral para calcular volúmenes el de los casquetes cilíndricos,


proporciona una forma alternativa de calcular volúmenes de sólidos de revolución. En
ciertos casos es el único método viable porque el de las secciones transversales puede
resultar a veces difícil de aplicar o no puede aplicarse en absoluto.
Básicamente consiste en dividir el sólido de revolución en una serie de casquetes
cilíndricos que se incrustan unos dentro de otros y en integrar luego los volúmenes de
estos casquetes para obtener el volumen total.
V = V2 - V1
El volumen de un casquete cilíndrico o tubo es
. = p r22 h - p r12 h

= p (r22 - r12 )h
= p (r2 + r1 )(r2 - r1 )h

�r + r �
= 2p �2 1 �(r2 - r1 )h
�2 �

V= (circunferencia ) (altura)* grosor = (2π


r)(h)(∆)r
. Por lo tanto, el volumen Vi de este casquete
cilíndrico está dado por:
b
V=
�2p x f ( x) dx
a
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 20-

Para hallar el volumen de un sólido de


revolución por el método de las capas debe usarse las siguientes fórmulas

Ejemplo 1. Calcular el volumen de sólido de revolución generado al girar, en torno al


eje y, la región acotada por y =x-x3 y el eje y x (x≤x≤1)

Solución matemática. Puesto que el eje de revolución es vertical, tomamos un


rectángulo representativo vertical (véase figura). La anchura ∆x indica que la variable
integrable de integración es x. La distancia de centro del rectángulo al eje de giro es
p(x) =x y la al altura del rectángulo es h(x) = x-x 3. Como x varía entre 0 y 1 el volumen
del sólido es

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

Ver Menú de volúmenes método del cilindro

Nota : Cambie el cálculo de volumen parcial a


:vp=pi*pow(R,2)*h-pi*pow(r,2)*h ; y pruebe que da el mismo
resultado

Resolver por el método de los casquetes cilíndricos que se


obtiene al girar la función fx= x2 alrededor del eje y

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

Function VolumenCilindro(ByVal a As Single, ByVal b As Single, ByVal n As Single)


As Single
Dim x, R1, r2, dx, vp, rp As Single
Dim vt As Single = 0, 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(Math.PI * (R1 * R1 - r2 * r2) * h)
vt = CSng(vt + vp)
Next
Return vt
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

Calcular el volumen por el método de los casquetes cilíndricos de la función 4-x de 0 a


4 ( comprobar por el volumen del cono Volumen = A.Base · Altura / 3
V=Π·r2·h / 3

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

Function VolumenArandelas(ByVal a As Single, ByVal b As Single, ByVal n As


Single) As Single
Dim x, R1, r2, dx, h1, h2, h, vp As Single
Dim vt As Single = 0
dx = (b - a) / n
For x = a To (b - dx) Step dx
r2 = x
R1 = x + dx
h1 = f(r2)
h2 = f(R1)
h = (h1 + h2) / 2
vp = CSng(Math.PI * (R1 * R1 - r2 * r2) * h)
vt = vt + vp
Next
Return vt
End Function
Sub Main()
Dim a As Single = 0, b As Single = 4, n As Single = 4
Console.WriteLine("el volumen metodo de arandelas es {0}", VolumenArandelas(a, b,
n))
Console.ReadLine()
End Sub
End Module

Con n=4000 divisione la respuesta es igual

Pero si la curva fuera 2+0.5x los volúmenes serian diferentes

4.4 LONGITUD DE LA TRAYECTORIA O LONGITUD DE ARCO

Longitud de arco De Wikipedia, la enciclopedia libre

En matemática, la longitud de arco, también llamada rectificación de una curva, es


la medida de la distancia o camino recorrido a lo largo de una curva o dimensión lineal.

Es la suma de las distancias de los puntos

Ejemplo 1. Calcular la longitud de arco de la gráfica de y= x 3/6+1/(2x) en el intervalo


[1/2,2] Solución matemática ( según libro de Larson) al ser
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 24-

Se tiene para la longitud de arco

Solución con el leguaje VB2010

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

4.5 AREA DE UNA SUPERFICIE DE REVOLUCION

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

La fórmula para el área de una superficie de revolución se deduce de la fórmula del


área lateral de un tronco de cono. Consideremos el segmento recto de la figura, donde
L es la longitud del segmento, r1 el radio de giro de su extremo izquierdo y r2 el de su
extremo derecho. Al girar alrededor de sus eje de revolución , el segmento genera un
tronco de con circular recto con

S= 2πrL ( area lateral del tronco de cono)

Donde r=1/2(r1+r2) Radio medio del tronco de cono

Definición del área de una superficie de revolucion

Se y=f(x) una función con derivada continua en [a,b], el área S de la superficie de


revolución generada al girar la gráfica de f en torno a un eje horizontal o eje vertical es

Donde r(x) denota la distancia entre la gráfica de f y el eje de revolución


si x=g(y) en el intervalo [c,d], entonces el área de la superficie generada es

Donde r(y) denota la distancia entre la gráfica de g y el eje de revolución

Ejemplo 1 Calcular el área de la superficie de revolución formada al hacer girar la


gráfica de f(x) =x3 en el intervalo [0,1], en torno al eje x (ver figura)

Solución Matemática(Larson). La distancia entre gráfica de f y el eje x es r(x) = f(x) ,


como además f’(x) = 3x2 , el área pedida es
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 26-

Solución con lenguaje VB

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

Aplicando formula G= =RAIZ(36+(5-2)^2)= 6.7082 Al= =PI()*(5+2)*E16 = 147.52


Pruebe superficie de la esfera S = 4·π·r2 cambie a float a=-3.9999, b=3.999,
n=10000;

4.6 PROBLEMAS DE OPTIMIZACION

Ejemplo 1. Problemas de aplicación de máximos y mínimos

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 ?

Solución matemática.- ( de acuerdo al libro de cálculo y geometría analítica de Larson


p 236 ) como la base es cuadrada, el volumen de la caja viene dado por V= x 2h
( ecuación primaria)
( esta ecuación se llama ecuación primaria porque da una fórmula para la magnitud que
ha de ser optimizada . el área de la caja es S= x 2+ 4xh ( ecuación secundaria)

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-

Antes de hallar el valor de x que dará el máximo valor


para V, hemos de determinar el dominio admisible. Es
decir ¿qué valores de x tiene sentido en este
problema ? sabemos que V ≥0 y también que x ha de ser no negativo y el área de la
base (A=x2) es a lo sumo 108 , por tanto el dominio admisible es 0≤ x≤ √108
Para maximizar V, buscamos sus números críticos.

Evaluando V en el numero critico (x=6) que está en el dominio y en sus puntos


terminales , vemos que v(0) , v(6) =108 y v( √108) =0 por consiguiente V es máximo
para x=6 y la dimensiones de la caja en este caso son (6x 6 x 3)

Solución con lenguaje VB

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

Que convertido a números decimales es:


1.2247448 2.5
7
1.2247448 2.5
7

Resolviendo con lenguaje VB 2010


Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 29-

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

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?

Solución matemática (Larson)

Sea W la longitud a minimizar . a la vista de la figura podemos escribir W=y+z


Por el teorema de Pitágoras los valores de y y z son

W viene dado por


Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 30-

Según la solución matemática del libro de


Cálculo y Geometría Analítcia de Larson pag
240 es: se concluye que el cable ha de
amarrarse a 9 pies del poste de 12pies de
altura

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

4.7.- SOLUCION DE ECUACIONES NO LINEALES


Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 31-
4.7.1 Introducción

Las soluciones de una ecuación no lineal se llaman raíces o ceros. Los siguientes son
algunos ejemplos de ecuaciones no lineales

a) 1+ 4x-16x2+3x2+3x4 =0 ( ecuación polinomial )


b) tan(x) = tanh(2x) (ecuación trascendental)

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.

Resumen de esquemas para encontrar para encontrar raíces

Nombre (1) (2) tipos de Otras características especiales


ecuaciones
Busca si si Cualquiera Aplicable a todo
Bisección si no Cualquiera Robusto aplicable a funciones no
analíticas
Falsa Posición si si Cualquiera Convergencia lenta en un intervalo
grande
Falsa posición no si Cualquiera Más rápido que el método de falsa
modificada posición
Método de Newton no si Cualquiera Rápido, se necesita calcular f';
aplicable a raíces complejas
Método de secante no si Cualquiera rápido no se requiere calcular f'
Sustitución sucesiva no si Cualquiera Puede no converger
Método de Bairsow no si Polinomial Factores cuadráticos
(1) Necesidad de especificar un intervalo que contenga a la raíz
(2) Necesidad de la continuidad de f'

4.7.2 Método de busca

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

Podremos observar , considerando el eje y= f(x)


y=0 como sistema referencial, que se
cumple
a
f(b)
f(a) es negativo f(a) >0 b
f(b) es positivo f(b) >0 y=0
Entonces f(a)* f(b) <0 f(a)
Efectuaremos el proceso de búsqueda,
bajo los siguientes lineamientos
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 32-
a) Partimos de un cierto valor inicial A, escogiendo además una determinada longitud
H para el intervalo que se esta buscando : Estos valores son escogidos según el
criterio del usuario
b) Calculamos B como la suma de A más el intervalo B=A+H
c) Evaluamos la función f(x) en los valores A y B
d) Establecemos el producto f(A) * f(B) , si resultara negativo entonces [A,B] será el
intervalo buscado, en caso contrario es decir que el producto sea positivo, el nuevo
valor de A será el que tenía anteriormente B , siendo el nuevo valor de esté último su
valor anterior incrementado en H ,repitiéndose nuevamente el proceso hasta obtener el
producto negativo.

Ejemplo Localizar las raíces de f(x) = x2 +2x –4 =0 con h=0.5

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

En el ejercicio anterior encontrar las dos raíces

Module Module1
Function f(ByVal x As Single) As
Single
Return x * x + 2 * x - 4
End Function

Sub Buscartodas(ByVal a As Single, ByVal b As Single, ByVal h As Single)


Dim x, x1 As Single
x=a
x1 = x + h
Do
If (f(x) * f(x1) < 0) Then
Console.WriteLine("raiz esta en {0} y {1} ", x, x1)
End If
x = x1
x1 = x + h
Loop While (x1 <= b)
End Sub
Sub Main()
Dim a As Single = -4, b As Single = 3
Dim h As Single = 0.001
Buscartodas(a, b, h)
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 34-
Console.ReadLine()
End Sub
End Module

Prueba de Datos a= -4, b= 3, h=0.5


x x1 f(x) f(x1) f(x)*f(x1) Mensaje
-4.0000 -3.5000 4.0000 1.2500 5.0000
-3.5000 -3.0000 1.2500 -1.0000 -1.2500 raiz
-3.0000 -2.5000 -1.0000 -2.7500 2.7500
-2.5000 -2.0000 -2.7500 -4.0000 11.0000
-2.0000 -1.5000 -4.0000 -4.7500 19.0000
-1.5000 -1.0000 -4.7500 -5.0000 23.7500
-1.0000 -0.5000 -5.0000 -4.7500 23.7500
-0.5000 0.0000 -4.7500 -4.0000 19.0000
0.0000 0.5000 -4.0000 -2.7500 11.0000
0.5000 1.0000 -2.7500 -1.0000 2.7500
1.0000 1.5000 -1.0000 1.2500 -1.2500 raiz
1.5000 2.0000 1.2500 4.0000 5.0000
2.0000 2.5000 4.0000 7.2500 29.0000
2.5000 3.0000 7.2500 11.0000 79.7500

4.8 METODOS INTUITIVOS

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

4.7.3 Método de bisección

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)

Consideremos la curva mostrada


como la gráfica de la función y= f(x) la cual es continua en el intervalo [a,b]
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 35-

Encontrar las raíces de X2+2x-4 por el método de bisección

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

Prueba de datos con a=0 b= 5,h=0.1

Retorna 1.21094 (a+b)/2

4.7.4.-Método de regula Falsi1

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

Como se puede notarse, el método


c
de Regula Falsi es muy similar en su a f(b)
concepción al de Bisección siendo n
su variación fundamental , la m
c'
determinación del punto c b
f(c)
f(a)
Determinemos por ello el valor de la
tangente trigonométrica en c

tg m = f(a)/(c-a)
tg n = f(b)/(b-c)

teniendo en cuenta que m = n , entonces plantearemos tg m= tg n

f(a)/(c-a)= f(b)/(b-c) de donde c= (a * f(b) + b * f(a))/ (f(b)+f(a))


Como podemos observar del gráfico, f(a) es negativo, por ello podemos escribir
finalmente

a * f(b) - b * f(a)
c=-----------------------
f(b) - f(a)

Encontrar las raices de X2+2x-4 por el método de regula false


Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 37-
Module Module1
Function f(ByVal x As Single) As Single
Return x * x + 2 * x - 4
End Function

Function regula(ByVal a As Single, ByVal b As Single, ByVal h As Single) As Single


Dim c As Single, pr As Single
Dim dif As Single = Math.Abs(b - a)
While (Dif > h)
c = (a * f(b) - b * f(a)) / (f(b) - f(a))
pr = f(a) * f(c)
If (pr > 0) Then
a=c
Else : b = c
End If
Dif = Math.Abs(b - a)
End While
Return (a + b) / 2
End Function
Sub Main()
Dim a As Single = -0, b As Single = 2
Dim h As Single = 0.001
Console.WriteLine("raiz por le metodo de regula falsi {0} ", regula(a, b, h))
Console.ReadLine()
End Sub
End Module

Prueba de datos con a=0 b=2 y h= 0.1

Ingrese el siguiente valor y obtendra el siguiente resultado

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

4.9 METODOS ITERATIVOS2

4.7.5.- Método converge

1. Dada la función f(x) =0 despejamos de ella de algún modo , el valor de x


obteniéndose entonces X = g(x);
2. El algoritmo de proceso iterativo estará definido como:
Xn+1= g(Xn),

Es decir cada nuevo valor de x se obtendrá evaluando la función g(x) en el valor de


x obtenido anteriormente

3. Repetir sucesivamente el segundo paso tantas


veces como en la aproximación a la raíz y la
convergencia del método lo requieran.

Si bien este método es más simple y rápido en su


operatividad, debe tenerse siempre presente que la
función g(x) anteriormente mencionado no deberá ser
empleada mientras que no haya verificado su
convergencia

Aplicación .- Hallar la raiz positiva cercana a uno de


X2+2x-4 por el método converge

Solución , despejado : x= 0.5 (4-x2)


Entonces g(x) = 0.5(4-x2)
derivando g’(x) = -x

2 Apaza Herrera Op.Cit. Pág 28


Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 39-
verificando la condición de convergencia par ax= 1
| g’(1)| = | -1| = 1 no converge
intentando nuevamente , obtenemos x= raíz(4-2x)

Entonces g(x) = (4-2x) 1/2


derivando g’(x) = -(4-2x)-1/2
verificando la condición de convergencia tendremos
1 1

| g’(1)| = | - ---------- | = -- <1 Si converge


 4-2(1) 2

Con la cual se ha asegurado la convergencia del método procediendo a efectuar los


cálculos respectivos para las primeras iteraciones
i

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

En lo sucesivo al aplicar el método iterativo nos limitaremos a completar directamente


el siguiente cuadro.

Encontrar las Raíces de X2+2x-4 por el método converge

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

Prueba de datos para x=1 y error = 01.


Console.WriteLine("Iteracion {0} {1} {2} {3} ", iter, x, x1, dif)

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

4.7.6.- Método de Newton Raphson

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)

Partiendo para ello de un valor X 0 inicial el cual ha sido calculado mediante


cualquiera de los métodos de localización de raíces
En líneas generales el método de Newton - Raphson será convergente y aplicable a
la resolución de f(x) = 0 en el intervalo [a,b] cuando:
1.- Dentro del intervalo escogido exista por lo menos una raíz de f(x)= 0 , para ello
bastará verificar : f(a)* f(b) <0
2. La derivada de la función y= f(x) evaluada cualquiera de los valores contenidos en
el intervalo [a, b] deberá ser diferente de cero.
3. La primera y segunda derivadas de la función y= f(x) no cambian de signo en el
intervalo considerando [a,b]

Ejemplo hallar la raíz positiva de X2+2x-4

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

x1= X0- F/D= 2 - 4/6 =1.3333


F(X1) = (1.3333)2+2(1.3333) –4 = 1.7777+2.666- 4= 0.4444
D(X1) = 2(1.3333) +2 = 4.6666

x2=1.3333 - 0.4444/4.666= 1.2381


x3= 1.2381- 0.0090/4.47619 = 1.23607
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 41-
En lo sucesivo al aplicar el método de Newton -Raphson los valores de mostrarán del
modo siguiente hasta que Xn – (Xn-1) sea menor que H
i x F D Xn- xn-1
0.00000 2.00000 4.00000 6.00000 -
1.00000 1.33333 0.44444 4.66667 0.66666667
2.00000 1.23810 0.00907 4.47619 0.0952380952
3.00000 1.23607 0.00000 4.47214 0.0020263425
4.00000 1.23607 0.00000 4.47214 0.0000009181
5.00000 1.23607 0.00000 4.47214 0.0000000000

Programa Raíces por el método de Newton Raphson

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

4.9 INTERSECCION DE DOS FUNCIONES


(Ecuaciones simultaneas con dos variables)
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 42-

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-

Cambie las funciones a


Function f(ByVal x As Single) As Single
Return (x + 2) * (x - 1) * (x - 3)
End Function
Function g(ByVal x As Single) As Single
Return x * x
End Function

Tener cuidado de poner los limites


En el siguiente ejercicio se aplica el metodo busca para encontrar todas los puntos de
interseccion

Module Module1
Function f(ByVal x As Single) As
Single
Return (x + 2) * (x - 1) * (x - 3)
End Function

Function g(ByVal x As Single) As Single


Return x * x
End Function

Sub Buscartodas(ByVal a As Single, ByVal b As Single, ByVal h As Single)


Dim x, x1, d1, d2 As Single
x=a
x1 = x + h
Do
d1 = f(x) - g(x)
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 44-
d2 = f(x1) - g(x1)
If (d1 * d2 <= 0) Then
Console.WriteLine("raiz esta en {0} y {1} ", x, x1)
End If
x = x1
x1 = x + h
Loop While (x1 <= b)
End Sub
Sub Main()
Dim a As Single = -4, h As Single = 0.01, b As Single = 5
Buscartodas(a, b, h)
Console.ReadLine()
End Sub
End Module

Encuentre las coordendas x,y en cada interseccion


Console.WriteLine("raiz esta en {0} y {1} {2} ", x, f(x), x1)

cambia la función a 2+ seno(x)y 2+cos(x) y vea todas intersecciones por lo menos 8

4.10 DIFERENCIACION NUMERICA

La Diferenciación numérica, o aproximación por diferencias, se utiliza para evaluar las


derivadas de una función por medio de sus valores dados en los puntos de una
retícula, Las aproximaciones por diferencias son importantes en la solución de
ecuaciones ordinarias y parciales.

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:

Hacia Adelante Hacia Atrás Centrar

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)

A) Aproximación que utiliza A (aproximación por diferencias hacia delante)


f(x0+h) - f(x0)
f’(x0)= --------------------
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 45-
h

B) Aproximación que Utiliza B ( aproximación por diferencias hacia atrás)

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-

Hallar derivada cualquier función pruebe (x2-3x)2


Derivada 0 2(x2+3x)(2x+3)

Ejemplo 1 Diferenciación Numérica, la ecuación y su derivada.

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

4.11 Maximos y minimos de una función

Punto de inflexión.- Es aquel punto de la función donde la derivada cambia de signo


Máximo.- Es aquel punto donde la derivada cambia de + a -
Mínimo:- Es aquel Punto donde la derivada cambia de – a +
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 47-
Problema 2 Encontrar los máximos y los mínimos

Module Module1
Function f(ByVal x As Single) As Single
Return CSng(Math.Sin(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 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

4.11 PROBLEMAS RESUELTOS

Problema C401. Menú de Integrales

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

Function inscritos(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 To b - dx Step dx
y = f(x)
ap = dx * y
at = at + ap
Next
Return at
End Function

Function puntomedio(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 To b - dx Step dx
y = f(x + dx / 2)
ap = dx * y
at = at + ap
Next
Return at
End Function

Function Trapecial(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, y1 As Single, y2 As
Single, y As Single
dx = (b - a) / n
For x = a To b - dx Step dx
y1 = f(x)
y2 = f(x + dx)
y = f(x + dx / 2)
ap = CSng(dx * (y1 + y2) / 2.0)
at = at + ap
Next
Return at
End Function
Function simpson(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As
Single
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 50-
Dim at As Single = 0, ap As Single, dx As Single, x As Single, y1 As Single, y2 As
Single, y3 As Single
dx = (b - a) / n
For x = a To b - dx Step 2 * dx
y1 = f(x)
y2 = f(x + dx)
y3 = f(x + 2 * dx)
ap = CSng(dx / 3.0 * (y1 + 4 * y2 + y3))
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

Problema C402 Integración por la regla trapecial usando la fórmula general


Area = h/2(y0+2y1+2y2+2y3+...+2yn-1 +2yn)
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 51-

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

Problema C403 Integración por la regla de simpson usando la fórmula general


Area= h/3(y0+4y1+2y2+4y3+...+4yn-2 +2yn-1 +yn)

Module Module1
Function f(ByVal x As Single) As Single
Return x * x
End Function

Function simpson(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As


Single
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 52-
Dim at As Single = 0, dx As Single = (b - a) / n
Dim area As Single
Dim j As Integer, 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
at = at + peso * f(a + j * dx)
Next
area = dx / 3 * at
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}", simpson(a, b, n))
Console.ReadLine()
End Sub
End Module

Problema C404 Calcular el Área sombreada

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

Function biseccion(ByVal a As Single, ByVal b As Single, ByVal h As Single) As


Single
Dim c As Single = (a + b) / 2, pr As Single
While (Math.Abs(b - a) > h)
c = (a + b) / 2
pr = f(a) * f(c)
If (pr <= 0) Then
b=c
Else : a = c
End If
End While
Return a
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
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)
Next
area = dx / 3 * at
Return area
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

PROBLEMA C405. Encontrar el punto de


equilibrio dado un costo fijo y costo
variable y el precio de venta de un
producto
a) Mostrar con una la cantidad de productos,
las ventas, los costos totales , utilidad y un
comentario de acuerdo a la utilidad obtenida
si es ganancia perdida o punto de equilibrio
y también muestre su punto de equilibrio
b) Modifique el programa para graficar las ventas totales y los costos fijos y que
muestre el punto de equilibrio
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 55-

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 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

PROBLEMA C406 Grafique las rectas de ventas totales, mostrando el punto de


equilibrio

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

Problema C408.- Un tanque

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

Explicación por la regla de Simpson con 6 divisiones

Console.WriteLine(" {0} {1} {2} {3} {4} ", x, f(x) + f(x + dx) + f(x + 2 * dx), r, vp, vt)

0.0000 2.5000 1.6667 0.4363f 0.4363 0.0009 0.0000


0.2000 2.7000 1.8000 0.5089f 0.9453 0.0018 0.0044
0.4000 2.9000 1.9333 0.5871f 1.5324 0.0038 0.1574
El volumen del solido es 1.5324

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)

0 0.0000 0.8000 0.6400 0.6400


1 0.1000 0.8333 2.7778 3.4178
2 0.2000 0.8667 1.5022 4.9200
3 0.3000 0.9000 3.2400 8.1600
4 0.4000 0.9333 1.7422 9.9022
5 0.5000 0.9667 3.7378 13.6400
6 0.6000 1.0000 1.0000 14.6400
El volumen es 1.533097
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 61-
8
7
6
5
4
3
2
1
0
-3 -2 -1 -1 0 1 2 3 4

-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

Function dx(ByVal x As Single) As Single


Dim h As Single = 0.001
Dim deriv As Single = (f(x + h) - f(x)) / h REM tambien puede ser f(x)-f(x-h)
Return deriv
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 + b) / 2
End Function
Function maximo(ByVal li As Single, ByVal ls As Single, ByVal h As Single) As Single
Dim x As Single, p1 As Single, p2 As Single
For x = li To ls Step h
p1 = dx(x)
p2 = dx(x + h)
If (p1 * p2 < 0) Then Exit For
Next
Return 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
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 62-
Dim area As Single
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
at = at + peso * f(a + j * dx)
Next
area = dx / 3 * at
Return area
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

4.12 PROBLEMAS DE OPTIMIZACION

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 ?

Solución matemática de acuerdo al libro de Larson


A= (Área del cuadrado ) + el área del círculo)
A= x2+πr2 (ecuación primaria)

Como la cantidad de alambre es 4 pies , se tiene:


4= ( perímetro del cuadrado ) + ( perímetro del círculo)
4= 4x+ 2πr

Así pues r=2(1-x)/π, que sustituyendo en la ecuación primaria de


Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 63-

El dominio admisible ex 0 ≤r ≤ 1, restringido por el perímitro del cuadrado puesto que

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

Solución con lenguaje Vb

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

Function amayor(ByVal li As Single, ByVal ls As Single, ByVal n As Single) As Single


Dim Mayor As Single = 0, xmayor As Single = li
Dim dx, x, y As Single
dx = (ls - li) / n
For x = li To ls Step dx
y = f(x)
If (y > Mayor) Then
Mayor = y
xmayor = x
End If
Next
Return xmayor
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

Tarea Probar con varios valores


Problema C411 Hallar dos números positivos cuya suma sea 100 y su
producto el máximo posible

Función a optimizar x*y;


Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 64-
Restricción x+y=100 o x+(100-x)=100
Dominio de x 0 a 100

Programa en VB

Module Module1
Function f(ByVal x As Single) As Single
Return x * (100 - x)
End Function

Function pmayor(ByVal li As Single, ByVal ls As Single, ByVal n As Single) As Single


Dim Mayor As Single = 0, xmayor As Single = li
Dim dx, x, y As Single
dx = (ls - li) / n
For x = li To ls Step dx
y = f(x)
If (y > Mayor) Then
Mayor = y
xmayor = x
End If
Next
Return xmayor
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

poner la siguiente sentencia para probar las variaciones del producto

Console.WriteLine(" {0} {1} {2}", x, 100 - x, x * (100 - x))

Problema C412. Calcular la longitud y altura de un rectángulo que formen un


área máxima dado el perímetro

función a optimizar a= ancho*alto=LA


restricción 2* ancho + 2* alto = perímetro dado = 2L+2A
alto= ((p-2*L)/2)
función a optimizar = Area = L*(p-2*L)/2

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

Function pmayor(ByVal li As Single, ByVal ls As Single, ByVal n As Single, ByVal per


As Single) As Single
Dim Mayor As Single = 0, xmayor As Single = li
Dim dx, x, y As Single
dx = (ls - li) / n
For x = li To ls Step dx
y = f(x, per)
If (y > Mayor) Then
Mayor = y
xmayor = x
End If
Next
Return xmayor
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

Function pmayor(ByVal li As Single,


ByVal ls As Single, ByVal n As Single) As
Single
Dim Mayor As Single = 0, xmayor As Single = li
Dim dx, x, y As Single
dx = (ls - li) / n
For x = li To ls Step dx
y = f(x)
If (y > Mayor) Then
Mayor = y
xmayor = x
End If
Next
Return xmayor
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

Problema C414. Dos fabricas están situada en la


coordenadas (-x,0) y (x,0 ) y su central de suministro de
energía en el punto (0,h) (véase figura),calcular el valor
de y que hace mínima la longitud de la conducción de
energía a las fábricas

Función a optimizar longitud cable= (h-y) + z1 +z2


Por el teorema de Pitagoras Z1= raiz( -x2+y2 y
z2= raiz( x2+y2)
Rremplazando esos valores enla funcion objetivo
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 67-
2 2 2 2
Longitud cable (lc) = (h.y) +raiz((-x) +y ) +raiz(x +y )

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

Function lminima(ByVal li As Single, ByVal ls As Single _


, ByVal n As Single, ByVal x As Single, ByVal h As Single) As Single
Dim Menor As Single = 1000, ymenor As Single = li
Dim dy, y, z As Single
dy = (ls - li) / n
For y = li To ls Step dy
z = f(x, y, h)
If (z < Menor) Then
Menor = z
ymenor = y
End If
Next
Return ymenor
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

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
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 68-
Solución con solver de excel
CX CY
21.169166 6.3003154
04 53
punt
o x Y
1 1 2
2 40 10
5.8183634
p2 20 12 44
0.2051282
B 05
1.9579224
A 19

Solución con lenguaje VB

Module Module1
Function f(ByVal x As Single, ByVal a As Single, ByVal b As Single) As Single
Return a + b * x
End Function

Function lminima(ByVal li As Single, ByVal ls As Single _


, ByVal n As Single, ByVal x As Single, ByVal h As Single) As Single
Dim Menor As Single = 1000, ymenor As Single = li
Dim dy, y, z As Single
dy = (ls - li) / n
For y = li To ls Step dy
z = f(x, y, h)
If (z < Menor) Then
Menor = z
ymenor = y
End If
Next
Return ymenor
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

Problema C416.Una ganadero desea vallar un prado rectangular adyacente a


un rio, el prado ha de tener 180,000 m 2 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 ?

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

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 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
Siendo X1 Cantidad de trajes a fabricar
X2 Cantidad de vestidos a fabricar

Función objetivo 200 X1+ 150 X2


Sujeto a (restricciones)
3X1+2X2 <= 500 (r1 disponibilidad de tela de lana)
X1 + 2X2 <= 400 (r2 disponibilidad de tela de algodón)
1. Alternativas de decisión existe muchas alternativas (enteros)

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

ntl = lana / mlt


nta = algodon / mat
If (ntl < nta) Then
ls = ntl
Else
ls = nta
End If
For x1 = 0 To ls
nvl = (lana - 3 * x1) / mlv
nva = (algodon - x1) / mav
If (nvl < nva) Then
x2 = nvl
Else
x2 = nva
End If
utilidad = 200 * x1 + 150 * x2
If (utilidad > mayor) Then
mayor = utilidad
x1mayor = x1
x2mayor = x2
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 71-
End If
Next
Console.WriteLine("cantidad de trajes a fabricas {0}", x1mayor)
Console.WriteLine("cantidad de vestidos a fabricar {0} ", x2mayor)
Console.WriteLine("utilidad {0}", mayor)
Console.ReadLine()
End Sub
End Module

Problema C418 LOCALIZACION DE PLANTAS


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)

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

Ver caso localizacion con arreglos


Nota Si la población de lo centros de demanda son iguales entonces o no existen
entonces la planta se localizaria en

Solucion con solver de excel


X Y
29 12
PUNT DISTANCI
O X Y w A dw
28.792360 28792.36
1 2 2 1000 1 01
8.0622577 8062.257
2 30 20 1000 5 75
14.866068 14866.06
3 40 2 1000 7 87
2 2
PROM 24 8
51.720686 51720.68
SUMA 6 66

p p1 p2

Solucion con VB;


Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 74-
En el programa solo cambie float w1=1000, w2=1000,w3=1000;

Nota. Para localizar una planta con muchos mercados se debe usar arreglos

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 .

Base 1 Base Altura Área


8 8+16 cos 10 8 seno 10 22,21
8 8 +16 cos 20 8 seno 20 42,5

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

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

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:

El volumen de un tronco de cono se puede hallar utilizando la siguiente fórmula:

El área de la superficie del cono recto es:

donde r es el radio de la base y g la longitud de la generatriz del cono recto.


La generatriz de un cono recto equivale a la hipotenusa del triangulo rectángulo que
conforma con la altura del cono y el radio de la base;
su longitud es: .
Solución Parte a:

Encontrar la ecuación de la recta que pasa por los puntos (0,4) (2,5)

B=(5-4)/(2-0)=1/2=0.5 a= y1 +b(x1=0)=> a= 4 y= 4+0.5*x

Probando con la fórmula del tronco del cono


R 5
R 4
H 2
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 76-
127.7581
V 01

Probando con la formula del tronco de cono


V=3.1416*(5*5+4*4+5*4)*2/3= 127,76
Calculando el volumen con Excel

Calculo de Area lateral Por la formula del tronco de cono


Calculando generatriz : G= sqrt(2*2+1*1) = sqrt(5)=2.236
A= 3.1416*(5+4)*2.236+5*5+4+4] =63.2215
El area total
= 63.2215+5*5+4*4= 104.2215

Resolviendo con lenguaje VB

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

Function g(ByVal x As Single) As Single


Return 2
End Function

Function volumenA(ByVal a As Single, ByVal b As Single, ByVal n As Single) As


Single
Dim x, y1, y2, dx, vp, vt, r2, R1 As Single
vt = 0
dx = (b - a) / n
For x = a To b Step dx
r2 = x
R1 = (x + dx)
y1 = g(x)
y2 = g(x + dx)
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 78-
vp = CSng(Math.PI * (R1 * R1 - r2 * r2) * (y1 + y2) / 2)
vt = vt + vp
Next
Return vt
End Function

Function volumenB(ByVal a As Single, ByVal b As Single, ByVal n As Single) As


Single
Dim x As Single, y1 As Single, y2 As Single, dx As Single, vp As Single, vt As
Single = 0, r2 As Single, R1 As Single
dx = (b - a) / n
For x = a To b Step dx
r2 = x
R1 = (x + dx)
y1 = g(x) - f(x)
y2 = g(x + dx) - f(x + dx)
vp = CSng(Math.PI * (R1 * R1 - r2 * r2) * (y1 + y2) / 2)
vt = vt + vp
Next
Return vt
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-

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.

Module Module1
Function f(ByVal x As Single) As Single
Return 4
End Function

Function g(ByVal x As Single) As Single


Return x * x
End Function

Function VolumenCilindro1(ByVal a As Single, ByVal b As Single, ByVal n As Single)


As Single
Dim x, dx, h, vp, vt, r1, R2, V1, V2 As Single
dx = (b - a) / n
vt = 0
For x = a To b Step dx
r1 = x
R2 = x + dx
h = (f(r1) + f(R2)) / 2
V1 = CSng(Math.PI * (Math.Pow(r1, 2) * h))
V2 = CSng(Math.PI * (Math.Pow(R2, 2) * h))
vp = V2 - V1
vt = vt + vp
Next
Return vt
End Function
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 80-

Function VolumenCilindro2(ByVal a As Single, ByVal b As Single, ByVal n As Single)


As Single
Dim x As Single, dx As Single, h As Single, vp As Single
Dim vt As Single = 0, r1 As Single, R2 As Single, V1 As Single, V2 As Single
dx = (b - a) / n
For x = a To b Step dx
r1 = x
R2 = x + dx
h = (g(r1) + g(R2)) / 2
V1 = CSng(Math.PI * (Math.Pow(r1, 2) * h))
V2 = CSng(Math.PI * (Math.Pow(R2, 2) * h))
vp = V2 - V1
vt = vt + vp
Next
Return vt
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

Problema C424 Menú de volúmenes por el método del disco


Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 81-

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

Function Vcircunscritos(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As


Single
Dim vt As Single = 0
Dim vp, dx, x, y As Single
dx = (b - a) / n
For x = a + dx To b Step dx
y = f(x) REM es el radio
vp = CSng(Math.PI * Math.Pow(y, 2) * dx)
vt = vt + vp
Next
Return vt
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 82-
End Function

Function VInscritos(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As


Single
Dim vt As Single = 0, vp As Single, dx As Single, x As Single, y As Single
dx = (b - a) / n
For x = a To b - dx Step dx
y = f(x) REM es el radio
vp = CSng(Math.PI * Math.Pow(y, 2) * dx)
vt = vt + vp
Next
Return vt
End Function

Function VPuntoMedio(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As


Single
Dim vt As Single = 0, vp As Single, dx As Single, x As Single, y As Single
dx = (b - a) / n
For x = a To b - dx Step dx
y = f(x + dx / 2) REM es el radio
vp = CSng(Math.PI * Math.Pow(y, 2) * dx)
vt = vt + vp
Next
Return vt
End Function

Function VTrapecial(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As


Single
Dim vt = 0, vp, dx, x, y1, y2, y3, r As Single
vt = 0
dx = (b - a) / n
For x = a To b - dx Step dx
y1 = f(x)
y2 = f(x + dx)
r = CSng((y1 + y2) / 2.0)
vp = CSng(Math.PI * r * r * dx)
vt = CInt(vt + vp)
Next
Return vt
End Function

Function VSimpson(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As


Single
Dim vt = 0, vp, dx, x, y1, y2, y3, r As Single
vt = 0
dx = (b - a) / n
For x = a To b - dx Step 2 * dx
y1 = f(x)
y2 = f(x + dx)
y3 = f(x + 2 * dx)
r = CSng((y1 * y1 + 4 * y2 * y2 + y3 * y3) / 3.0)
vp = CSng(dx * Math.PI * r)
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 83-
REM ap=dx/3.0* pi* (pow(y1,2)+4* pow(y2,2)+ pow(y3,2))
vt = CInt(vt + vp)
Next
Return vt
End Function
End Module

Problema C425 Volumen por el metodo de casquetes cilindricos

Module Module1
Function f(ByVal x As Single) As Single
Return x / 2
End Function

Function Vcircunscritos(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As


Single
Dim vt, vp, dx, x, y, r2, R1, h As Single
vt = 0
dx = (b - a) / n
For x = a To b Step dx
r2 = x
R1 = x + dx
h = f(R1) REM es la altura
vp = CSng(Math.PI * h * (R1 * R1 - r2 * r2))
vt = CSng(vt + vp)
Next
Return vt
End Function
Function Vinscritos(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As
Single
Dim vt, vp, dx, x, y, r2, R1, h As Single
vt = 0
dx = (b - a) / n
For x = a To b - dx Step dx
r2 = x
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 84-
R1 = x + dx
h = f(r2) REM es la altura
vp = CSng(Math.PI * h * (R1 * R1 - r2 * r2))
vt = CSng(vt + vp)
Next
Return vt
End Function

Function VPuntoMedio(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As


Single
Dim vt, vp, dx, x, y, r2, R1, h As Single
vt = 0
dx = (b - a) / n
For x = a To b - dx Step dx
r2 = x
R1 = x + dx
h = f(x + dx / 2) REM es la altura
vp = CSng(Math.PI * h * (R1 * R1 - r2 * r2))
vt = CSng(vt + vp)
Next
Return vt
End Function

Function Vtrapecial(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As


Single
Dim vt, vp, dx, x, y1, y2, r2, R1, h As Single

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

Function VSimpson(ByVal a As Single, ByVal b As Single, ByVal n As Integer) As


Single
Dim vt, vp, dx, x As Single
Dim y1, y2, y3, r2, R1, h As Single
vt = 0
dx = (b - a) / n
For x = a To b - dx Step 2 * dx
r2 = x
R1 = x + dx
y1 = f(x)
y2 = f(x + dx)
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 85-
y3 = f(x + 2 * dx)
h = CSng((y1 + 4 * y2 + y3) / 3.0)
vp = CSng(Math.PI * h * (R1 * R1 - r2 * r2))
vt = CSng(CSng(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

4.13 PROBLEMAS PROPUESTOS

1. Encontrar la integral de cualquier función por cualquier método


Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 86-
2 X2
2. Hallar la raíz de x = sin(e ) por el método de bisección
3. Resolver ex = 1+ 1/x mediante el método de Newton Rapshon
4. Compruebe el volumen de un cilindro por el cálculo integral volumen del cilindro
= pi*r2*altura (base * altura)
5. . Encuentre el área sombreada dada por las fusiones f(x)= 0.5(x*x) y g(x)= sin(x)+10
6.-:.Calcular el área sombreada y encontrar el punto máximo de la función f(x) =-X 2
+4*X
7. Calcular el área de la región sombreada que se obtiene con las funciones f(x) = X 2 y
g(x) = e-x Fig. 2

8 Una esfera tiene de radio 4 Calcular su volumen usando calculo integral si la


ecuación del circunferencia y= sqrt(r*r-x*x) ,Y= sqrt(16-x*x) x varia de -4 hasta 4
La superficie de una esfera de radio, r, es S = 4·π·r2
El volumen de una esfera de radio, r, es V = 4·π·r3/3
el volumen del solido es 268.0807
volumen con formula de la esfera v= 4*3.1416*4*4*4/3 =268.08

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

Una superficie de revolución generada por una tramo de la curva


y=2+cos x rotada alrededor del eje x.
10 Problema de la Dieta
Supongamos que se cuenta con dos alimentos pan y queso , cada
uno de ellos contiene calorías y proteínas en diversas proporciones , Un kilogramo de
pan contiene 2000 calorías y 50 gramos de proteínas, y un kilogramo de queso
contiene 4000 calorías y 200 gramos de proteínas supongamos que una dieta norma
requiere cuando menos 6000 calorías y 200 gramos de proteínas diariamente
Por tanto si el kilogramo de pan cuesta $6.00 y 21$ el queso ¿ que cantidad de pan y
queso debemos comprar para satisfacer los requisitos de la dieta normal , gastando
la menor cantidad posible de dinero?

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

12 . Hallar el punto de la grafica de (fx) = 4-x2 más cercano al punto (1.0)


13: Distancia mínima Hallar el punto de la gráfica f(x) x2 más cercano al punto (4,3)
14 Se tiene la siguiente funcion cubica =(x-4)*(x-1)*(x+2)
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 87-

Calcule los siguientes valores en el rango de la primera raiz a


la última
1. La longitud de la funcion
2. La coordenadas del punto mas alto en ese intervalo
3. Las coordendas del punto mas bajo en ese intervalo
4. El area en ese intervalo
5. El volumen de solido de revolucion alrededor del eje X
6. Area lateral de revolucion en el intervalo
7. La distancia minima de la funcion al punto (3,2)
8. Ubicar un punto (x,y) en el intervalo de tal manera que
la distancia a los puntos de la funcion se minima
9. Ubicar un rectangulo de mayor area posible entre raiz1 y 2
10. Mostra el area de corte dado un un valor x

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

16 Encuentre el volumne de solido de revolucion


al girar el area sombreada alrededor del eje y

19 Encuentre el volumen al girar la funcion


alrededor del eje y

20 Determine el áera del réctangulo más


grande que tenga dos vértices en el eje x y
los otros dos en la parábola y =9-x 2, para
arriba del eje x (b) apoye graficamente la
respuesta del inciso (a)
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 88-
21 Trace la grafica de la funcion definida por
( f(x) = x3 -6x2+9x+1

Determine a partir de la grafica los extremos


relativos de f, los valores en los que ocurren
los extremos relativos , los intervalor en los
que f es creciente y en los que f es
decreciente .

22 Determine el arco de la curva y=x 3-6x2+9x-1


desde el punto (0,-1) hasta el punto (3,-1)

METODOS NUMERICOS PARTE I

Problema 1. obtener mediante la prueba de datos  2+0.x de a=2, b=6 y n=4 En la


prueba considere los valores de x, f(x), área parcial, área total e indicar el grafico las
áreas parciales
Problema 2. Encuentre la raíz de la ecuación f(x) por el método de bisección, elabore
su prueba su datos
Problema 3. Encuentre la raíz de la ecuación f(x) por el método de Newton Raphon,
elabore su prueba su datos
Problema 4. Encuentre la derivada de la función F(x2) elabore su prueba de datos
Problema 5. Encuentre las raíces de la función Y =(x-4)*(x-5)*(x+4)

METODOS NUMERICOS PARTE II


Problema 1. Encuentre los puntos de intersección y el
área de la figura sombreada que resulta de la
interseccion de las funciones f(x) = cos(x)+9 y g(x) =
x*x*0.1;

Problema 2. Encuentre las raíces de la función


y =(x-4)*(x-5)*(x+4)
problema 3 El área comprendida entre los puntos
mínimo y máximo de la función función Y=X 3-4X2-
5x+6

Problema 4 Encuentre el área de la región


sombreada que resulta de la intersección de las
funciones f(x)=x y g(x) = X2
Problema 5 Calcular el Area sombreada
que esta determinada de la primera raíz hasta el
máximo de la función f(x)= -x2+3x+10
el valor de la raiz es -2.000244
el punto de imflexion esta en 1.494807
el Area es 28.519711

4.14. PROBLEMAS VARIOS

Problema 1.- Si el precio de venta de un articulo es 5 soles unidad y el costo de


producción es 3 soles y el costo fijo es 100 soles
a) Cuantos artículos debe vender la empresa para no perder
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 89-
b) Si actualmente produce 200 unidades cuanto gana o pierde
Nota.- Resuelva por métodos iterativos y usando raíces de ecuaciones

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

Compruee con la fórmula del lote óptimo que es q= 2rc3/c1


c1 0.002
C3 2100
10,000,0
d 00
Nr COSTO
o q Nro Partes c1 C3 TOTAL
1,000,00 22,000.0
1 0 10 1000 21000 0
2,000,00 12,500.0
2 0 5 2000 10500 0
3,000,00 3.3333333 10,000.0
3 0 33 3000 7000 0
4,000,00
4 0 2.5 4000 5250 9,250.00
5,000,00
5 0 2 5000 4200 9,200.00
6,000,00 1.6666666
6 0 67 6000 3500 9,500.00
7,000,00 1.4285714 10,000.0
7 0 29 7000 3000 0
8,000,00 10,625.0
8 0 1.25 8000 2625 0
9,000,00 1.11111111 2333.3333
9 0 1 9000 33 11,333.33
10,000,0 1000 12,100.0
10 00 1 0 2100 0
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 90-

C1
C3
CT

4.15 Preguntas y respuestas

1. Si puede tener más de una variable con el mismo nombre


Si siempre en cuando esté en diferentes alcances. Es imposible tener dos variables
llamadas x declaradas en el mismo bloque de código. Empero si puede tener una
variable global llamado x y una variable local con el mismo nombre3

2. En el método de Newton Raphson, quiero hacer un programa donde solo


tengo que ingresar la función no deseo estar derivando se puede hacerlo.
Solo tiene que modificar la función de la derivada a
float dx(float x)
{ float h = 0.001;
float deriv = (f(x+h)-f(x))/h;
return deriv;
}

3. En el método de Newton Raphson , Se puedo escoger cualquier punto de X 0


inicial

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

{float a,h,raiz; Iter 4 -2.0000 -3.2361


h=0.01;// hasta que el intervalo se h=0.01 Iter 5 -1.5000 -3.2361
clrscr(); Iter 15 -1.0000 1.2361
for (a=-2; a<= 4 ;a=a+0.5) Iter 5 -0.5000 1.2361
{raiz= newton(a,h); ------
printf("%8.4f %8.4f",a,raiz); Iter 4 3.5000 1.2361
} Iter 4 4.0000 1.2361
getch();
}

4. Que métodos de integración y raíces de ecuaciones me recomienda

En los métodos de integración recomiendo el método trapecial y de Simpson, el método


del rectángulo es un poco impreciso. En las raíces de ecuaciones los métodos más

3 . Reisdorph Kent C++ Builder 3, PRENTICE HALL , México ,1999 Pag


68
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 91-
adecuados son los métodos de busca, bisección y Newton Raphsón. Los métodos de
Regula Falsi y Converge tienen inconvenientes.

Para el método de busca se recomienda escoger el punto inicial de lo contrario podría


no encontrar la raíz

En los métodos de Bisección y Newton Raphson se recomienda que la computadora


pruebe si hay raíz con la fórmula f(a)* f(b) <= si hay raíz entonces continuar con el
método de lo contrario la computadora debe lanzar el mensaje “que no se encuentra
raíz en ese intervalo”.

5. Como realizar gráficas de funciones En Microsoft Excel

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-

Y desarrolle las siguientes acciones

Grafique la función con sus coordenadas y escalas adecuadas


Calcule los siguientes valores en el rango de la primera raíz a la última (u otro
rango)
11. La longitud de la función
12. La coordenadas del punto más alto en ese intervalo
13. Las coordenadas del punto más bajo en ese intervalo
14. El área en ese intervalo
15. El volumen de solido de revolución alrededor del eje X
16. El volumen de solido de revolución alrededor del eje Y
17. Área lateral de revolución en el intervalo
18. La distancia mínima de la función al punto (X,Y Ej3.2 )
19. Ubicar un punto (x,y) en el intervalo de tal manera que la distancia a los puntos de
la función sea mínima
20. Ubicar un rectángulo de mayor área posible entre raiz1 y 2
21. Mostrar el área de corte dado en un valor x y también en un valor de y
22. Obtener la derivada en un puntos (x,y)
23. Obtener las intersección caso en que hay varias funciones
24. Encontrar la distancia mínima de un punto obtenido al hacer clic con el mouse a un
punto de la función
25. Realizar los puntos 1 al 14 en modo visual
26. Realizar grafica en 3d

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

Function longitud(ByVal a As Single, ByVal b As Single, ByVal n As Integer, ByRef


xmin As Single, ByRef xmax As Single) As Single
Dim dx As Single = (b - a) / n
Dim x1, y1, x2, y2, dp, x, y As Single
Dim maximo As Single = -1000, minimo As Single = 1000, dt As Single = 0
For x = a To b - dx Step dx
x1 = x
x2 = x + dx
y1 = f(x)
y2 = f(x + dx)
If (y1 > maximo) Then
maximo = y1
xmax = x1
End If
Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 94-
If (y1 < minimo) Then
minimo = y1
xmin = x1
End If
dp = CSng(Math.Sqrt(Math.Pow(x2 - x1, 2) + Math.Pow(y2 - y1, 2)))
dt = dt + dp
Next
Return dt
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

Graficar un una función y recorrerlo y en cada momento el programa debe


informar la posicion x,y y la distancia recorrida

Module Module1
Function f(ByVal x As Single) As Single
Return CSng(Math.Sin(x))
End Function

Sub graficar(ByVal cx As Single, ByVal cy As Single, ByVal li As Single, _


Programacion y Metodos numéricos 2019A\. Métodos numéricos \ Ismael Véliz Vilca - 95-
ByVal ls As Single, ByVal dx As Single, ByVal ex As Single, ByVal ey As
Single)

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

Problema 3 .- Utilizando recursividad encuentre la integraL de una función


que usted crea desde el punto a al punto b
Encuentre también la trayectoria del punto a al punto b

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

Anda mungkin juga menyukai