Publicado el 9 de Enero del 2021
589 visualizaciones desde el 9 de Enero del 2021
126,5 KB
5 paginas
Creado hace 22a (21/10/2002)
6 Funciones
En Mathematica se pueden definir nuevas funciones, una característica
que resulta muy útil y conveniente en una muy amplia variedad de con-
textos.
6.1. Definiendo funciones
Esto define, en Mathematica, la función f(x) = (x + 1)2. (El signo
de guión bajo, _, que aparece tras la variable en la parte izquierda,
es muy importante).
Ξ f[x_]:= (x+1)^2
Observa que la definición no produce ninguna respuesta como re-
sultado.
El argumento pasado a la función f puede ser un número.
Ξ f[4]
Y también, una variable o cualquier otra expresión.
Ξ f[a]
Ξ f[x + Sin[x]]
Una vez definida, la función puede utilizarse en cualquier cálculo.
Ξ Expand[f[x+1+y]]
Ξ Sin[f[x+a]]
Ξ f[f[a]]
Esto muestra la definición de f.
Ξ ?f
Esto libera la definición de f
Ξ Clear[f]
Ξ ?f
22
6.2. Definiciones múltiples
Una función con dos variables.
Ξ f[x_, y_]:= (x - y)^2 / y
Ξ 2 + f[a, b]
Una nueva definición para f que, en este caso, sobreescribe a la
anterior.
Ξ f[x_, y_]:= (x - y)^4
Ξ 2 + f[a,b]
¿Cuál es la definición de f?
Ξ ?f
Esta nueva definición de f no sobreescribe la anterior porque tiene
otro tipo de argumentos.
Ξ f[x_]:= Sin[x^2 +1]
Ξ 2 + f[a]
Ξ 2 + f[a,b]
¿Cuál es la definición de f ahora?
Ξ ?f
El mecanismo de definición múltiple es, a veces, muy conveniente
pero frecuentemente conduce a situaciones confusas. Una definición
limpia de f.
Ξ Clear[f]
Ξ f[x_]:= Sin[x^2 +1]
Ξ 2 + f[a]
Ξ ?f
Siempre es conveniente anular las definiciones de funciones que no
se vayan a usar más. Ello evita una buena cantidad de problemas
y errores.
Ξ Clear[f]
23
6.3. Definiciones condicionales
Mathematica permite definiciones múltiples, mezclando definiciones para
expresiones específicas como f[1] o f[a] con definiciones para variables
como f[x_]. Esto permite definir muchas funciones matemáticas.
La definición de una función que presenta una singularidad.
Ξ f[x_] := Sin[x+1]/x
Ξ f[Pi/2-1]
Aquí se obtiene un error porque f no está definida en 0.
Ξ f[0]
Así que definimos f en cero por el límite.
Ξ f[0] = 1
Ξ f[0]
Ξ f[Pi/2-1]
La definición anterior es matemáticamente equivalente a
f(x) =
x
1
( sen(x + 1)
si x 6= 0
si x = 0
Cuando se hace una secuencia de definiciones, Mathematica sigue el prin-
cipio de aplicar primero las definiciones más especificas y después las
definiciones más generales. Los casos especiales son aplicados antes que
los casos generales, independientemente del orden en que se definan; un
comportamiento que es particularmente importante.
Una función definida únicamente para valores racionales de la va-
riable.
Ξ g[n_Rational]:= 1
Ξ g[-23]
Ξ g[2/3]
Ξ g[Sqrt[2]]
La definición de g cuando la variables es real.
Ξ g[r_Real]:= 0
Ξ g[2/3]
Ξ g[Sqrt[2]]
Ξ g[3+4I]
24
La definición de g en cualquier otro caso.
Ξ g[x_]:= 1/2
Ξ g[z]
El mecanismo de definiciones condicionales permite definir en Mathema-
tica lo que habitualmente se conoce como funciones a trozos.
Un primer procedimiento para una definición condicional.
Ξ [f[x_]:= If[x < 0, Sin[x], 3x^2 - 1]
Ξ f[-2], f[2]
Un segundo procedimiento.
Ξ g[x_]:= 3 x^2 -1 /; x >= 0
Ξ g[x_]:= Sin[x] /; x < 0
Ξ g[-2], g[2]
6.4. Definición inmediata y definición diferida
En realidad hay dos formas posibles de definición. La primera, más fre-
cuente, utiliza el operador := y se denomina definición diferida; la se-
gunda utiliza el operador = y se llama definición inmediata. La diferencia
entre ambas es muy sutil y a veces causa confusión en el usuario poco
experimentado.
Cuando se utiliza el operador :=, la definición de la función no se
evalúa (y como consecuencia no se obtiene resultado alguno).
Ξ ExpandeA[x_]:= Expand[(1+x)^2]
Cuando se utiliza el operador =, la definición de la función se evalúa.
Ξ ExpandeB[x_]= Expand[(1+x)^2]
Cuando se utiliza la función ExpandeA, primero se sustituye el ar-
gumento en el cuerpo de definición y después se ejecuta el procedi-
miento de desarrollo de la expresión.
Ξ ExpandA[a+2]
Sin embargo, ExpandB sustituye su argumento en la expresión ya
desarrollada, dando una respuesta diferente.
Ξ ExpandB[a+2]
Ambos operadores, = y := pueden utilizarse para definir funciones, pe-
ro sus significados son diferentes. Hay que ser cuidadoso acerca de cuál
utilizar en cada caso. La regla es: ante la duda, usar :=.
25
Algunas veces, el uso de uno u otro es indiferente.
Ξ f[x_]:= Sin[Log[x]]
Ξ f[1+a]
Ξ g[x_] = Sin[Log[x]
Ξ g[1+a]
En otras ocasiones, el uso del operador := es imprescindible.
Ξ Clear[f,g]
Ξ f[x_]:= Simplify[x]
Ξ g[x_]=
Simplify[x]
Ξ f[Sin[x]^2 + Cos[x]^2]
Ξ g[Sin[x]^2 + Cos[x]^2]
El uso del operador := es posiblemente más frecuente, pero también
hay ocasiones en las que debe usarse necesariamente el operador =.
Ξ f[x_]:= D[Log[Sin[x]], x]
Ξ g[x_] = D[Log[Sin[x]], x]
Ξ f[1+a]
Ξ g[1+a]
...saber definir funciones y utilizarlas; al respecto es muy importante
que recuerdes el uso de _ para definir las variables;
...saber que la orden ? se utiliza para obtener ayuda acerca de una
función;
...saber que la orden Clear se utiliza para eliminar la definición de
una función;
...saber cómo hacer definiciones múltiples;
...saber cómo hacer definiciones condicionales;
...entender muy bien la diferencia en la asignación inmediata (=) y
la asignación diferida (:=).
26
Deberías...
Comentarios de: 6 Funciones - Mathematica (0)
No hay comentarios