%% 8  Gränsvärden med Matlab?
%% 8.1  x närmar sig a
% Att  f(x)\to L  när  x\to a  ( eller att \lim_{x\to a}f(x) = L\,)  betyder intuitivt, att när x  inte är  a\, , men närmar sig a\, , kommer värdet på f(x) att närma sig L\, . Det fångar den intuitiva innebörden, men är inte tillräckligt precist som definition för att kunna genomföra bevis för egenskaper hos gränsvärden.
%
% Den precisa definitionen är, att det till varje omgivning av L finns en punkterad omgivning till a\,, så att f\!:s värden i punkter i denna omgivning till a, alla ligger i omgivningen till L. Onekligen mer kryptiskt än den intuitiva definitionen, men med precision!
% Det finns flera skäl till att programvara inte lämpar sig för att avgöra om gränsvärden finns och i så fall bestämma närmevärden till dem, med mindre man ytterligare analyserar funktionen teoretiskt utöver dess definition.
% Om man med Matlab vill pröva vad som händer med f(x) när x\to a kan man försöka välja värden på x som närmar sig a. Men det blir i såfall en ändlig lista av tal, och vi har ingen möjlighet att se vad som händer för alla x i en punkterad omgivning till a, eftersom en sån består av oändligt mågna tal. Hur man väljer den ändliga listan av tal kan påverka vilket intryck man får av vad som händer med f(x).
% Matlab är bra på att räkna, men det finns förstås begänsningar på vilken precision man kan uppnå. Speciellt är det bekymmer när man delar ett tal mycket nära 0, men det liknande tal. Det är det samma som att multiplicera ett mycket stort tal med ett mycket litet och då blir det problem med precisionen (om inget särskilt görs för att hantera det).
%
% Uppgift 8.1
% Undersök f(x) = (1+x)^{1/x}\, , när x\to 0.
% Lösning
% Definitionen av  f innehåller  x  i såväl bas som exponent, vilket är lite besvärande, så vi skriver om den med
%    f(x) = (1+x)^{1/x}=(e^{\ln(1+x)})^{1/x}= e^{\ln(1+x)/x}.
% Vi ser att  f är definierad bara när x>-1 och x\not =0, så definitionsmängden är x\in (-1,\,0)\cup (0,\infty).
% Vi plottar grafen för ett första intryck:



% Vi byter taktik och låter x närma sig  0, först uppifrån och sen också nerifrån. Vi behöver då en lista på x-värden vars tal är positiva, men mindre och mindre.



%
% Uppgift 8.2
% Undersök  f(x) = \sin( \pi /x) när  x\to 0\,.
% Lösning
% Funktionen är definierad för alla  x  utom x=0\, . Vi låter x närma sig 0 uppifrån och nedifrån.

                  

%
% Vi ger upp och kollar grafen:



%
%% 8.2  Men om vet att gränsvärdet finns då?
% Låt oss säga att vi vet att f(x) har ett gränsvärde när x\to a, men inte vet vad det är. Kan vi då använda Matlab för att bestämma det?
% Svaret är igen nej (om man inte ytterligare analyserat funktionen teoretiskt utöver dess definition). Varje gång vi kodar att x\to a\, , väljer vi ett ändligt antal punkter och vi kommer inte godtyckligt nära a\, . Men en  approximation av gränsvärdet då? Nej, egentligen inte ens det, eftersom vi inte kan komma godtyckligt nära a\,, men vi kan ju hoppas komma fram till en hypotes om vad det kan vara.
% Uppgift 8.3
% Funktionen f(x) = \frac{ \cos 2 x - \cos x}{x^2}  har ett gränsvärde när x\to0\,. Försök uppskatta det med grafen till f(x)\,.
% Lösning
% Funktionen är definierad för alla x utom x=0\,.



%% 8.3  Existerar - existerar inte?
% En central fråga kring gränsvärden är att de avgöra om de finns eller inte finns. Matlab kan användas för att komma till en hypotes om vilket av alternativen som gäller, men inte för att avgöra frågan.
% Uppgift 8.4
% Undersök f(x)=\frac{\sqrt{ x^4-2x^3+3x^2-4x+2}}{x-1}  när x\to 1\,. Ställ upp hypoteser beträffande vänster- och höger-gränsvärde.
% Lösning
% Funktionen är definierad när polynomet under rottecknet är \geq\,, men inte när x=1\,. Vi kollar om vi kan se när detta är med Matlab:



%
% Det leder oss att gissa att funktionen är definierad för alla x  utom  x=1\, . Polynomet p ser ut att ha ett nollställe i x=1 och det bör vara dubbelt, för annars skulle p växla tecken i x=1. Vi kollar och får
% p(x) = (x-1)(x^3-x^2+2x-2)=(x-1)^2(x^2 +2)\,.
% Betryggande!



%
% Det ger oss hypotesen att f(x) har höger- och vänstergränsvärden i x=1\,, och att de är olika, så att gränsvärde saknas när x\to 1\,.
% Vi gör kalkylen för att se vad de kan vara:
% f(x) = \frac{\sqrt{(x-1)^2(x^2+2)}}{x-1}=
% \frac{|x-1|\sqrt{x^2+2}}{x-1}
% dvs
% f(x) =\left\{
% \begin{array}{rcl}
% \sqrt{x^2 +2}\,, & \,\mathrm{ när}\, & x>1\\
% -\sqrt{x^2 +2} \, ,& \,\mathrm{ när }\, & x< 1
% \end{array}
% \right.
% Vilket ger f(x)\to\sqrt{3} när x\to 1^+ och f(x)\to -\sqrt{3}, när x\to -1^- . Vi kollar vad Matlab tycker att \sqrt{3} är:



% Det avviker ganska mycket från vad vi leds att tro att gränsvärdena är med Matlab. Förklaringen är att vi med
% small_number = 1e-3
% inte är tillräckligt nära 0 . Men om vi går närmare då?
% Pröva med small_number = 1e-8  ovan!
% Då ser grafen märklig ut! Nära x=1 utför Matlab då division mellan två tal,  där så väl täljare som nämnare är mycket nära 0 och då klarar Matlab inte längre kalkylen på ett vettigt sätt.