wolfram una mathematica leyenda graficar funciones funcion evaluar definir curva composicion bajo wolfram-mathematica

wolfram-mathematica - una - leyenda en mathematica



¿Cómo definir una función por intervalos en Mathematica? (3)

¿Cómo puedo definir una función f (x) en Mathematica que da 1 si x está en [-5, -4] o [1, 3] y 0 en caso contrario? Probablemente sea algo simple, ¡pero no puedo entenderlo!


Aunque la respuesta de Simon es canónica y correcta, aquí hay otras dos opciones:

f[x_] := 1 /; IntervalMemberQ[Interval[{-5, -3}, {1, 3}], x] f[x_?NumericQ] := 0

o

f[x_] := If[-5 <= x <= -3 || 1 <= x <= 3, 1, 0]

Editar:
Tenga en cuenta que la primera opción depende del orden en que se ingresaron las definiciones (gracias Sjoerd por señalarlo). Una solución similar que no tiene este problema y también funcionará correctamente cuando se suministre un Interval como entrada es

f[x_] := 0 /; !IntervalMemberQ[Interval[{-5, -3}, {1, 3}], x] f[x_] := 1 /; IntervalMemberQ[Interval[{-5, -3}, {1, 3}], x]


Todo está bien y bien, pero como regla general, uno siempre debe intentar el enfoque más simple y mantenerse alejado de la programación sofisticada de alto nivel. En esta situación particular me refiero a lo siguiente:

f [x_ /; -5 <= x <= -3] = 0 etc ... etc


La construcción básica que desea es Piecewise , en particular, la función que estaba solicitando se puede escribir como

f[x_] := Piecewise[{{1, -5 <= x <= -3}, {1, 1 <= x <= 3}}, 0]

o

f[x_] := Piecewise[{{1, -5 <= x <= -3 || 1 <= x <= 3}}, 0]

Tenga en cuenta que el argumento final, 0 define el valor predeterminado (o "else") no es necesario porque el valor predeterminado predeterminado es 0.

También tenga en cuenta que, aunque Piecewise y Which son muy similares en su forma, Piecewise es para la construcción de funciones, mientras que Which para la programación. Piecewise jugará mejor con la integración, la simplificación, etc ..., también tiene la notación matemática correcta, vea los ejemplos en la Piecewise .

Dado que la función por partes que desea es bastante simple, también podría construirse a partir de funciones de pasos como Boole , UnitStep y UnitBox , por ejemplo

UnitBox[(x + 4)/2] + UnitBox[(x - 2)/2]

Estos son solo casos especiales de Piecewise , como se muestra en PiecewiseExpand

In[19]:= f[x] == UnitBox[(x+4)/2] + UnitBox[(x-2)/2]//PiecewiseExpand//Simplify Out[19]= True

Alternativamente, puedes usar funciones de cambio como HeavisideTheta o HeavisidePi , por ejemplo

HeavisidePi[(x + 4)/2] + HeavisidePi[(x - 2)/2]

que son agradables, porque si se trata la función como una distribución, entonces su derivado devolverá la combinación correcta de funciones delta de Dirac .

Para más discusión vea el tutorial de Funciones por Tiempos .