Re: Beginner--getting rid of dot products with zero
- To: mathgroup at smc.vnet.net
- Subject: [mg66946] Re: Beginner--getting rid of dot products with zero
- From: Peter Pein <petsie at dordos.net>
- Date: Sun, 4 Jun 2006 02:01:32 -0400 (EDT)
- References: <e5ot50$i6t$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
smanky at gmx.de schrieb:
> sorry that my question was apparently not clear.
>
> i have no problem with computing the derivatives. the expressions with Total[] etc all make sense.
>
> however, the derivatives include ugly terms that are simply zero. there are terms of the following form
>
> 0.{exp, exp, exp}
>
> or
>
> {exp, exp, exp}.0
>
> in both cases the whole thing is zero and they should drop out...
>
> i am surprised that mathematica is not getting rid of them by itself, or at least when i use Simplify[]. so i am looking for a clever way to tell mathematica that it should disregard those terms.
>
> thanks,
>
> ~s
>
> p.s. if it is still not clear, or you just want to see for yourself, run:
>
> finish = 2;
> i = Table[i, {i, finish}];
>
> d1[k1_, k2_] = Exp[k1*i + k2*i^2];
> d2[k1_, k2_] = Total[Exp[k1*i + k2*i^2]];
>
> w[k1_, k2_, i] = d1[k1, k2]/d2[k1, k2];
>
> q[k1_, k2_] = x.w[k1, k2, i];
>
>
> L[k1_, k2_, alpha_, beta_ ] = Total[Log[q[k1, k2]]] + Total[(y - alpha - beta*q[k1, k2])^2/q[k1, k2]];
>
> \!\(Simplify[∂\_beta\ L[k1, \ k2, \ alpha, \ beta]]\)
>
> Link to the forum page for this post:
> http://www.mathematica-users.org/webMathematica/wiki/wiki.jsp?pageName=Special:Forum_ViewTopic&pid=10811#p10811
> Posted through http://www.mathematica-users.org [[postId=10811]]
>
>
Hello Stephan,
I don't know what you expect when applying a dot-product to a scalar (x) and a vector, but one of the following should do what you want:
either define x,y as vectors:
x = {x1, x2}; y = {y1, y2};
Simplify[D[L[k1, k2, a, b], a]]
-->
{(2*E^(-k1 - 3*k2)*(a*(1 + E^(k1 + 3*k2))^2 + 2*b*E^(k1 + 3*k2)*x1 -
(1 + E^(k1 + 3*k2))^2*y1))/x1,
(2*E^(-k1 - 3*k2)*(a*(1 + E^(k1 + 3*k2))^2 + 2*b*E^(k1 + 3*k2)*x2 -
(1 + E^(k1 + 3*k2))^2*y2))/x2}
or use scalar multiplication in the definition of q[]:
q[k1_, k2_] = x*w[k1, k2, i];
Simplify[D[L[k1, k2, a, b], a]]
-->
(2*E^(-k1 - 3*k2)*(a*(1 + E^(k1 + 3*k2))^2 + 2*b*E^(k1 + 3*k2)*x -
(1 + E^(k1 + 3*k2))^2*y))/x
hth,
Peter