Dnia 2-01-2012 o godz. 14:28 Rupert Swarbrick napisa?(a):
> leon.magiera at wp.pl writes:
> > Problem 2
> >
> > ex:1/(sqrt((x-b)^2+a^2)*sqrt((x-b)^2/a^2+1));
> >
> > integrate(ex,x);
> >
> > Is the above integral too hard ?
CAS DERIVE returns
ATAN((x - b)/ABS(a))
L.M.
>
> For this, have a look at what your expression is. Firstly, the
> x-b looks unpleasant so lets ignore that. Note that
>
> integrate (f(x - b), x, u, v) = integrate (f(x), x, u-b, v-b)
>
> and indeed you're asking for the indefinite integral, so this comes out
> as something like
>
> (integrate (f(x - b), x) at x=v) = (integrate (f(x), x) at x=v-b)
>
> Anyway, that lets us get rid of the "-b" for a bit:
>
> (%i1) ex:1/(sqrt((x-b)^2+a^2)*sqrt((x-b)^2/a^2+1))$
>
> (%i2) no_b: subst(x, x-b, ex);
> 1
> (%o2) --------------------------
> 2
> 2 2 x
> sqrt(x + a ) sqrt(-- + 1)
> 2
> a
>
> Hmm. Now it looks like there should be some cancelling going on here. I
> admit I did this on paper, but Maxima can do it too:
>
> (%i3) %, ratsimp;
> abs(a)
> (%o3) -------
> 2 2
> x + a
>
> And that's easy enough to integrate (unless, like me, you've forgotten
> the tables of integrals you learnt at A-level. Fortunately Maxima
> hasn't):
>
> (%i4) E_no_b: integrate (%, x);
> x
> abs(a) atan(-)
> a
> (%o4) --------------
> a
>
> Ahah! Now remember what I originally said about how b gets involved and
> do the substitution by hand:
>
>
> (%i5) E: subst(x-b, x, %);
> x - b
> abs(a) atan(-----)
> a
> (%o5) ------------------
> a
>
> Of course, abs(a)/a is ??1. If you know the sign of a, you can get even
> further:
>
> (%i6) assume (a>0);
> (%o6) [a > 0]
> (%i7) E, ev;
> x - b
> (%o7) atan(-----)
> a
>
> Tada! Now suppose you hadn't spotted the x-b thing. Fortunately, Maxima
> can still cope: you just have to tell it to get rid of the square roots
> by simplifying the product:
>
> (%i8) forget (a>0);
> (%o8) [a > 0]
> (%i9) ratsimp(ex);
> abs(a)
> (%o9) --------------------
> 2 2 2
> x - 2 b x + b + a
> (%i10) integrate(%,x);
> 2 x - 2 b
> abs(a) atan(---------)
> 2 a
> (%o10) ----------------------
> a
>
> And you can get rid of the unfortunate factor of 2 with another call to
> ratsimp if you fancy:
>
> (%i11) ratsimp(%);
> x - b
> abs(a) atan(-----)
> a
> (%o11) ------------------
> a
>
>
> Rupert