Bill Knowlton

advertisement
RULES&ReplaceAll 6-0.nb
1
Bill Knowlton
Using the ReplaceAll command "/." to extract one item from a list of rules.
ü When there are a number of solutions for an equation (e.g., quadratic equation or a Systems of
Equations), Mathematica will list all the solutions. Well, if you want to use just one solution, how
does one choose a particular solution to use in a subsequent problem?
Let's start with a cubic equation that will give three solutions.
Clear@x, SysEqn1, cubicD
cubic@x_D = x3 + −x2 − 2 x;
H∗defining the function which does not really need to be down∗L
SysEqn1 = NSolve@cubic@xD == 5, xD
H∗SysEqn1 is the name we give the list of rules,
i.e., the solutions to the cubic equation∗L
88x → −0.775851 − 1.16513 <, 8x → −0.775851 + 1.16513 <, 8x → 2.5517<<
We probably only want the real solution which is the 3rd solution in the list. So we need to extract that 3rd solution
from the list. We do so using the command "[[place item is in list]]" and, in this case, [[3]].
We then use the "ReplaceAll" command which is "/." to replace x with the third item in the list.
x = x ê. SysEqn1@@3DD
2.5517
It worked! Let's see when substitute the third solution into the function cubic[x] if we get 5.
cubic@xD
5.
RULES&ReplaceAll 6-0.nb
2
There you go.
ü Ok, lets try another one for a system of equations where we get solutions for two variables.
Clear@x, SysEqn2, yD
SysEqn2 = NSolveA95 x2 − 5 y2
0, 5 x2 − 2 y2
2=, 8x, y<E
H∗SysEqn2 is the name we give the list of rules,
i.e., the solutions to the quadratic equation∗L
88x → −0.816497, y → 0.816497<, 8x → 0.816497, y → −0.816497<,
8x → 0.816497, y → 0.816497<, 8x → −0.816497, y → −0.816497<<
Let's extract the 4th solution.
8x, y< = 8x, y< ê. SysEqn2@@2DD
y
x
80.816497, −0.816497<
−0.816497
0.816497
Let's extract the 4th or last solution, then output x and y to see if it is working.
8x, y< = 8x, y< ê. Last@SysEqn2D
x
y
8−0.816497, −0.816497<
−0.816497
−0.816497
RULES&ReplaceAll 6-0.nb
It worked again. Let's extract the 1st solution, then output x and y to see if it is working.
8x, y< = 8x, y< ê. First@SysEqn2D
x
y
8−0.816497, 0.816497<
−0.816497
0.816497
Great. So we can use either [[list number]] or Last and First to extract solutions.
3
Download