10
$\begingroup$

I define a function $f(x)$ as

f[x_] := x*Exp[-x] - 0.16064; 

Then I set a variable actualroot to the function FindRoot, starting at $x=3$

actualroot = FindRoot[f[x], {x, 3}] 

and get the output

{x -> 2.88976} 

Later, I want to compare this output with a different estimate ($x\approx -2.88673$) of the root, and calculate error, so I have

Abs[(actualroot - estimateroot)/actualroot] 

and I get this output:

Abs[(-2.88673 + (x -> 2.88976))/(x -> 2.88976)] 

How do I get Mathematica to evaluate this expression? I also tried using N[] function to give me a decimal evaluation, but it didn't work.

$\endgroup$
1
  • 2
    $\begingroup$ You can use actualroot = FindRoot[f[x], {x, 3}][[1, 2]] $\endgroup$ Commented Jul 13, 2012 at 20:27

1 Answer 1

15
$\begingroup$

The usual way to get the values of the results of FindRoot, Solve, etc., which are lists of Rule is the following:

f[x_] := x E^(-x) - 0.16064 actualroot = x /. FindRoot[f[x], {x, 3}] estimateroot = -2.88673; Abs[(actualroot - estimateroot)/actualroot] 

Output:

2.88976
1.99895

$\endgroup$
2
  • $\begingroup$ Thanks, new to mathematica, just diving in $\endgroup$ Commented Jul 13, 2012 at 21:05
  • 4
    $\begingroup$ @DWC well, then it's probably good to know that /. is shorthand for ReplaceAll. Apart from its doc page reading this tutorial on transformation rules will prove fruitful. $\endgroup$ Commented Jul 13, 2012 at 21:51

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.