Why does Mathematica not replace the derivative of thetatheta1′[t]?

I want to know the velocity of point pp, given that I know the coordinate.

px=L1cos(θ1)+L2cos(θ1+θ2)p_x=L_1\cos(\theta1)+L_2\cos(\theta1+\theta2)

I calculate dpxdt\frac{dp_x}{dt} to achieve the velocity of point pp about the xx coordinate. My trial as below:

px[t] = L1 Cos[Î¸1[t]] + L2 Cos[Î¸1[t] + Î¸2[t]];

Now I’d like to give the variable some value, θ1=t2,θ2=t3,L1=2,L2=3\theta_1=t^2,\theta_2=t^3,L_1=2,L_2=3

D[px[t], t] /. {Î¸1[t] -> t^2, Î¸2[t] -> t^3, L1 -> 2, L2 -> 3}

However,Mathematica gives the result:

-2 Sin[t^2] [Î¸1′[t] – 3 Sin[t^2 + t^3] ([Î¸1′[t] + [Î¸2′[t])

It doesn’t evaluate \[Theta]1]'[t] and \[Theta]1′[t] to 2t,3t22t ,3t^2, respectively.

So I use the command FullForm

Î¸1[t] // FullForm

Derivative[1][Î¸1][t]

So my question is why is it that Mathematica cannot do the full evaluation and how to fix it?

=================

=================

2 Answers
2

=================

If you initially want to be able to work with the derivative of p[t] in a form that still contains Î¸1, Î¸2 in unevaluated form, then it may be useful to do something like this:

Clear[L1, L2, Î¸1, Î¸2, t];
px[t_] = L1 Cos[Î¸1[t]] + L2 Cos[Î¸1[t] + Î¸2[t]]

(* ==> L1 Cos[Î¸1[t]] + L2 Cos[Î¸1[t] + Î¸2[t]] *)

pDerivative = D[px[t], t]

(*
==> -L1 Sin[Î¸1[t]] Derivative[1][Î¸1][t] –
L2 Sin[Î¸1[t] + Î¸2[t]] (Derivative[1][Î¸1][t] +
Derivative[1][Î¸2][t])
*)

So this is where you were in your question, and the derivative has been done while keeping the functions Î¸1[t] and Î¸2[t] unspecified.

Say you want to replace them by a specific form now.

It can be done using a replacement rule that directly inserts a function as follows:

pDerivative /. {Î¸1 -> (#^2 &), Î¸2 -> (#^3 &),
L1 -> 2, L2 -> 3}

(* ==> -4 t Sin[t^2] – 3 (2 t + 3 t^2) Sin[t^2 + t^3] *)

But this is less readable than simply doing it by adding a definition for the functions Î¸1[t] and Î¸2[t] before the next evaluation of pDerivative:

Clear[Î¸1, Î¸2];
Î¸1[t_] := t^2;
Î¸2[t_] := t^3;

pDerivative /. {L1 -> 2, L2 -> 3}

(* ==> -4 t Sin[t^2] – 3 (2 t + 3 t^2) Sin[t^2 + t^3] *)

So here pDerivative used the new definitions without you having to explicitly add replacement rules (it did that for you, internally). If you then want to get back to the general form, just use Clear as I did above to erase the definitions for Î¸1[t] and Î¸2[t].

The replacement needs to be made before taking the derivative.

As the argument to px[], t should be a pattern, i.e. t_, but px[t] as a variable also works.

px[t_] = L1 Cos[\[Theta]1[t]] + L2 Cos[\[Theta]1[t] + \[Theta]2[t]]

D[px[t] /. {\[Theta]1[t] -> t^2, \[Theta]2[t] -> t^3, L1 -> 2, L2 -> 3}, t]

-4 t Sin[t^2] – 3 (2 t + 3 t^2) Sin[t^2 + t^3]