Al principio, dada una función, deberíamos definirla con precisión en todo el rango {x,0,2}
, es decir. sus valores en los rangos 1-epsilon <= x < 1
y 2 - epsilon <= x < 2
.
La manera más fácil es definir f1[x]
lineal por tramos en los rangos de los dos, sin embargo, la función resultante no sería derivable en los puntos de encolado, y que implicaría espigas.
Para evitar tal situación debemos elegir (en este caso) a polinomios menos tercera orden allí:
P[x_] := a x^3 + b x^2 + c x + d
y pegarlas junto con f[x]
suponiendo "condiciones de encolado" (igualdad de funciones en puntos dados como así como de sus primeras derivadas), es decir. resolver ecuaciones resultantes:
W[x_, eps_]:= P[x]//. [email protected][{#^2 == P[#],
1 == P[1],
2# == 3a#^2 +2b# +c,
1 == 3a +2b +c}, {a, b, c, d}]&@(1-eps)
Z[x_, eps_]:= P[x]//. [email protected][{# == P[#],
2 == P[2],
1 == 3a#^2 +2b# +c,
0 == 12a +4b +c}, {a, b, c, d}]&@(2-eps)
para visualizar los resultados mencionan que podemos tomar advantege de Manipulate
:
f1[x_, eps_]:= Piecewise[{{x^2, 0 < x < 1 -eps}, {W[x, eps], 1 -eps <= x < 1},
{ x , 1 <= x < 2 -eps}, {Z[x, eps], 2 -eps <= x < 2},
{ 2 , x >=2}}];
Manipulate[ Plot[f1[x, eps], {x, 0, 2.3},
PlotRange -> {0, 2.3}, ImageSize->{650,650}]
//Quiet, {eps, 0, 1}]
Dependiendo de epsilon > 0
obtenemos funciones diferenciables f1
, mientras que para epsilon = 0
f1
no es diferenciable en dos puntos.
Plot[f1[x, eps]/. eps -> .4, {x, 0, 2.3}, PlotRange -> {0, 2.3},
ImageSize -> {500, 500}, PlotStyle -> {Blue, Thick}]
si queríamos f1 siendo una función suave (infinitamente diferenciable) debemos jugar definir f1
en el rango [1 - epsilon <= x < 1)
con una función trascendental, algo como por ejemplo Exp[1/(x-1)]
etc.
@Sjoerd C. de Vries ambas son buenas respuestas, les daría la bandera resuelta, desafortunadamente el +1 tendrá que hacer. Artes Docendo Creo que Manipular es una buena idea. – enedene
@Verbeia No, yo no. No estoy seguro de cómo dar un apoyo, ¿sigues el tema lo suficiente? – enedene