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

Anuncios

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

Función linsolve en Scilab

En el artículo del 5 de octubre de 2016 habíamos tratado la solución de ecuaciones lineales simultaneas utilizando el álgebra lineal, donde teníamos un sistema de n ecuaciones con n incógnitas y queríamos encontrar el vector X de las incógnitas. Habíamos mostrado un ejemplo de un sistema de 3 ecuaciones con tres incógnitas.

Se había definido el sistema en función de los siguientes elementos:

Una matriz de coeficientes, que estamos denominando A.

Un vector de incógnitas, denominado X.

Un vector de constantes, denominado b.

A*X = b

En esa oportunidad habíamos conseguido una expresión para resolver el valor del vector X mediante la operación de división izquierda.

X = A\b

Otra forma de resolver el vector X es utilizando la función linsolve, la cual resuelve una ecuación de la forma:

A*X + B = 0

donde:

X = linsolve(A,B)

Hay que tomar en consideración que el signo de los valores del vector B que se utiliza con la función linsolve son el negativo de los valores del vector b utilizados cuando se utiliza la división izquierda. La razón es que para resolver linsolve se está pasando el vector del lado derecho de la ecuación al lado izquierdo de la ecuación.

A*X=b

A*X + (-b) = 0

A*X + B = 0

Donde B = -b

clip_image002

A continuación, se muestran los resultados de este sistema de ecuaciones utilizando ambos métodos: división izquierda y función linsolve.

clip_image004

Es de resaltar el hecho que el signo de los vectores b, utilizado en la operación de división izquierda y el signo del vector B utilizado con la función linsolve son de signo contrario: B = -b

Trabajando con Userforms y Controles

 

Una UserformName es un objeto (Clase) dentro del proyecto (libro) donde es creado, y los controles incluidos dentro de la forma constituyen propiedades del objeto tipo UserFormName. Los controles incluidos constituyen también objetos y tienen sus propias propiedades.

clip_image002

Para separar los objetos de las propiedades y métodos se utiliza el operador punto. Así el objeto UserForm1 tiene una propiedad TextBox1, el cual es un objeto creado dentro del formulario, y que devuelve un objeto tipo TextBox, el cual tiene una propiedad BackColor, que se ha establecido con la función RGB.

Que es un Formulario (UserForm)

Una forma o formulario (UserForm) es esencialmente una caja de dialogo construida al gusto y necesidad del usuario, de allí su nombre en inglés: User: usuario y Form. Forma o formulario.

El formulario está constituido por la forma propiamente dicha y por los diferentes controles. El formulario puede pensarse como un contenedor, un espacio para colocar los diferentes controles.

Insertando un Formulario

Para insertar un formulario, primero hay que abrir el editor de Visual Basic, en la barra de menú hacer clic en la pestaña insertar, aparecerá un menú desplegable con las opciones para insertar: Procedimiento, UserForm, Módulo, Módulo de Clase y Archivo.

clip_image004

También se puede insertar utilizando el icono en la barra de menú.

clip_image006

Al hacer clic en UserForm aparecerá un formulario vacío, con el nombre UserForm1 en la barra de título, se mostrará una caja de herramienta con los controles predeterminados.

También aparecerá una carpeta con el nombre Formularios y el formulario UserForm1; en la ventana de propiedades aparecerán las propiedades de UserForm1.

clip_image008

Cuadro de Herramientas

El cuadro o caja de herramientas contiene un conjunto de iconos (15 predeterminados).

clip_image010

Los iconos representan controles que pueden ser incorporados al formulario en la medida que se requieran.

Si se necesitan controles adicionales, se pueden añadir en la barra de menú del VBE, hacer clic en herramientas y seleccionar controles adicionales.

 

Bibliografía

Brito, Luis : VBA Excel UserForms. Amazon, https://www.amazon.com/dp/B01N63S43C