Raíces de Funciones, Métodos Analíticos

Métodos Analíticos

En los métodos analíticos existe una formula, o grupos de fórmulas, no iterativas que permiten el cálculo de las raíces de la función.

Función polinómica de grado 1, línea recta

En una función lineal f(x)=m*x + b existe una sola raíz, la cual puede obtenerse aplicando la siguiente formula:

f(x)=0=mx+b, tiene raíz igual a x = -b/m

clip_image002

Función polinómica de segundo grado, Parábola  

Existe un método analítico para polinomios de segundo grado, que es la famosa ecuación cuadrática que la mayoría hemos estudiado en el colegio. 

En la siguiente figura se presenta el método analítico para encontrar la solución de funciones polinómicas de segundo grado.

clip_image004

Función polinómica de tercer grado, Cubica.

Para polinomios de tercer grado también existe un método analítico, el cual es un poco más complicado que el utilizado para polinomios de segundo grado, sin embargo, todavía es manejable. En las siguientes figuras se presentan las ecuaciones que se utilizan.

clip_image006

En la literatura se pueden conseguir diferentes conjuntos de ecuaciones para resolver las raíces de las ecuaciones cubicas, aquí les muestro las que me parecen más sencillas de manejar. Aunque a decir verdad todas funcionan muy bien, solamente son variaciones algebraicas de las mismas formulas.

clip_image008

Dependiendo de los valores de la variable D, tenemos tres casos. Caso 1 D = 0, Caso 2 D > 0 y Caso 3 D <0.

En el caso 1: D=0, se tienen tres raíces reales, al menos dos son iguales.

clip_image010

En el caso 2: D>0, se tiene 1 raíz real y dos raíces complejas.

clip_image012

En el caso 3: D <0, se tienen 3 raíces reales diferentes.

clip_image014

Para polinomios de orden superiores existen métodos analíticos muy complejos, que los hace poco prácticos de utilizar.

 

Bibliografía

Brito, L.: Métodos Numéricos Raíces de Funciones: Como calcular raíces de funciones utilizando métodos numéricos (Spanish Edition), Amazon,

https://www.amazon.com/dp/B01N9V29HM

image

Anuncios

Raíces de Funciones, Métodos Gráficos

 

Métodos Gráficos

Este método es muy simple de implementar y resulta muy intuitivo de comprender. Simplemente hay que construir la gráfica de la función y directamente mediante inspección se puede determinar el punto de corte de la gráfica de la función f(x) con el eje X. El inconveniente es que este valor dependerá de la apreciación de la gráfica, dependiendo del tamaño de la escala se obtendrá una aproximación.

Este método se puede utilizar como un paso previo a la utilización de un método numérico, para tener una imagen completa de como se comporta la función y optimizar el uso de otros métodos más precisos.

En la siguiente figura se muestra la gráfica de una función derivada de una ecuación. Se han calculado los valores de la función entre 0 y 2.25. De los valores calculados se observa que existe un cambio de signo entre x= 1.25 (-) y x= 1.50 (+). Inspeccionando la gráfica de la función se observa que el punto de intersección esta alrededor de 1.4.

clip_image002

Otra forma de proceder es utilizar cada lado de la ecuación y crear dos funciones. En un lado de la ecuación podemos dejar el termino en x y la constante. Así en lugar de escribir f(x)=0, escribimos g(x)=h(x), y graficamos ambas funciones en el mismo gráfico, y observamos la intersección de ambas funciones. Este valor corresponde con la raíz de la función f(x).

clip_image004

Aquí en esta figura hemos hecho una ampliación y podemos observar que la raíz de la función f(x), la cual corresponde a la intersección de las curvas de las funciones g(x) y h(x) está alrededor de 1.44.

En resumen, el método gráfico es muy sencillo de aplicar, sin embargo, es de muy poca utilidad práctica, debido a que no permite su automatización.

Metodología

1.- Si se tiene una ecuación expresarla como una función f(x). Para eso se tienen que agrupar todos los elementos en un solo lado de la ecuación. Esta expresión es igual a la función.

2.- Seleccionar varios valores de x y calcular el valor de la función. Hacer el grafico de f(x) y examinar su comportamiento. Seleccionar puntos adicionales, si se requieren, para obtener un cruce de la curva de la función f(x) con eje X.

3.- Observar la gráfica y determinar el valor de la raíz en la intersección de la curva con el eje X. Ampliar la escala en eje X para facilitar la lectura del valor de la raíz.

Un método alternativo consiste en:

1.- Reordenar la ecuación, de ser necesario, para hacer que la ecuación sea más simple. Hacer cada lado de la ecuación igual a una función, así se obtendrán 2 funciones: g(x) y h(x).

2.- Seleccionar varios valores de x y calcular el valor de las funciones g(x) y h(x). Hacer el grafico de las funciones g(x) y h(x) y examinar su comportamiento. Seleccionar puntos adicionales si se requieren para obtener un cruce entre las curvas de las dos funciones.

3.- Observar la gráfica y determinar el valor de la raíz en la intersección de las curvas de las funciones g(x) y h(x). Ampliar la escala en eje X para facilitar la lectura del valor de la raíz.

 

Bibliografía

Grewa, B. S. : Higher Engineering Mathematics, Thirthy Fourth Edition, 1998. KHANA PUBLISHERS, Delhi, India.

Brito, L.: Métodos Numéricos, Raíces de Funciones, Amazon.

https://www.amazon.com/dp/B01N9V29HM

https://www.amazon.com.mx/dp/B01N9V29HM

Metodos Numericos Raices tumb 2

Raíces de Funciones y Métodos

 

Concepto

Una raíz de una función resulta de resolver ecuaciones como la siguiente:

224=(4x+2)*2x*(1+x).

Si ubicamos todos los elementos en un solo lado de la ecuación, obtendremos una expresión que es una función de la variable x.

La función es: f(x)=(4x+2)*2x*(1+x)-224

Si queremos obtener las raíces de la ecuación, igualamos la función a cero y resolvemos para obtener los valores de x que hacen que el valor de la función sea cero. Los valores de x que hacen que la función f(x)=0, se denominan raíces de la función f(x).

clip_image002

Esta función podemos asociarla con el cálculo del volumen de un paralelepípedo de dimensiones (4x + 2), 2x y (1 + x), donde el volumen es de 224 unidades cubicas, y deseamos calcular el valor de x que produce este volumen. Al final tenemos una función cubica que representa esta igualdad. En la figura anterior se observa la gráfica de la función. Se observa que la curva de la función intersecta el eje X en un punto que esta entre 2 y 3.

otro ejemplo que podemos mostrar sobre cómo se origina una función, lo constituye la obtención de la raíz cuadrada de un numero m. Comenzamos con una ecuación, donde hacemos que la raíz cuadrada de un número m es igual a un valor x, movemos todos los elementos de la ecuación hacia el lado derecho y hemos convertido la ecuación en una función de x, que podemos utilizar para calcular la raíz cuadrada de un numero m.

clip_image004

De la misma manera podríamos crear una función para la raíz cubica, o la raíz de cualquier orden. En general cualquier ecuación puede ser transformada en una función de forma que podemos obtener sus raíces, las cuales representan valores que permiten que estas ecuaciones se cumplan.

Así como estas simples ecuaciones matemáticas, podemos encontrar en ciencia y en las diferentes ramas de la ingeniería aplicaciones donde podemos formular ecuaciones, las cuales podemos transformar en funciones y encontrar soluciones a los problemas planteados encontrando las raíces de dichas funciones.

Métodos

Existen diversos métodos para encontrar las raíces de una función, entre estos tenemos:

Métodos Gráficos

Métodos Analíticos

Métodos Algebraicos

Métodos Numéricos

 

Bibliografía

Brito, Luis. Métodos Numéricos, Raíces de Funciones. Amazon, 2017.

https://www.amazon.com/dp/B01N9V29HM

Metodos Numericos Raices tumb 2

Scilab, Funciones en Linea

 

Funciones en Línea (Funcion deff)

En lugar de utilizar los comandos function y endfunctions, para definir funciones, también se puede utilizar la función deff, la cual tiene la siguiente sintaxis:

deff(‘String para la definición de la función’, ‘ string para el cuerpo de la función, ‘string para indicar si esta compilada la función’).

El String para definir la función está integrado por:

‘[out] = Nombre_Función(in)’

El string para el cuerpo de la función está integrado por:

‘out=expresión’

El tercer parámetro puede tomar dos valores ‘c’, si la función esta compilada y ‘n’ si la función no está compilada. Cuando no se coloca el tercer parámetro de la función deff, se toma como valor predeterminado que la función es compilada.

La ventaja de este tipo de función es que puede ser utilizadas para funciones sencillas, sin necesidad de crear un archivo para la función.

Ejemplo:

deff(‘y=funct(x)’, ‘y=x^2+2’)

funct(3.5)

ans=

14.25

Funciones Complejas con Múltiples Líneas

A pesar de que la función deff se utiliza para escribir funciones de forma rápida, pueden escribirse funciones más complejas, que tengan varias líneas de códigos. Para hacer esto se pueden utilizar las siguientes reglas:

· Se utilizan comas para separar instrucciones.

· Se utiliza el punto y coma para separar instrucciones y evitar que se muestren en pantalla resultados preliminares.

Se utilizan dos puntos para indicar la continuación de línea.

A continuación, se muestra un ejemplo del uso de la función deff con múltiples instrucciones.

deff(‘[A, P]=circular(r)’, ‘A=%pi*r^2; ..

P=2*%pi*r; ‘)

[Area, perimetro]=circular(2)

Perimetro =

12.566371

Area =

12.566371

Funciones Llamando a otras Funciones

Una función puede llamar a otras funciones, si estas están disponibles en la sesión de Scilab, ya sea porque ha sido creada o si ha sido cargada utilizando cualquiera de los métodos para ese propósito.

Vamos a crear una función para calcular el área y perímetro de un cuadrado de longitud ‘a’.

deff(‘[Ac, Pc]=cuadrado(a)’, ‘Ac=a^2; ..

Pc=4*a;’)

Ahora vamos a crear una función que va a llamar a lar funciones ya creadas circular( r) y cuadrado(a).

deff(‘[Acirc, Acuad]=figuras(a)’, ..

‘Acirc=circular(a); ..

Acuad=cuadrado(a); ‘)

[circ, cuad] = figuras(2)

cuad =

4.

circ =

12.566371

Scilab, Utilizando Funciones

 

Conceptos Generales

Una función en Scilab es un procedimiento que se utiliza para agrupar un conjunto de pasos dentro de un contenedor, limitado por los comandos function y endfunction. La ventaja de la función es que es reusable, y permite la agrupación de múltiples líneas de instrucciones en un procedimiento, que puede ser llamado con una sola línea con el nombre de los argumentos de salida, el nombre de la función y los argumentos de entrada.

Definiendo Funciones

La sintaxis de una función es la siguiente

function [Salida1, Salida2, ….] = nombre_función(par1, par2, ….)

Instrucción

Instrucción

Salida1= expresión

Salida2 = expresión

endfunction

El encabezado de la función comienza con el comando function, seguido del listado de las variables de salida encerradas entre corchetes y separadas por comas; se coloca un signo de igual, y luego un nombre para la función y entre paréntesis se colocan el listado de variables de entradas (parámetros de entrada), separados por comas.

El cierre de la función consiste en el comando endfunction. Entre los comandos de inicio y de cierre de la función se crea un contenedor de instrucciones, que forman el cuerpo de la función. Dentro del cuerpo de la función se colocan instrucciones para calcular las variables de salidas. Deben colocarse instrucciones donde se le asignen valores a estas variables.

En la siguiente figura se muestra la estructura general de una función

clip_image002

Los parámetros de entrada se introducen en el lado derecho de la ecuación y los parámetros de salida se colocan en el lado izquierdo de la ecuación, estos van encerrados entre corchetes y separados por coma.

La función más sencilla en Scilab tiene un solo parámetro de entrada y un solo parámetro de salida. En este caso el único parámetro de salida puede colocarse sin corchetes.

function y = f(x)

Cuerpo de la función

y= expresión

endfunction

Como ejemplo podemos construir una función que calcule la siguiente función de un polinomio segundo grado: f(x)=x2 + 3x +25

function y = f(x)

y= x2 + 3x +25

endfunction

Para utilizar esta función solamente tendríamos que ingresar el nombre de la función y el argumento de entrada entre paréntesis.

f(2)

ans=

35

Una función con dos parámetros de salida se muestra a continuación.

function [A, Peri] = circ(r)

A=%pi*r^2

Peri=2*%pi*r

endfunction

Esta función tiene dos parámetros de salida, A y Peri; y tiene un solo parámetro de entrada, r. El nombre de la función es circ.

Para hacer uso de esta función debemos introducir los argumentos de salida y los argumentos de entrada de la función. Es de resaltar que los nombres de los argumentos no tienen que ser iguales a los de los parámetros utilizados cuando se creó la función.

[Area, Perimetro] = circ(3)

Perimetro =

18.849556

Area=

28.274334

Aquí se observa que el orden en que se muestran las variables de salida, primero se muestra la última variable de la lista, y continua en orden inverso hasta la primera variable de la lista. También se observa que los argumentos tienen nombres diferentes a los parámetros:

Area (argumento) y A (parámetro de la función)

Perimetro (argumento) y Peri (parámetro de la función)

Si no se coloca un listado de argumentos, solo se mostrará el resultado de la variable correspondiente al primer parámetro definido en la lista de parámetros de salida de la función.

Por ejemplo

circ(3)  \\da como resultado

ans =

28.274334

Que corresponde con el parámetro A, que es el primero en la lista de parámetros de la función.

Formas de Definir una Función

Existen al menos tres formas de definir una función

1. Introducir la función en la ventana de la consola

2. Copiar la función de un archivo a la consola.

3. Creando un archivo con extensión sce. Importarlo desde la consola con el comando exec.

4. Introducir la función en la ventana del editor de Scilab (Sci-notes).

Introducir Función en la Consola

Una de las formas de crear una función es introducirla directamente en la consola, en forma interactiva. Una vez se ha introducido el comando function y se han definido los parámetros de salida, el nombre de la función y los parámetros de entrada y se da enter, Scilab reconoce que se introducirá una función y creará una nueva línea para introducir las instrucciones del cuerpo de la función cada vez que se da enter. Cuando se introduce el comando endfunction, Scilab sale del modo de ingreso de función y regresa al modo normal de edición de Scilab.

Esta forma de introducir tiene la desventaja de que al cerrar la sesión de trabajo la función se perderá, aunque puede guardarse la sesión y abrirse para utilizar la función que ha sido guardada en la sesión.

Este método es adecuado si la función no es muy complicada y solo tiene pocas líneas de código, una función de cuando máximo unas 5 o 6 líneas que puede ser construida rápidamente sobre la marcha.

Copiar la función de un archivo a la consola

Si tenemos un archivo de texto, en lugar de teclear la función directamente en la consola, podemos copiarla del archivo de texto y pegarla en la consola. La función se comportará como si la hubiésemos ingresado directamente en la consola.

En la siguiente figura se muestra una función que ha sido creada en el editor de texto (Bloc de notas).

clip_image004

Utilizando un simple editor de texto podemos crear funciones que podemos guardar como archivos txt, y luego abrirlos para copiarlos en la consola, esta es una mejora con respecto a teclear las instrucciones de la función directamente en la consola. Podemos crear funciones más complejas con mayor número de líneas y copiarlas desde el archivo a la consola.

Utilizando el comando exec para importar un archivo con extensión sce

En lugar de copiar de un archivo de texto a la consola existe una mejor alternativa. El archivo con la función o funciones se guardan con la extensión sce y posteriormente se importan a la consola con el comando exec.

La sintaxis es:

exec(“Dirección al archivo sce”)

clip_image006

Al procesarse el comando exec hace que se ejecute el contenido del archivo a la consola, como si hubiesen sido tecleados directamente en la consola. Si el archivo contiene muchas líneas de instrucciones se mostrarán en la consola, si no se desea que todo del contenido del archivo se muestre se puede utilizar el comando punto y coma (;) para que no se muestre.

exec(“C:\Users\Luis\Documents\EjemplosFuncion.sce”);

Introducir la función en la ventana del editor de Scilab (Sci-notes)

En lugar de introducir la función en la consola, se puede ingresar en la ventana del editor de Scilab, y de allí se puede guardar como un archivo con extensión sci o sce. Luego se ejecuta y es el equivalente del comando exec. El archivo de la función se cargará a la consola y se podrá utilizar como cualquier función.

clip_image008

Es una mejor alternativa para ingresar una función que crear la función en un editor de texto, ya que permite utilizar las facilidades edición y de auto completación que tiene el editor de Scilab.

Scilab, Función Potencial

Una función potencial es una función del tipo:

clip_image001

Son ejemplos las siguientes funciones:

clip_image002

La grafica de la función f(x)=x2 se muestra en la siguiente figura

clip_image004

En Scilab se manejan escalares, vectores y matrices, como si fuesen matrices. Existen dos tipos de operaciones para la potenciación: Potenciación ( ^ y **) y Potenciación elemento por elemento ( .^ ).

Se presentan varios casos de la potenciación, dependiendo de si la base es un escalar o un vector o una matriz.

T = A ** b

T = A ^ b

T = A .^ b ( potenciación elemento por elemento)

Caso 1

A es un escalar y b es un escalar, el resultado T es un escalar.

scilab potenciacion 2

 

Caso 2

A es un vector y b es un escalar. El resultado es un vector donde cada elemento del vector esta elevado al escalar b. Es una operación de potenciación elemento por elemento.

clip_image008

Caso 3a

A es una matriz cuadrada y b es un escalar. Si la operación es de potenciación, el resultado es una matriz derivada de hacer la operación: A*A*A, b veces. A^4= A*A*A*A.

clip_image010

Caso 3b

A es una matriz cuadrada y b es un escalar. Si la operación es de potenciación elemento por elemento, el resultado es una matriz T, donde cada elemento resulta de elevar cada elemento de la matriz A a la potencia b.

clip_image012

Caso 4

Si A es un escalar y b es una matriz entonces el resultado T= A^b es una matriz donde cada elemento es igual a A^(b(i,j)).

clip_image014

Caso 5

Si A y b son matrices (o vectores) del mismo tamaño, entonces la matriz o el vector T resultado de la potenciación elemento por elemento es igual a A(i,j)^b(i,j). La potenciación como tal no está definida en este caso, solo la potenciación elemento por elemento.

clip_image016

Funciones en Scilab y la Ventana de Ayuda

Scilab proporciona una extensa librería interna de funciones matemáticas, las cuales son definidas Funciones Elementales (Elementary Functions). La librería de funciones está dividida en varias secciones:

Operaciones con Bits (Bitwise operations)

Complejos (Complex)

Matemáticas Discreta (Discrete Mathematics)

Matrices elementales (Elementary Matrices)

Logaritmos – Exponenciales – Potencias (Log-exp-power)

Punto flotante (Floting point)

Conversión de Radix (Radix conversios)

Manipulación de matrices (Matrix manipulation)

Operaciones con matrices (Matrix operations)

Operaciones con conjuntos (Set operations)

Procesamiento de señales (Signal Processing)

Operaciones simbólicas (Symbolic)

Trigonometría (Trigonometry)

Para acceder a la ayuda y ver la sintaxis de estas funciones hay que hacer clic en el icono con signo de interrogación que aparece en la barra de menú

clip_image002

También se puede hacer clic en la pestaña con el signo de interrogación y seleccionar la opción Scilab Help o con la tecla F1. Al utilizar cualquiera de estas opciones aparecerá una ventana de ayuda (Help Browser), la cual en el lado izquierdo muestra un explorador de temas de ayuda, y en la parte derecha una ventana donde aparece la ayuda sobre el tema seleccionado.

clip_image004

Si queremos investigar sobre cuales funciones están disponibles para cada una de las secciones definidas bajo las funciones elementales podemos hacer clic en el símbolo +, al lado de cada carpeta, para expandir su contenido. Se puede seleccionar cualquiera de las funciones y aparecerá en la ventana de la derecha la descripción de la función y su sintaxis.

clip_image006

En la figura se muestra como se ha expandido la carpeta correspondiente a las funciones logarítmica, exponencial y potencias, y se ha seleccionado la función exp, de la cual se muestra su descripción y sintaxis en la ventana de la derecha.

Son tantas las funciones que proporciona Scilab, que no nos detendremos a la discusión de cada una de ellas, el usuario interesado en cualquiera de ellas puede revisar la descripción y sintaxis de las funciones en la ventana de ayuda. Scilab también proporciona una facilidad de auto completación , la cual se activa al escribir las primeras letras de un comando o función y presionando la tecla Tab. Aparecerá un menú contextual con una lista de comandos y funciones que contienen los caracteres que hayamos ingresado.

clip_image008

Por ejemplo, si escribimos exp y presionamos la tecla tab, aparecerá el listado de funciones y comandos que se muestran en la figura, seleccionamos la función deseada y damos enter o hacemos doble clic y la función o comando será ingresada en la línea del editor de Scilab.

La mayoría de las funciones matemáticas se aplican tanto a nivel de escalar, vectores y matrices, cuando se aplican a nivel de vectores y matrices se utilizan a un nivel de elemento por elemento. Esto significa que, si tenemos una variable que almacena un solo valor y aplicamos la función exp, esta calculara el valor de la función exponencial de ese valor. En cambio, si tenemos una matriz se calculará el valor de la función exp para cada uno de los elementos de la matriz (element-wise operation).

clip_image010