[MatLab] Limite dipendente da un parametro

Riccardo Desimini
Ciao a tutti,
sono alle prese con il calcolo (simbolico) dei limiti con Matlab.

Inserendo il seguente codice:

>> syms x a real
>> limit(x^a,x,0,'right')

ottengo

ans =

piecewise([a == 0, 1], [0 < a, 0], [a < 0, Inf])

e dunque, giustamente, risulta
\[ \lim_{x \to 0^+} x^a = \cases{1 & \text{se } a = 0 \\ 0 & \text{se } a > 0 \\ +\infty & \text{se } a < 0} \]
Se ora invece provo a fargli calcolare
\[ \lim_{x \to \frac{\pi}{2}^+} \frac{\cos(x)\, (e^{2x}-e^{\pi})}{\left ( x - \frac{\pi}{2} \right )^a} \]
al variare di \( a \in \mathbb{R} \), ottengo il codice

>> syms x a real
>> g = (cos(x)*(exp(2*x)-exp(pi)))/((x-pi/2)^a);
>> limit(g,x,pi/2,'right')
 
ans =

limit((cos(x)*(exp(2*x) - 6513525919879993/281474976710656))/(x - pi/2)^a, x == pi/2, Right)

che non ha alcun senso, quando invece dovrebbe emergere che
\[ \lim_{x \to \frac{\pi}{2}^+} \frac{\cos(x)\, (e^{2x}-e^{\pi})}{\left ( x - \frac{\pi}{2} \right )^a} = \cases{0^- & \text{se } a < 2 \\ -2e^{\pi} & \text{se } a = 2 \\ -\infty & \text{se } a > 2} \]

Qualcuno sa come aiutarmi?

Risposte
Lory314
Non so che versione tu abbia di MatLab, ma qui dice che

If it cannot be determined whether a limit exist, or cannot determine its value, then a symbolic to limit is returned. See Example 3.

Dando un'occhiata all'esempio 3 però non ci ho capito molto.

Ho osservato però che prendendo $a<2$ (ad esempio $a=1,1/2,1/4$) o $a>2$ (ad esempio $a=3,4$) il risultato coincide con quello da te suggerito. Prendendo $a=2$, no. A lui esce ancora $-oo$.

Non ho mai usato troppo il simbolico, ma magari per lui è troppo complicata come funzione. Potresti provare con Maple o Mathematica a vedere come si comportano loro.

Riccardo Desimini
Mathematica ha stampato a video per \( a \ge 2 \) la seguente assurdità:

cos exp pi ∞

Per \( a < 2 \):

Limit[cos x (-(pi/2) + x)^-a (-exp pi + 2 exp x), x -> pi/2, 
Direction -> -1, Assumptions -> a < 2]

Non so più che pesci prendere.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.