Está en la página 1de 4

Laboratorio 1 – Soluciones Computacionales a

problemas de Ingeniería
IST - 436004

C. Arias, A. Goenaga, A. Locarno, J. Márquez, M. Rico


Facultad de Ingeniería
Universidad del Norte
Barranquilla, Atlántico, Colombia
23 de Marzo del 2015

Resumen—Matlab permite resolver problemas de ingeniería for se escribe la función que se moverá en la posición
usando ciertos métodos numéricos o creando algoritmos que que determine su variable x.
permitan llegar a soluciones, de acuerdo a esto en el siguiente Además del ciclo for, existe otro factor determinante
laboratorio aplicaremos los conocimientos para resolver para la creación de la gráfica, este es el comando
plot, el cual dibuja la gráfica de la función asignada.
I. INTRODUCCIÓN
No obstante entre otros de los comandos usados es
La importancia de Matlab radica en que se pueden resolver pause, el cual es usado para controlar el tiempo de
infinidades de problemas de ingeniería escogiendo ejecución. En ocasiones se utiliza otro comando,
adecuadamente los algoritmos correctos, además de que se drawnow, usado para volcar la cola de eventos y
pueden realizar cálculos complejos que a mano se tornarían actualizar la ventana de la figura en cada iteración y
complicados de realizar. por último se escribe hold on para no borrar la gráfica
En este laboratorio se dispondrá a trabajar con la herramienta anterior.
de software matemático Matlab, con el cual se desarrollaran los
algoritmos para graficar el epi y el hipo trocoides para el 2. Epitrocoide
primer punto, para el segundo, se tomó como referencia La epitrocoide es la curva que traza un punto a una
algoritmos trabajados en clase, más concretamente el de distancia c del centro r de una circunferencia móvil,
Newton Raphson multivariable y el de ascenso acelerado para que gira por fuera de una circunferencia de radio R
hallar las raíces y óptimos de un polinomio cualesquiera. Para (Páramo, 2004). El nombre proviene del griego ’epi’
el tercer punto realizamos un script que diera un solución que significa encima de, ‘trocos’ que se refiere a
óptima al problema “F geometry once again” planteado por el círculo y ‘ide’ que se refiere a semejante a gracias a
profesor en el laboratorio. su nombre, se puede dar una aproximación de la
Por último la finalidad de este trabajo es la de poder aplicar los figura que resulta.
algoritmos trabajados en clase y así poder conseguir la solución Dependiendo de los múltiples valores que se le
más óptima para resolver los problemas planteados en este puedan dar a R, r y d las representaciones de la
laboratorio. gráfica puede variar.
Las ecuaciones paramétricas de la epitrocoide son:
II. MARCO TEÓRICO
𝑥 = (𝑅 + 𝑟) ∗ 𝑐𝑜𝑠⁡(𝑡) − 𝑑 ∗ 𝑐𝑜𝑠⁡((𝑅 + 𝑟)/𝑟 ∗ 𝑡)
Para que sea más eficaz la práctica es indispensable saber 𝑦 = (𝑅 + 𝑟) ∗ 𝑠𝑖𝑛⁡(𝑡) − 𝑑 ∗ 𝑠𝑖𝑛⁡((𝑅 + 𝑟)/𝑟 ∗ 𝑡)
ciertos temas que permitan el entendimiento. Entre estos temas
son: 3. Hipotrocoide
1. Animaciones en Matlab La hipotrocoide es la curva que traza un punto a una
Matlab permite crear gráficas y a su vez poder darles distancia c del centro b de un círculo móvil, que gira
movimiento, originando así, las animaciones. Estas se por dentro de una circunferencia de radio a (Páramo,
pueden realizar por medio del ciclo for para hacer las 2004). El nombre proviene del griego ’hipo’ que
iteraciones necesarias que originarán la gráfica en significa debajo de, ‘trocos’ que se refiere a círculo y
movimiento. Por tanto en el ciclo for se debe declarar ‘ide’ que se refiere a semejante a gracias a su
una variable, i por ejemplo, a la cual se le dará un nombre, se puede dar una aproximación de la figura
valor inicial hasta uno final, el cual será hasta donde que resulta.
se quiere que se mueva la gráfica. Dentro del ciclo
Dependiendo de los múltiples valores que se le punto situado a una distancia d del centro de una
puedan dar a a, b y c las representaciones de la circunferencia generatriz de radio r (círculo móvil) que rueda
gráfica pueden variar. tangencialmente sobre una circunferencia directriz de radio R
Las ecuaciones paramétricas de la epitrocoide son: (circunferencia fija). Para iniciar en el script en Matlab se
𝑥 = (𝑎 − 𝑏) ∗ 𝑐𝑜𝑠⁡(𝑡) + 𝑐 ∗ 𝑐𝑜𝑠⁡((𝑎 − 𝑏)/𝑏 ∗ 𝑡) deberá leer las variables R, r y d, debido a que para generar las
𝑦 = (𝑎 − 𝑏) ∗ 𝑠𝑖𝑛⁡(𝑡) − 𝑐 ∗ 𝑠𝑖𝑛⁡((𝑎 − 𝑏)/𝑏 ∗ 𝑡) gráficas es necesario saber cuántas veces debe rodar la
circunferencia sobre la otra se recurre a la fórmula de número
4. Método de newton Raphson de vueltas, la cual está dada por
El método de Newton Raphson es un algoritmo que 𝑟
𝑛= ,
permite encontrar las raíces de un polinomio 𝑀𝐶𝑀(𝑅, 𝑟)
cualesquiera (pág. 85. Mathews &. 2000). Este 𝑑𝑜𝑛𝑑𝑒⁡𝑀𝐶𝑀⁡𝑒𝑠⁡𝑒𝑙⁡𝑚𝑖𝑛𝑖𝑚𝑜⁡𝑐𝑜𝑚𝑢𝑛⁡𝑑𝑖𝑣𝑖𝑠𝑜𝑟⁡
método consiste en ubicar un punto aproximado a Pero r y R deben ser números enteros, por tanto para evitar
donde se cree que se encuentra la raíz, si no se esto y que el usuario pueda escoger cualquier valor de R y r
encuentra, el algoritmo evalúa la derivada de la curva declaramos dos variables a y b, las cuales convertirán estos
en dicho punto para trazar una recta tangente al punto radios en enteros de este modo a y b estarán dadas así
ingresado anteriormente, la cual intersecta la recta 𝑎 = 10 ∗ 𝑅⁡𝑦⁡𝑏 = 10 ∗ 𝑟, entonces la fórmula de número de
y=0 y, en el punto donde intersecta la recta anterior, vueltas finalmente la declararemos en el script como 𝑛 =
evalúa la función de la curva con la coordenada en x 𝑎/(𝑔𝑐𝑑⁡(𝑎, 𝑏)⁡) donde gcd es el comando usado en Matlab
del punto de intersección para verificar si este nuevo para hallar el mínimo común divisor. Una vez declaradas estas
valor puede ser la solución a la función ingresada. variables se procederá a realizar las gráficas, para esto primero
Cabe resaltar que este algoritmo no funciona cuando escribiremos el vector t, el cual contiene los valores del
encuentra un mínimo o un máximo absoluto en la ángulo, el ultimo ángulo que tome el trocoide es 2*pi*n.
curva ingresada. De no ser así el algoritmo seguirá Posteriormente declararemos las variables x y y para cada
realizando este procedimiento hasta encontrar la raíz trocoide, es decir escribiremos la función del trocoide,
del polinomio. dependiendo cual se realizara. Luego escribiremos la función
para la circunferencia fija denotada como 𝑥𝑐𝑓 = 𝑅 ∗
5. Método de búsqueda dorada 𝑐𝑜𝑠⁡(𝑡); ⁡𝑦𝑐𝑓 = 𝑅 ∗ 𝑠𝑖𝑛(𝑡). Después copiaremos la función de
De acuerdo a lo visto en clase el método de sección la circunsferencia móvil, en la cual las variables x y y son
dorada es un algoritmo que se utiliza para hallar los denotadas como x1 y y1. Posteriormente anotaremos la
óptimos de una función univariable. Este algoritmo función del desplazamiento de la circunsferencia móvil. Ya
necesita de tres datos de entrada de los cuales dos hecho esto se procederá a graficar, para esto escribiremos el
funcionaran como extremos del intervalo donde se ciclo For el cual ira desde una variable k=1 hasta la cantidad
hallaran los óptimos y un tercero que estará entre los de valores que hay en el vector t, dentro de este ciclo
dos que conforman el intervalo. El algoritmo colocaremos el comando plot para graficar punto por punto de
empezará la búsqueda en el intervalo inicial y lo ira cada una de las gráficas y escribiremos hold on para que no se
reduciendo hasta que se encuentre el óptimo deseado. borre la graficar anterior, al final se declarara la el comando
pause para darle la velocidad deseada con que se mostrara la
6. Método de Bisección gráfica.
De acuerdo a lo visto en clase se sabe que el método
de Newton Raphson es un algoritmo que permite Para el segundo punto se trabajó con los métodos de Newton-
encontrar las raíces de un polinomio cualesquiera. Raphson Univariable y Búsqueda Dorada. El primer algoritmo
Este método consiste en ubicar un punto aproximado se utilizó para hallar las raíces del polinomio, usando como
a donde se cree que se encuentra la raíz, si no se variable de entrada una función digitada por el usuario, un
encuentra, el algoritmo traza la recta tangente al punto de partida con una tolerancia delta y un número deseado
punto ingresado anteriormente y sigue esa trayectoria de raíces para iniciar la búsqueda. Después de varias
hasta encontrar un punto que haga cero la función si iteraciones hasta hallar el número de raíces anteriormente
no lo encuentra sigue realizando este procedimiento digitado, el algoritmo procede con la busqueda de óptimos
hasta encontrar la raíz del polinomio. usando el método de Búsqueda Dorada, que como datos de
entrada usa la función anteriormente digitada, un intervalo en
el que la función es derivable y continua, y un número de
óptimos. Todo esto funcionando bajo un número máximo de
III. PROCEDIMIENTO iteraciones. Después de usar estos dos métodos, el algoritmo
El laboratorio se fundamenta en la programación para realizar da los valores de los óptimos
animaciones, hallar raíces y óptimos en Matlab.
Inicialmente haremos las animaciones de las gráficas de
epitrocoide e hipotrocoide, Tanto en la epitrocoide como en la solicita como datos de entrada funcion, intervalo, tol, num
Hipotrocoide, la gráfica de la curva de la función traza un raices, num opt, max it
15
IV. RESULTADOS
10
1. Script para la animación de epitrocoide
clc;clear all
5
% epitrocoide
R=input ('digite el valor de la circunferencia fija: '); 0
r=input ('digite el valor de la circunferencia móvil: ');
d=input ('digite la distancia d del centro de un círculo -5
móvil de radio r a la curva de la epitrocoide: ');
a=R*10; -10

b=r*10;
-15
n=b/ (gcd(a,b)); %n=r/mcd(R,r)
-15 -10 -5 0 5 10 15
t=0:pi/180:2*pi*n;
x=(R+r)*cos(t)-d*(cos(((R+r)/r)*t)); 2. Script para la animación de el Hipotrocoide
y=(R+r)*sin(t)-d*(sin(((R+r)/r)*t)); clc; clear all
% Circunferencia fija o circunferencia directriz %hipotrocoide
xcf=R*cos(t); R=input('digite el valor de la circunferencia fija: ');
ycf=R*sin(t); r=input('digite el valor de la circunferencia móvil: ');
% Circunferencia móvil o circunferencia generatriz d=input ('digite la distancia c del centro de un círculo
x1=r*cos (t); móvil de radio r a la curva de la hipotrocoide: ');
y1=r*sin (t); a=R*10;
%desplazamiento de la Circunferencia móvil b=r*10;
x01=(R+r)*cos(t); n=b/(gcd(a,b));
y01=(R+r)*sin(t); t=0:pi/180:2*pi*n;
x=(R-r)*cos(t)+d*(cos(((R-r)/r)*t));
for k=1:length(t) y=(R-r)*sin(t)-d*(sin(((R-r)/r)*t));
%Gráfica circunferencia fija % circunferencia fija
plot(xcf,ycf,'b') xcf=R*cos(t);
Axis([(-R-2*r)(R+2*r) (-R-2*r) (R+2*r)]) ycf=R*sin(t);
Hold on %circunferencia movil
%Gráfica epitrocoide x1=r*cos(t);
plot(x(1:k),y(1:k),'r') y1=r*sin(t);
hold on %desplazamiento de la circunferencia móvil
%punto del trazo que delinea la gráfica del x01=(R-r)*cos(t);
epitrocoide y01=(R-r)*sin(t);
Plot(x (k), y (k),'.r') for k=1:length(t)
Hold on %gráfica de la circunferencia fija
%punto del centro de la circunferencia móvil plot(xcf,ycf,'b')
Plot(x01(k),y01(k),'.k') axis([(-R-2*r) (R+2*r) (-R-2*r) (R+2*r)])
Hold on hold on
%gráfica del trazo que une el hipotrocoide con el %gráfica hipotrocoide
centro de la circunferencia móvil plot(x(1:k),y(1:k),'r')
plot([x01(k) x(k)],[y01(k) y(k)],'k'); hold on
axis([-d-r-R-5 d+r+R+5 -d-r-R-5 d+r+R+5]) %punto del trazo que delinea la gráfica del
hold on hipotrocoide
%gráfica de la circunferencia móvil plot(x(k),y(k),'.r')
plot(x1+x01(k),y1+y01(k),'k') hold on
hold off %punto del centro de la circunferencia
pause(0.01) móvil
end plot(x01(k),y01(k),'.k')
hold on
%grafica del trazo que une el hipotrocoide
con el centro de la circunferencia móvil
plot([x01(k) x(k)],[y01(k) y(k)],'k')
axis([-d-r-R-5 d+r+R+5 -d-r-R-5 d+r+R+5]) 2.6090e-06
hold on y - x2 + 3

%gráfica de la circunferencia móvil 6

plot(x1+x01(k),y1+y01(k),'k')
hold off 4

pause(0.01)
end 2

y
15

-2
10

5 -4

0
-6
-6 -4 -2 0 2 4 6
x
-5

-10

V. CONCLUSIÓN
-15
Matlab permite resolver problemas de cálculos, crear
-15 -10 -5 0 5 10 15 animaciones entre otras cosas, en este laboratorio se pudo
observar o verificar que al crear algoritmos usando comandos
de Matlab, este podrá generarlos y mostrarnos una solución. De
este modo en el los ejercicios hechos en el laboratorio se pudo
3. Script que recibe como dato de entrada la ecuación hallar las raíces y óptimos de una función, crear las
f(x,y)=0, un intervalo cerrado [𝒂, 𝒃], en el dominio animaciones la los trocoides epi e hipo. Por lo que finalmente
de la función, la tolerancia 𝒕𝒐𝒍, los enteros 𝑹 y 𝑶 podemos concluir que el programa será de gran utilidad para
para que la salida tenga un lienzo con los siguientes resolver problemas de ingeniería.
elementos: a. Gráfica de f(x, y)=0 b. Las 𝑹 raíces,
VI. REFERENCIAS
encerradas en un círculo de un color. Los 𝑶 óptimos,
señalados con un círculo de otro color. [1] Páramo, A. ‘La gran belleza de los trocoides’. 2004 .Bogotá,
Digite la función f(x,y)=0 : y-x^2+3 Colombia. Rescatado de:
http://temasmatematicos.uniandes.edu.co/Trocoides/paginas/intr
Digite el número de raíces a encontrar: 2
oduccion.htm#cap0
Digite la tolerancia: 10^-5
[2] Mathews, J. & Fink, K. ‘Métodos numéricos con Matlab’.
Digite un intervalo [a,b] en el dominio de la función
2000. Madrid, España. Primera edición producida por Pearson
para hallar los óptimos: [-3,3] Education S. A.
Digite el número de óptimos a obtener: 1
[3] I. S. Jacobs and C. P. Bean, “Fine particles, thin films and
Digite el número máximo de iteraciones: 100 exchange anisotropy,” in Magnetism, vol. III, G. T. Rado and H.
Digite el punto inicial: -1 Suhl, Eds. New York: Academic, 1963, pp. 271–350.
Raiz: -1.7321 [4] K. Elissa, “Title of paper if known,” unpublished.
Digite el punto inicial: 2
Raiz: 1.7321
Hay un óptimo en

También podría gustarte