Raices y Ajuste de Curvas

27
PROGRAMACIÓN ESTRUCTURADA Y MÉTODOS NUMÉRICOS (RAÍCES Y AJUSTE DE CURVAS) MILTON ALEJANDRO RENDON ALVAREZ (CC: 1036648405) MANUEL ALEJANDRO ECHEVERRI MÁRQUEZ (CC: 1017209898) Profesor: FELIPE ANDRÉS OBANDO VEGA UNIVERSIDAD DE ANTIOQUIA MEDELLÍN 21 de octubre de 2013

Transcript of Raices y Ajuste de Curvas

Page 1: Raices y Ajuste de Curvas

PROGRAMACIÓN ESTRUCTURADA Y MÉTODOS NUMÉRICOS

(RAÍCES Y AJUSTE DE CURVAS)

MILTON ALEJANDRO RENDON ALVAREZ (CC: 1036648405)

MANUEL ALEJANDRO ECHEVERRI MÁRQUEZ (CC: 1017209898)

Profesor:

FELIPE ANDRÉS OBANDO VEGA

UNIVERSIDAD DE ANTIOQUIA

MEDELLÍN

21 de octubre de 2013

Page 2: Raices y Ajuste de Curvas

Introducción.

El siguiente trabajo presenta la solución de cuatro problemas aplicados de la ingeniería que recurren a los métodos numéricos como un medio de solución eficiente y óptima. En este caso la solución de los problemas se basa en las raíces de funciones y el ajuste

de curvas.

Los problemas abordados son ejercicios aplicados en la ingeniería que debido a la complejidad de su solución se implementan métodos numéricos que puedan dar una

solución aproximada pero que sea válida para los cálculos de ingeniería.

Para la implementación de dichos métodos se utiliza la programación estructurada como principal herramienta de cálculo iterativo. Para esto se debe de implementar los

conocimientos básicos adquiridos y se debe de realizar una representación e implementación practica de cada algoritmo.

La evaluación de los métodos y su implementación se realiza mediante indicadores estadísticos y computacionales, los cuales indican si el método es adecuado y preciso

para el problema a solucionar y su viabilidad a la hora de implementarse en algoritmos complejos, respectivamente.

Page 3: Raices y Ajuste de Curvas

Objetivos

Objetivo general: utilizar la programación estructurada y las aproximaciones por métodos numéricos como herramientas para la solución de problemas que se presentan con frecuencia en la ingeniería aplicada. En este caso en la solución de ecuaciones y la

explicación mas general de un fenómeno determinado, utilizando unos cuantos valores observados en este.

Objetivos específicos:

1. Comparar cada uno de los diferentes métodos utilizados en solución de un problema determinado, cual es su comportamiento, ventajas y desventajas y cuales de ellos representan en mayor medida un fenómeno u objeto de estudio.

2. Observar en los resultados obtenidos, cual de los métodos nos proporciona mayor precisión en las estimaciones, cual requiere mayores recursos para su solución y cuales son los parámetros que nos dan la confianza para la

implementación del método.

Page 4: Raices y Ajuste de Curvas

1. Se mide la temperatura en varios puntos de una placa calentada. Implemente un

algoritmo en Matlab que permita estimar mediante regresión o interpolación la temperatura de la placa en cualquier valor de x y y dentro del rango dado en el cuadro 1,

grafique los datos.

1.1 Solución.

Para la resolución se propone un modelo de regresión lineal múltiple que permita obtener una expresión matemática que ilustre el comportamiento general de los datos. El método que se implementara será el de regresión lineal múltiple de mínimos

cuadrados. Este último permite realizar una aproximación relativamente significativa con un costo computacional accesible.

El método implementado tiene como finalidad obtener una expresión que represente

matemáticamente el comportamiento de un fenómeno real, y la estructura de dicha expresión es la siguiente:

La solución del problema se resume en la consecución de los parámetros constantes a0 y a1. Para esto se adaptó el algoritmo sugerido por Chapra1 para la solución de este corte de problemas.

DOFOR i _ 1, order _ 1 DOFOR j _ 1, i

sum _ 0 DOFOR _ _ 1, n

sum _ sum _ xi_1,_ _ xj_1,_

END DO ai,j _ sum

aj,i _ sum END DO sum _ 0

DOFOR _ _ 1, n sum _ sum _ y_ _ xi_1,_

END DO ai,order_2 _ sum

END DO

1 CHAPRA, Steven C.; CANALE, Raymond. Numerical methods for engineers. McGraw-Hill, Inc., 2005.

Page 5: Raices y Ajuste de Curvas

1.1.1 Resultados

El algoritmo resultante realiza una organización de los datos óptima para su resolución

y mediante cálculos básicos matriciales se logran obtener los coeficientes constantes de la regresión lineal. La ecuación resultante luego de ejecutar el algoritmo es la siguiente:

Además el algoritmo calcula los índices estadísticos r y r^2 que brindan una valiosa información para determinar la confiabilidad que se puede tener del modelo matemática generado. Estos valores para este caso específico son:

Por último el algoritmo genera una gráfica en 3D que permite visualizar de una manera

más clara los resultados obtenidos al aplicar la regresión lineal del modelo. El grafico 1 ilustra el comportamiento de la ecuación 1 e igualmente ilustra la gráfica de nube de puntos de los datos suministrados por el enunciado.

Grafico1. Comportamiento de la ecuación1 y distribución real de los datos.

05

02468

20

30

40

50

60

70

80

90

100

X Y

T(°

C)

Page 6: Raices y Ajuste de Curvas

1.1.2 Anális is

Los resultados obtenidos corresponden a un modelo matemático que representa de

buena manera la tendencia que maneja la Temperatura en la placa. Esta tesis se

comprueba mediante los índices estadísticos r y r2 que ambos son muy similares y

tienden a uno. Esto indica que aproximadamente el 90% de la placa se ve representado

mediante la expresión matemática obtenida por la regresión múltiple.

La comprobación del algoritmo se realizó mediante la herramienta computacional

Matlab, mediante la cual se corrió el algoritmo y se realizó una comprobación mediante

las herramientas estadísticas entregadas por el programa. Los resultados obtenidos para

la comprobación del modelo fueron los siguientes:

Se puede observar como los valores de los coeficientes coinciden con los del modelo, al

igual que el indicador estadístico r. Esto brinda más argumentos para la confiabilidad de

la regresión lineal obtenida.

Grafico 2. Información de los residuales.

Page 7: Raices y Ajuste de Curvas

La herramienta Matlab igualmente nos brinda la información de los residuales del

sistema. Este indicador estadístico evalúa cuanta información no está contenida dentro

del modelo y en que magnitud. En la gráfica se puede observar que pese a que los

residuales son un número considerable, su magnitud no es tan alta para descartar el

modelo.

Por último, para terminar de comprobar la calidad del algoritmo desarrollado, se evalúa

el tiempo computacional invertido para implementar el algoritmo.

En la tabla se evidencia que el tiempo total de cómputo para el algoritmo P1 es de

0.425s. Pese a que el tiempo computacional es bastante alto, se puede evidenciar que las

tres funciones que más tiempo computacional requirieron (mesh, newplot y scatter3),

son funciones de tipo grafico que por lo general no son funciones que se repitan mucho

a la hora de realizar una implementación del algoritmo en un problema real.

1.2.3 Conclus ión.

El algoritmo implementado para encontrar una regresión lineal de la temperatura de una

placa en función de sus coordenadas X y Y, cumple la tarea de manera óptima y

satisfactoria, cumpliendo con los rangos estadísticos de los diferentes indicadores y

realizando el procedimiento en un tiempo computacional razonable considerando la

descripción grafica que entrega el algoritmo.

Page 8: Raices y Ajuste de Curvas

Anexo 1.

Pseudocódigo.

SubProceso S<-sum (C)

Para i<-1 Hasta 25 Hacer S<-S+C(i) FinPara

FinSubProceso

Proceso Punto_Uno DimenSion C(25,3),X(5),T(25),Ye(5),X2(25),Y2(25),R(25),R1(25),R2(25),H(9),S(3),j(25)

h(25) SumX,SumY,SumX2,SumY2,SumXY,SumT,SumXT,SumYT,J,Q

X=[0,2,4,6,8] Y[0,2,4,6,8]

T(100,90,80,70,60;85,64.49,53.50,48.15,50;70,48.90,38.43,35.03,40;55,38.78,3

0.39,27.07,30;40,35,30,25,20) Para a<-1 Hasta 25 Con Paso 5 Hacer

Para i<-a Hasta a+4 Hacer C(i,1)<-(((a-1)*2/5)) FinPara

FinPara Para b<-1 Hasta 25 Con Paso 5 Hacer C(b:b+4,2)=X

FinPara Para q<-1 Hasta 25 Con Paso 25 Hacer

Para n<-q Hasta q+4 Hacer C(q:q+4,3)<-(T(15)) FinPara

FinPara SumX<-sum(C(:,1))

SumY<-sum(C(:,1)) Para i<-1 Hasta 25 Hacer X2(i)<-((C(i,1))^2)

Y2(i)<-((C(i,2))^2) FinPara

SumX2<-sum(X2) SumY2<-sum(Y2) Para i<-1 Hasta 25 Hacer

R(i)<-(C(i,1)*C(i,2)) FinPara

SumXY<-sum(R) SumT<-sum(C(:,3)) Para i<-1 Hasta 25 Hacer

R1(i)<-(C(i,1)*C(i,3)) FinPara

SumXT<-sum(R1)

Page 9: Raices y Ajuste de Curvas

Para i<-1 Hasta 25 Hacer

R2(i)<-(C(i,2)*C(i,3)) FinPara

SumYT<-sum(R2) n<-25 H(n,SumX,SumY;SumX,SumX2,SumXY;SumY,SumXY,SumY2)

D(SumT,SumXT,SumYT) S=D/A

a0<-S(1) a1<-S(2) a2<-S(3)

tm<-SumT/25 Para i<-1 Hasta 25 Hacer

h(i)<-((C(i,3)-a0-a1*C(i,1)-a2*C(i,2))^2) j(i)<-((C(i,3)-tm)^2) FinPara

H<-sum(h) J<-sum(j)

r2<-(J-H)/J r<-rc(r2) Escribir 'La regreSion multiple lineal obtenida es '

Escribir 'T=a0+a1X+a2Y' Escribir 'a0'

Escribir a0 Escribir 'a1' Escribir a1

Escribir 'a2' Escribir a2

Escribir 'El indice estadistico r es ' Escribir r Escribir 'El indice estadistico r2 es '

Escribir r2 Graficar

FinProceso

Page 10: Raices y Ajuste de Curvas

2. La viscosidad dinámica del agua

se relaciona con la temperatura

como se presenta en el cuadro 2.

T 0 5 10 20 30 40

µ 1.787 1.519 1.307 1.002 0.7975 0.6529

Cuadro 1. Relación entre la temperatura T [⁰C] y la viscosidad dinámica

.

2.1 Solución

El siguiente diagrama de dispersión muestra como es el comportamiento general de los datos registrados en el cuadro 1, lo que se pretende conseguir es una curva que permita

estimar con un alto grado de confiabilidad los valores intermedios a los datos con los que se cuenta, para ello se utilizaran diferentes métodos con el fin de observar como son las estimaciones en cada uno de ellos.

Grafico3. Dispersión de los datos.

2.1.1 Ajuste de los datos por el método de regresión polinomial.

El método consiste en hallar un polinomio de la forma en este caso se pide que se estime un polinomio de grado 2 cuya forma

general sería donde e representa el error. El procedimiento para

solucionar el problema se reduce a encontrar los valores , los cuales se

consiguen solucionando un sistema de ecuaciones simultáneas de la forma

donde:

A: matriz de coeficientes. Z: matriz que se obtiene después de separa la suma de los residuos o errores cuadrados

de la matriz de coeficientes. Y: Matriz que contiene los valores de la viscosidad presentes en el cuadro 2.

Page 11: Raices y Ajuste de Curvas

Para solucionar el sistema de ecuaciones se utilizo la herramienta de computo matlab y el algoritmo planteado se presenta en el anexo número 3 en pseudocódigo.

2.1.2 Resultados

Al solucionar la ecuación mediante la ayuda del programa se encontró que A= [0.0005 -0.0495 1.7672], de manera que el polinomio que mejor predice el

comportamiento real de los datos esta dado por:

La confiabilidad del modelo esta dada por los indicadores r y Obtenidos de igual manera por el programa y cuyos valores son:

Por otro lado el grafico 2 muestra como es el comportamiento de la curva, respecto a la distribución real de los datos.

Grafico 4. Curva ajustada polinomialmente.

2.1.3 Análisis.

El polinomio de grado 2 que se obtuvo mediante el método de mínimos cuadrados, representa de manera confiable la viscosidad en función de la temperatura, para un intervalo de temperaturas de [0,40] ⁰C, la precisión o confiabilidad de la estimación nos

la proporciona el valor de pues su valor es muy cercano a la unidad y nos dice que el

modelo explica el 99.91% de los valores de la viscosidad.

Page 12: Raices y Ajuste de Curvas

Anexo 2.

Pseudocódigo.

Proceso Punto_2_b

// T: vector que almacena los valores de la temperatura. // u: vector que almacena los valores de la viscosidad.

// xi= T(i); // yi= u(i); // n= longitud de T.

// sum(xi)=sumatoria de los elementos de T. // sum(yi)=sumatoria de los elementos de u.

// A= vector que almacena los coeficientes de un polinomio de la forma y=A1x^2+A2x+A3. // Z= (n,sum(xi),sum(xi 2); sum(xi),sum(xi^2),sum(xi 3);

sum(xi 2),sum(xi^3),sum(xi 4). // inv_Z: matriz inverza de Z.

// Trans_Y: matriz transpuesta de Y. Dimension T=(0,5,10,20,30,40);

Dimension u=(1.787,1.519,1.307,1.002,0.7975,0.6529); Dimension Z=(6,105,3025,105,3025,100125,3025,100125,3540625); Dimension y=(7.0654,90.746,2230);

A<--(inv_Z*Tras_Y); x<--7.5;

//Ai: Elemento A(i) de A. y<--A1*x^2+A2*x+A3; Escribir ' El valor aproximado de la viscosidad ajustado polinomialmente a una

7.5ºC’ es:’;

Escribir 'y'; FinProceso

Page 13: Raices y Ajuste de Curvas

2.2.1 Ajuste de los datos por el método de regresión lineal.

La ecuación de Andrade ha sido propuesta como modelo del efecto de la temperatura

sobre la viscosidad,

donde Ta es la temperatura absoluta en [⁰K], D y B son

parámetros.

La solución de este problema consiste en encontrar una línea recta que represente de mejor manera el comportamiento de los datos observados.

La ecuación de Andrade es una función exponencial, entonces será necesario modificarla de tal manera que se obtenga la expresión de una línea recta. Sacando

logaritmo natural a ambos lados de la ecuación, se obtiene:

Que representa una línea recta a una escala logarítmica. En consecuencia la resolución del problema se reduce a encontrar los valores D y B, para esto se utiliza el método de mínimos cuadrados y se implementa en matlab. El algoritmo implementado se presenta

en el anexo 4 en pseudocódigo.

2.2.2 Resultados.

Al resolver el problema mediante una regresión lineal de mínimos cuadrados el cual

utiliza operaciones aritméticas simples las cuales se implementaron en matlab se obtuvo que los coeficientes D y B son:

B= 2148.5 D= 0.00066846

Por lo tanto el modelo de Andrade ajustado con los datos valores obtenidos para B y D

esta dado por la expresión.

Los valores de r y

0.9960

El grafico 3 muestra el comportamiento de los datos estimados por regresión lineal de mínimos cuadrado y posteriormente ajustados a la ecuación de Andrade.

Page 14: Raices y Ajuste de Curvas

Grafico 5. Datos ajustados a la ecuación de Andrade.

2.2.3 Análisis

Se puede decir con un alto grado de confiabilidad que la regresión lineal representa

adecuadamente el comportamiento de la viscosidad con relación a la temperatura en un

intervalo de [273,313] ⁰K, esta afirmación se puede comprobar con los valores de el

error estándar de estimación ( ), la desviación estándar ( , y el coeficiente de

determinación ); ya que como se observa ( , y nos muestra que el

modelo explica un 99.20% de los valores de la viscosidad.

Page 15: Raices y Ajuste de Curvas

Anexo 3.

Proceso punto_2_c

// n: longitud de

// T: vector que almacena los valores de la temperatura.

// u: vector que almacena los valores de la viscosidad.

// xi=T(i);

// yi=u(i)

// Modelo De^(B/Ta).

// D,B: parametros.

// Ta: temperatura absoluta en [ºk]

// ln(u)<--ln(D)+(Bx); donde x=1/Ta

// B=(n*sum(xi.*yi)-(sum(xi)*sum(yi)))/(n*sum(xi.^2)-(sum(xi))^2);

Dimension T=(0,5,10,20,30,40);

dimension u=(1.787,1.519,1.307,1.002,0.7975,0.6529);

n<--6;

xi<--(xi+273);

xi<--1/xi;

yi<--ln(yi);

B<--2148.5;

xi_prom<-- 0.0035;

yi_prom<-- 0.1026;

D<--exp(yi_prom-B*xi_prom);

Ti<--7.5;

Ti<--(Ti+273);

u<--D*exp(B/Ti);

escribir 'c) El valor aproximado de la viscosidad ajustado linealmente por una

R.M.C a

una T=7.5ºC es:';

escribir 'u';

FinProceso

Page 16: Raices y Ajuste de Curvas

2.3.1 Ajuste de los datos por el método de interpolación de Lagrange.

Construir un polinomio de interpolación de Newton o LaGrange de n orden para

interpolar con T = 7,5⁰C. Probar con polinomios de diferentes grados y analizar los

resultados.

A diferencia del ajuste de curvas por regresión de mínimos cuadrados, que consiste en

encontrar la curva que mejor se ajuste a los datos sin pasar necesariamente por ellos, la

interpolación consiste en encontrar un polinomio único que se ajuste a los todos los

datos con los que se cuenta pasando por cada uno de ellos. El método que se utilizo

para resolución de este problema consiste en un polinomio de interpolación de

LaGrange el cual tiene la siguiente forma.

=∑

La solución del problema se reduce a realizar las operaciones aritméticas

correspondientes al método utilizando los valores proporcionados por el enunciado, para

ello se utiliza el programa de computo matlab. El algoritmo utilizado para la resolución

del problema se presenta en l anexo 5.

2.3.2 Resultados.

En la resolución del problema por este método se estimaron polinomios de diferentes

grados y se evaluaron en un valor de 7.5 ⁰C que es un valor intermedio a dos de las

temperaturas que se entregaron en el enunciado; los valores estimados con polinomios

de grados n=1 hasta n=5 fueron:

Grado

polinomi

o

Valor estimado de la

viscosidad [

Tiempo de computo

[s]

Error

aproximado

1 0.001687

2 0.002426

3 1.40677 0.002435

4 0.00274

5 0.003184 0

Cuadro 2. Resultados obtenidos.

Page 17: Raices y Ajuste de Curvas

2.3.3 Análisis.

En los valores arrojados por el cálculo de polinomios de diferente grado para una misma

temperatura puede observarse que a mayor número de datos interpolados es decir a

mayor grado se obtiene una mejor estimación de los datos, sin embargo el costo para

una mejor aproximación se ve reflejado en un mayor costo computacional.

2.4 Conclusión.

Todos los métodos empleados para ajustar los datos funcionan con un alto grado de

confiabilidad, pero según los resultados obtenidos se puede decir que solo aquellos que

adoptan una curvatura explican de mejor manera los datos, en este caso un ajuste

polinomial por mínimos cuadrados, y una interpolación por el método de LaGrange, ya

que como se observa la distribución real de los datos tiene una tendencia exponencial.

Anexo 4

Proceso punto_2_d

Ti<--7.5;

grado_pol<--b;

Leer b;

Para n<-1 Hasta b Con Paso 1 Hacer

Si n==1 Entonces

i<--2;

Sino

i<--1;

FinSi

a<--i;

val<--0;

Para i<-a Hasta a+n Con Paso 1 Hacer

li<--1;

Para j<-a Hasta a+n Con Paso 1 Hacer

Si j<>i Entonces

li<--li*((Ti-Tj)/(Ti-Tj));

FinSi

FinPara

val<--(val+(li*u));

FinPara

fn<--val;

Escribir 'u de T n es ';

Escribir 'f(n)';

FinPara

FinProceso

Page 18: Raices y Ajuste de Curvas

3. La velocidad vertical de un cohete se calcula como (

) , donde

v=velocidad vertical, u= velocidad con la que se expele el combustible, en relación con el cohete, m0=masa inicial del cohete en el momento t = 0, q=tasa de consumo de

combustible y g=aceleración de la gravedad. Si u = 2000m/s, m0 = 150000kg, q = 2700kg/s y g = 9,81m/s2, elabore un algoritmo que permita calcular el momento en que

le cohete alcanza una velocidad determinada utilizando los métodos para el cálculo de raíces. Con este algoritmo compare los diferentes resultados al calcular el momento en cual v = 750m/s, tenga también en cuanta el número de iteraciones requeridos para

llegar a la solución. Suponga como criterio de parada un número máximo de iteraciones y un error relativo aproximado máximo igual para todos los métodos implementados.

3.1 Solución.

La solución de este problema consiste en realizar un algoritmo que encuentre el tiempo

en el cual el cohete lleva una velocidad determinada, la cual debe de ser ingresada por el

usuario, y para poder realizar esto se deben de implementar los 6 diferentes métodos

trabajados los cuales son:

1. Método gráfico.

2. Método de la bisección.

3. Método de la falsa posición.

4. Método de iteración simple de punto fijo.

5. Método de Newton Raphson.

6. Método de la secante.

Para la resolución del ejercicio se realizó un algoritmo principal que se encarga de la

interacción con el usuario para la selección de los diferentes parámetros de solución y

una serie de funciones que se encargan de solucionar el problema cada una mediante

uno de los seis métodos.

Los 6 métodos se probaron mediante la estimación del tiempo en el cual el cohete

alcanzaba una velocidad de 750 m/s. Para mejorar las condiciones de evaluación se

propuso unos tiempos extremos iguales para todos los métodos abiertos y el mismo

tiempo semilla para los métodos cerrados. Esto pone en igualdad de condiciones a todos

los métodos para poder realizar una evaluación objetiva del rendimiento de cada

algoritmo.

Page 19: Raices y Ajuste de Curvas

3.1.1 Resultados

En el cuadro 3 se ilustran los resultados de Número de iteraciones, Tiempo

computacional y el error relativo porcentual para cada uno de los métodos evaluados.

Método # de Iteraciones Tiempo

Computacional

Error relativo

porcentual

Método grafico - 0.1504 -

Método de la bisección 17 7.5947e-05 7.2205e-04

Método de la falsa posición 20 2.6958e-04 6.8310e-04

Método de iteración simple de punto

fijo*

- - -

Método de Newton Raphson 4 0.7072 5.0174e-04

Método de la secante 6 0.0011 3.1559e-06

Cuadro3. Resultados

3.1.2 Anális is .

El análisis de los resultados se tiene que realizar evaluando cada uno de los 3

parámetros que se impusieron a la hora de evaluar los diferentes métodos de resolución.

El método de iteración simple de punto fijo fue el único método que no converge para

la solución de este problema, debido a que la primera derivada de la función evaluada

siempre es negativa en el rango de trabajo.

La cantidad de iteraciones que se realicen es un parámetro que se debe de conservar

bajo, debido al consumo de memoria, pero su importancia no es la de mayor magnitud.

Para este parámetro el método más adecuado es el método de Newton Raphson, seguido

de su variante, el método de la secante. Estos dos métodos son igualmente destacados

en el error porcentual, pero el costo computacional de estos métodos es alto debido a la

complejidad de los cálculos matemáticos que se deben de realizar.

Por su parte los métodos abiertos poseen un tiempo computacional más bajo

comparados con los métodos cerrados, pese a que su número de iteraciones es bastante

elevado. Su error porcentual es más alto comparados con los demás métodos, pero se

encuentra en un rango aceptable para su implementación.

3.1.3 Conclus ión.

Luego de analizar los métodos, basándonos en los parámetros impuestos en la

metodología, se encuentra que la mayoría de los métodos, excepto el método grafico y

el método de iteración simple, son herramientas útiles y óptimas para la resolución del

enunciado. La selección de alguno de los métodos se debe de realizar basándose en los

parámetros de memoria disponible y tiempo computacional requerido.

Page 20: Raices y Ajuste de Curvas

Anexo 5.

Seudocódigo.

SubProceso MIterSim(t1,vi,u,m0,q,g)

vlt<-0 bdi<-1 et<-1

t2<-t1 val<-0

cont<-0 Mientras val<=0 Hacer cont<-cont+1

Si cont>1 Entonceso Escribir 'Ingrese un valor semilla adecuado'

Leer t1 val<-(q*u)/(m0-q*t1)-g Si cont>5 Entonceso

Escribir 'La solución no converge con estos valores semilla'

val<-1 FinSi FinSi

FinMientras Mientras bdi==1 Hacer

Si vi==0 Entonceso t2<-0 bdi<-0

Sino vlt<-vlt+1

t2<-((u*ln(m0/(m0-q*t1))-vi)/g) Si vlt!=1 Entonceso et<-abs(((t2-t1)/t2)*100)

FinSi Si et<0.001 O vlt>150 Entonceso

bdi<-0 FinSi t0<-t1

t1<-t2 FinSi

FinMientras Escribir 'El tiempo en el cual la velocidad es ',vi,' es ',t2 Escribir 'El error aproximado para el tiempo es de',et

FinSubProceso

SubProceso MNewRap (t1,vi,u,m0,q,g) vlt<-0 bdi<-1

et<-1 Escribir 'Ingrese el valor de la velocidad'

Page 21: Raices y Ajuste de Curvas

Leer vi

Escribir 'Ingrese valor semilla Para el tiempo' Leer t1

Mientras (m0/(m0-q*t1))<=0 O t1==0 Hacer Escribir 'Ingrese un valor semilla adecuado' Leer t1

FinMientras Mientras bdi==1 Hacer

Si vi==0 Entonceso t2<-0 bdi<-0

Sino vlt<-vlt+1

g1<-(u*ln(m0/(m0-q*t1))-g*t1-vi) g2<-(q*u)/(m0-q*t1)-g t2<-t1-g1/g2

Si vlt!=1 Entonceso et<-abs(((t2-t1)/t2)*100)

FinSi Si et<0.001 O vlt>150 Entonceso bdi<-0

FinSi t0<-t1

t1<-t2 FinSi FinMientras

Escribir 'El tiempo en el cual la velocidad es ',vi,' es ',t2 Escribir 'El error aproximado para el tiempo es de',et

FinSubProceso

SubProceso MSecante (t1,vi,u,m0,q,g)

vlt<-0 bdi<-1

et<-1 Escribir 'Ingrese el valor de la velocidad' Leer vi

Escribir 'Ingrese valor semilla para el tiempo' Leer t1

Mientras (m0/(m0-q*t1))<=0 O t1==0 Hacer Escribir 'Ingrese un valor semilla adecuado' Leer t1

FinMientras Mientras bdi==1 Hacer

Si vi==0 Entonceso t2<-0 bdi<-0

Sino vlt<-vlt+1

g0<-(u*ln(m0/(m0-q*t0))-g*t0-vi) g1<-(u*ln(m0/(m0-q*t1))-g*t1-vi)

Page 22: Raices y Ajuste de Curvas

t2<-t1-(((g1)*(t0-t1))/(g0-g1))

Si vlt!=1 Entonceso et<-abs(((t2-t1)/t2)*100)

FinSi Si et<0.001 O vlt>150 Entonceso bdi<-0

FinSi t0<-t1

t1<-t2 FinSi FinMientras

Escribir 'El tiempo en el cual la velocidad es ',vi,' es ',t2 Escribir 'El error aproximado para el tiempo es de',et

FinSubProceso

SubProceso MBiseccion (vi,u,m0,q,g)

bdi<-1 et<-1

vlt<-0 Escribir 'Ingrese un tiempo menor al esperado' Leer t1

Escribir 'Ingrese un tiempo mayor al esperado' Leer t2

Mientras bdi==1 Hacer vlt<-vlt+1 v1<-(u*ln(m0/(m0-q*t1))-g*t1-vi)

v2<-(u*ln(m0/(m0-q*t2))-g*t2-vi) t<-(t1+t2)/2

v<-(u*ln(m0/(m0-q*t))-g*t-vi) Si (v*v1)<0 Entonceso t2<-t

Sino Si (v*v1)>0 Entonceso

ENTONCESO t1<-t Sino

bdi<-0 FinSi

FinSi Si vlt!=1 Entonceso et<-abs(((t2-t1)/t2)*100)

FinSi Si et<0.001 O vlt>150 Entonceso

bdi<-0 FinSi FinMientras

tf<-t2 Escribir ('El valor estimado para el tiempo es de ')

Escribir tf FinSubProceso

Page 23: Raices y Ajuste de Curvas

SubProceso MFalsaPos(vi,u,m0,q,g) bdi<-1

et<-1 vlt<-0 Escribir 'Ingrese un tiempo menor al esperado'

Leer t1 Escribir 'Ingrese un tiempo mayor al esperado'

Leer t2 Mientras bdi==1 Hacer vlt<-vlt+1

v1<-(u*ln(m0/(m0-q*t1))-g*t1-vi) v2<-(u*ln(m0/(m0-q*t2))-g*t2-vi)

t<-t2-((v2*(t1-t2))/(v1-v2)) v<-(u*ln(m0/(m0-q*t))-g*t-vi) Si (v*v1)<0 Entonceso

t2<-t Sino

Si (v*v1)>0 Entonceso ENTONCESO t1<-t

Sino bdi<-0

FinSi FinSi Si vlt!=1 Entonceso

et<-abs(((t2-t1)/t2)*100) FinSi

Si et<0.001 O vlt>150 Entonceso bdi<-0 FinSi

FinMientras tf<-t

Escribir ('El valor estimado para el tiempo es de ') Escribir tf FinSubProceso

SubProceso MGrafico (u,m0,q,g)

DimenSion t(100) DimenSion v(100) Para i<-2 Hasta 100 Hacer

t(1)<-(0) t(i)<-(0.1+t(i-1))

v(i)<-((u*ln(m0/(m0-q*t(i)))-g*t(i))) FinPara Escribir 'La grafica es'

FinSubProceso

Proceso PuntoTres u<-2000

Page 24: Raices y Ajuste de Curvas

m0<-150000

q<-2700 g<-9.81

Escribir 'Ingrese el valor de la velocidad-> ' Leer vi Escribir 'Metodos abiertos -> 1 ó Metodos cerrados ->2 '

Leer op Segun op Hacer

1: Escribir 'M. Grafico ->1, M. Biseccion ->2 ó M. Falsa Posición ->3 '

Leer m Segun m Hacer

1: MGrafico(u,m0,q,g) 2:

MGrafico(u,m0,q,g) MBiseccion(vi,u,m0,q,g)

3: MGrafico(u,m0,q,g) MFalsaPos(vi,u,m0,q,g)

FinSegun 2:

Escribir 'M. Iteración Simple de Pto. Fijo ->1, M. Newton-Raphson ->2 ó M. Secante ->3 '

Leer m

Segun m Hacer 1:

MGrafico(u,m0,q,g) Escribir 'Ingrese un tiempo semilla-> ' Leer t1

MIterSim(t1,vi,u,m0,q,g) 2:

MGrafico(u,m0,q,g) Escribir 'Ingrese un tiempo semilla-> ' Leer t1

MNewRap(t1,vi,u,m0,q,g) 3:

MGrafico(u,m0,q,g) Escribir 'Ingrese un tiempo semilla-> ' Leer t1

MSecante(t1,vi,u,m0,q,g) FinSegun

FinSegun FinProceso

Page 25: Raices y Ajuste de Curvas

4. Elabore un algoritmo en matlab que permita solucionar simultaneamente las

siguientes ecuaciones utilizando un método numérico:

4.1 solución

El método empleado para la resolución de este problema fue el método de newton-

Raphson. El funcionamiento del método para hallar una sola raíz consiste en utilizar la

derivada, con la finalidad de hallar la intersección de la recta tangente con el eje de las

abscisas. Para esto se utilizo la serie de Taylor de primer orden

f (xi + 1) = f(xi) + (xi+1 – xi) ƒ′(xi) donde xi es el valor inicial de la raíz y xi+1 es el

valor en el cual la recta tangente intersecta el eje x. En esta intersección, f(xi + 1) es, por

definición, igual a cero y la ecuación que se obtiene es:

xi + 1=

.

El principio para resolver ecuaciones simultaneas se obtiene de forma identica con la

diferencia de que se debe utilizar la serie de Taylor de múltiples variables para tener en

cuenta el hecho de que más de una variable independiente contribuye a la determinación

de la raíz. De esta manera se planteó un algoritmo que utiliza las derivadas parciales y el

determinante jacobino del sistema de ecuaciones, se implementó en matlab y se

obtuvieron los siguientes resultados. El algoritmo implementado se muestra en

pseudocódigo en el anexo 5.

4.1.1 Resultados

Utilizando diferentes valores semilla para iniciar el algoritmo se obtuvo.

Valor

semilla

en x

Valor

semilla

en y

Raíz en

x

Raíz en y Error aprox

en x

Error aprox

en y

Tiempo

de

computo

[s]

0 0 0.16051 0.493102 2.86648e-05 4.37456e-07 0.017

0.1 0.4 0.16051 0.493102 0.00346477 0.000168816 0.016

0.1605 0.493 0.16051 0.493102 6.17696e-05 0.000207486 0.012

2 2 0.16051 0.493102 0.000266927 3.87517e-06 0.02

Cuadro 4. Resultados obtenidos.

Page 26: Raices y Ajuste de Curvas

4.1.2 Análisis.

como puede observarse en los datos obtenidos, el procedimiento requiere más tiempo de

computo cuando el valor semilla que se le proporciona al algoritmo se aleja del valor

solución, este mayor tiempo de computo se ve reflejado en un mayor número de

iteraciones, sin embargo a pesar del número de iteraciones la aproximación siempre

converge al mismo valor, por otro lado el número de iteraciones si tiene cierto efecto

sobre el error relativo aproximado, el cual tiende a disminuir al aumentar el número de

iteraciones.

4.2 Conclusión.

Según el comportamiento del método, podemos asegurar que si se desea reducir el

tiempo de obtención de los datos lo ideal es proporcionar valores semilla que se

encuentren en las proximidades de los valores solución, pero si por el contrario lo que

se busca es disminuir el factor de error lo más recomendable es permitir que el

algoritmo realice una cantidad considerable de iteraciones lo cual se consigue

proporcionando valores semilla alejados de los valores solución.

Page 27: Raices y Ajuste de Curvas

Anexo 6.

Proceso punto_1

i<--0;

xi<--0;

yi<--0;

Eax<--1;

Eay<--1;

Mientras Eax>0.01 && Eay>0.01 Hacer

ui<--(sen((xi+yi)/2)-(2*xi));

vi<--cos((xi-yi)/2)-(2*yi);

U_xi<--0.5*cos((xi+yi)/2)-2;

U_yi<--(-0.5*cos((xi+yi)/2));

V_xi<--(-0.5*sen((xi-yi)/2));

V_yi<--0.5*sen((xi-yi)/2)-2;

ximas1<--xi-((ui*V_yi)-(vi*U_yi))/((U_xi*V_yi)-(U_yi*V_xi));

yimas1<--yi-((vi*U_xi)-(ui*V_xi))/((U_xi*V_yi)-(U_yi*V_xi));

Eax<--abs((ximas1-xi)/ximas1);

Eay<--abs((yimas1-yi)/yimas1);

xi<--ximas1;

yi<--yimas1;

FinMientras

Escribir 'el valor aproximado de la solución para x es';

Escribir ximas1;

Escribir ' El error aproximado en x es:';

Escribir Eax;

Escribir 'el valor aproximado de la solución para y es';

Escribir yimas1;

Escribir 'El error aproximado en y es: %g';

Escribir Eay;

FinProceso