Na początku, biorąc pod uwagę funkcję, powinniśmy ją precyzyjnie zdefiniować w całym zakresie {x,0,2}
, tj. jego wartości w zakresach 1-epsilon <= x < 1
i 2 - epsilon <= x < 2
.
Najprostszym sposobem jest określenie f1[x]
odcinkowo liniowy w obu zakresach, jednak otrzymany funkcja będzie różniczkowalną w punktach klejenia i wymagałoby to kolce.
Aby zapobiec takiej sytuacji powinniśmy wybrać (w tym przypadku) przynajmniej wielomianów trzeciego rzędu tam:
P[x_] := a x^3 + b x^2 + c x + d
i skleić je razem z f[x]
zakładając „warunki klejenia” (równość funkcji w określonych punktach jak oraz ich pierwszych pochodnych), tj. rozwiązywać równania wynikające:
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)
Do wizualizacji resuls możemy podjąć advantege z 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}]
zależności epsilon > 0
otrzymujemy różniczko- f1
, natomiast dla epsilon = 0
f1
nie jest różniczkowalna w dwóch punktach.
Plot[f1[x, eps]/. eps -> .4, {x, 0, 2.3}, PlotRange -> {0, 2.3},
ImageSize -> {500, 500}, PlotStyle -> {Blue, Thick}]
Gdybyśmy chcieli f1 być sprawne funkcję (nieskończenie) różniczkowalnych powinniśmy bawić określającą f1
w zakresie [1 - epsilon <= x < 1)
z transcendentalnej funkcji, coś jak na przykład Exp[1/(x-1)]
itp
@Sjoerd C. de Vries oba są dobrymi odpowiedziami, dałbym ci obie rozwiązane flagi, niestety +1 będzie musiał zrobić. Artes Docendo Myślę, że Manipulate to dobry pomysł. – enedene
@Verbeia Nie, nie mam. Nie wiem, jak udzielić wsparcia, czy wystarczy śledzić temat? – enedene