Professional Documents
Culture Documents
Lecture Notes of Dr. Paramjeet Singh
Lecture Notes of Dr. Paramjeet Singh
2. Find the largest interval in which x∗ must lie to approximate x with relative error at most 10−4 for each
value of x.
(a) π.
(b) e.
√
(c) 3.
√
(d) 3 7.
Sol.
|x − x∗ |
(a) The relative error is Er = , where x = π. Now
|x|
|π − x∗ |
≤ 10−4
|π|
∴ |π − x∗ | ≤ π · 10−4
=⇒ −π · 10−4 ≤ π − x∗ ≤ π · 10−4
=⇒ −π − π · 10−4 ≤ −x∗ ≤ −π + π · 10−4
−4
=⇒ π − π · 10 ≤ x∗ ≤ π + π · 10−4 .
(c) √ √ √ √
3− 3 · 10−4 ≤ x∗ ≤ 3+ 3 · 10−4 .
The interval can be written as [1.731877602, 1.732224013].
CONTINUED
–2–
(d) √ √ √ √
7 · 10−4 ≤ x∗ ≤ 7 · 10−4 .
3 3 3 3
7− 7+
The interval can be written as [1.91273989, 1.913122476].
3. A rectangular parallelepiped has sides of length 3 cm, 4 cm, and 5 cm, measured to the nearest centimeter.
What are the best upper and lower bounds for the volume of this parallelepiped? What are the best upper
and lower bounds for the surface area?
Sol. The lengths are measured to measured to the nearest centimeter means that if one side is a = 3, then
a ∈ [2.5, 3.5). Similarly other two sides b = 4, b ∈ [3.5, 4.5) and c = 5, c ∈ [4.5, 5.5).
Using smallest value for each length, the lower bound for the volume is Vmin = 2.5 × 3.5 × 4.5 = 39.375.
Using largest values, the upper bound for volume is Vmax = 3.5 × 4.5 × 5.5 = 86.625.
Similarly using minimum values, the lower bound for the surface area is Smin = 2(2.5 × 3.5 + 3.5 × 4.5 +
2.5 × 4.5) = 71.5.
The upper bound is for the surface area is Smax = 2(3.5 × 4.5 + 4.5 × 5.5 + 5.5 × 3.5) = 119.5.
4. Use three-digit rounding arithmetic to perform the following calculations. Compute the absolute error and
relative error with the exact value determined to at least five digits.
√ √ √
(a) 3 + ( 5 + 7).
(b) (121 − 0.327) − 119.
3
(c) −10π + 6e − .
62
π − 22/7
(d) .
1/17
Sol.
√ √ √
(a) True value (by taking six digits): x = 3 + ( 5 + 7) = 6.61387.
Approximate value (by three-digit rounding) x∗ = 1.73 + (2.24 + 2.65) = 1.73 + 4.89 = 6.62.
Absolute error: |x − x∗ | = 0.00613.
|x − x∗ |
Relative error: = 0.0009268.
|x|
(b) True value (by taking six digits): x = (121 − 0.327) − 119 = 120.673119 = 1.673.
Approximate value (by three-digit rounding) x∗ = (121 − 0.327) − 119 = 121 − 119 = 2.
Absolute error: |x − x∗ | = 0.327.
|x − x∗ |
Relative error: = 0.1955.
|x|
3
(c) True value (by taking six digits): x = −10π + 6e − = −31.4159 + 16.3097 − 0.048387 = −15.1546.
∗
62
Approximate value (by three-digit rounding) x = −31.4 + 16.3 − 0.048 = −15.1.
Absolute error: |x − x∗ | = 0.0546.
|x − x∗ |
Relative error: = 0.0036029.
|x|
π − 22/7 3.14159 − 3.14286
(d) True value (by taking six digits): x = = = −0.021590.
1/17 0.058824
3.14 − 3.14
Approximate value (by three-digit rounding) x∗ = = 0.
∗
0.059
Absolute error: |x − x | = 0.02159.
|x − x∗ |
Relative error: = 1.
|x|
5. Calculate the value of x2 + 2x − 2 and (2x − 2) + x2 where x = 0.7320e0, using normalized point arithmetic
and proves that they are not the same. Compare with the value of (x2 − 2) + 2x.
CONTINUED
–3–
Sol. Given x = 0.7320e0, x2 = 0.5358e0, 2x = 0.1464e1
1 6x
6. The derivative of f (x) = 2
is given by . Do you expect to have difficulties evaluating this
(1 − 3x ) (1 − 3x2 )2
derivative at x = 0.577? Try it using 3- and 4-digit arithmetic with chopping.
Sol. The true value of the derivative is given by
6 · 0.577
f 0 (0.577) = = 2352910.7926.
(1 − 3(0.577)2 )2
Using 3-digit chopping:
6x = 6 × 0.577 = 3.46
3x2 = 3(0.577)2 = 3 × 0.332 = 0.996
1 − 3x2 = 0.004
2 2
(1 − 3x ) = 0.000016
6x
= 216000.
(1 − 3x2 )2
6x = 6 × 0.577 = 3.462
3x2 = 3(0.577)2 = 3 × 0.3329 = 0.9987
1 − 3x2 = 0.0013
2 2
(1 − 3x ) = 0.00000169
6x
= 2048000
(1 − 3x2 )2
7. Suppose two points (x0 , y0 ) and (x1 , y1 ) are on a straight line with y1 6= y0 . Two formulas are available to
find the x-intercept of the line:
x0 y1 − x1 y0 (x1 − x0 )y0
x= , and x = x0 − .
y1 − y0 y1 − y0
(a) Show that both formulas are algebraically correct.
(b) Use the data (x0 , y0 ) = (1.31, 3.24) and (x1 , y1 ) = (1.93, 4.76) and three-digit rounding arithmetic to
compute the x-intercept both ways. Which method is better and why?
Sol.
(a) We should be a bit careful here to avoid dividing by 0. It is potentially unsafe to write the equation of
the line is
y − y0 y1 − y0
= ,
x − x0 x1 − x0
because potentially x0 = x1 .
However, we are told that y0 6= y1 , so we can instead write the equation of the line as
x − x0 x1 − x0
= .
y − y0 y1 − y0
CONTINUED
–4–
We can cross-multiply and write this instead as
x1 − x0
x − x0 = (y − y0 ) .
y1 − y0
The x-intercept is the point on the line at which y = 0, so we can substitute y = 0 into this equation
and get
x1 − x0
x = x0 − y0 ,
y1 − y0
which is the given formula.
(b) The first formula gives the answer −0.00658, while the second formula gives the answer −0.0100.
In this case, the second formula is better. The first one involved subtracting x0 y1 − x1 y0 . Because
x0 y1 = 6.24 and x1 y0 = 6.25, the result of the subtraction has only one significant digit.
We can check this by working to 10 significant digits. In that case, the first formula gives −0.0115789474
and the second gives −0.0115789470. Surely the answer is closer to −0.01 than to −0.00658.
8. Use four-digit rounding arithmetic and the formula to find the most accurate approximations to the roots
of the following quadratic equations. Compute the absolute errors and relative errors.
1 2 123 1
x − x + = 0.
3 4 6
Sol. The quadratic formula states that the roots of ax2 + bx + c = 0 are
√
−b ± b2 − 4ac
x1,2 = .
2a
1 2 123 1
Using the above formula, the roots of given eq. x − x + = 0 are approximately (using long format)
3 4 6
x1 = 92.24457962731231, x2 = 0.00542037268770.
We use four-digit rounding arithmetic to find approximations to the roots. We write the approximations of
root as x∗1 and x∗2 . These approximations are given by
q
123
4 ± (− 123 2
4 ) −4·
1
3 · 1
6
x∗1,2 = 1
2· 3
√
30.75 ± 30.752 − 4 · 0.3333 · 0.1667
=
2 × 0.3333
√
30.75 ± 945.6 − 1.3333 · 0.1667
=
√ 0.6666
30.75 ± 945.6 − 0.2222
=
√0.6666
30.75 ± 945.4
=
0.6666
30.75 ± 30.75
=
0.6666
Therefore we find the first root by taking plus sign:
30.75 + 30.75 61.50
x∗1 = = = 92.26.
0.6666 0.6666
CONTINUED
–5–
This root has the absolute error
|x1 − x∗1 | = 0.015420373,
and relative error
92.24457962731231 − 92.26
|x1 − x∗1 |/|x1 | = = 0.000167168.
92.24457962731231
We find the second root by taking minus sign
30.75 − 30.75
x∗2 = = 0.
0.6666
This root has the following absolute error
9. Find the root of smallest magnitude of the equation x2 − 1000x + 25 = 0 using quadratic formula. Work in
floating-point arithmetic using a four-decimal place mantissa.
Sol. Given that,
x2 − 1000x + 25 = 0
√
1000 ± 106 − 102
=⇒ x =
2
Now in four digit mantissa
106 = 0.1000e7 & 102 = 0.1000e3
Therefore p
106 − 102 = 0.1000e4.
Hence roots are given by
0.1000e4 + 0.1000e4
x1 = = 0.1000e4
2
and
0.1000e4 − 0.1000e4
x2 = = 0.0000e4.
2
One of the roots becomes zero due to the√limited precision allowed in computation. In this equation since
b2 is much larger than 4ac. Hence b and b2 − 4ac become two equal numbers. Calculation of x2 involves
the subtraction of nearly two equal numbers which will cause serious loss of significant figures.
To obtain a more accurate 4-digit rounding approximation for x2 , we change the formulation by rationalizing
the numerator or we know that in quadratic equation ax2 + bx + c = 0, the product of the roots is given by
c/a, therefore the smaller root may be obtained by dividing (c/a) by the largest root.
Therefore first root is given by 0.1000e4 and second root is given as
25 0.2500e2
= = 0.2500e − 1.
0.1000e4 0.1000e4
CONTINUED
–6–
10. Consider the identity
Zx
1 − cos(x2 )
sin(xt)dt = .
x
0
Explain the difficulty in using the right-hand fraction to evaluate this expression when x is close to zero.
Give a way to avoid this problem and be as precise as possible.
Sol. There is loss of significance at x ≈ 2kπ, k integer, because then cos x ≈ 1.
We can avoid this problem at x ≈ 0 by the alternative expression
x2
1 − cos x2 2 sin2 2
= .
x x
For x ≈ 2kπ, k 6= 0, integer, this only moves the problem (in a less severe form) into the evaluation of sin x,
because this is achieved by mapping the argument into a fixed interval of length 2π by the identity
sin x = sin(x − 2kπ).
CONTINUED
–7–
12. How many multiplications and additions are required to determine a sum of the form
n X
X i
ai bj ?
i=1 j=1
Modify the sum to an equivalent form that reduces the number of computations.
Sol.
n X
X i
ai bj = a1 b1 +
i=1 j=1
a2 b1 + a2 b2 +
a3 b1 + a3 b2 + a3 b3 +
······
an b1 + an b2 + · · · + an bn .
For each i there are i multiplications since j ranges from 1 to i. There are exactly n iterations so there are
Pn n(n + 1)
a total of i= multiplications.
i=1 2
Pn n(n − 1)
There are i − 1 additions for each i so there are a total of (i − 1) = additions at each i. Then
i=1 2
we must add these sums together for n − 1 more additions.
n(n + 1) n(n − 1)
Therefore, there are + + n − 1 = n2 + n − 1 total computations.
2 2
We can modify the sum as follows:
Xn X i Xn Xi
ai bj = ai bj
i=1 j=1 i=1 j=1
Thus the number of multiplications required is reduced to n, while the number of additions hasn’t changed.
13. Let P (x) = an xn + an−1 xn−1 + · · · + a1 x + a0 be a polynomial, and let x0 be given. Construct an algorithm
to evaluate P (x0 ) using nested multiplication.
Sol. We write
P (x) = ((an x + an−1 )x + an−2 )x + · · · + a3 )x + a2 )x + a1 x + a0 .
This form requires n multiplications. The following algorithm computes P (x0 ) using the nested arithmetic.
Input: n, a0 , a1 , · · · , an , x0
Output: y = P (x0 )
Step 1: Set y = an
Step 2: For i = n − 1, n − 2, · · · , 0
set y = x0 y + ai .
Step 3: Output (y);
STOP.
14. Construct an algorithm that has as input an integer n ≥ 1, numbers x0 , x1 , · · · , xn , and a number x and
that produces as output the product (x − x0 )(x − x1 ) · · · (x0 − xn ).
Sol. Input : n, x0 , x1 , · · · , xn , x.
Qn
Output: (x − xi ).
i=0
Step 1: Set p = (x − x0 ).
i = 1.
Step 2: While i ≤ n set
p = p ∗ (x − xi );
CONTINUED
–8–
i = i + 1.
Step 3: Output p.
STOP.
15. Verify that the functions f (x) and g(x) are identical functions.
cos2 x
f (x) = 1 − sin x, g(x) = .
1 + sin x
(a) Which function should be used for computations when x is near π/2? Why?
(b) Which function should be used for computations when x is near 3π/2? Why?
Sol.
1 + sin x cos2 x
f (x) = (1 − sin x) × = .
1 + sin x 1 + sin x
Thus both the functions are same.
(a)
f (x) = 1 − sin x
0
f (x) = 1 − cos x
1.001πf 0 (1.001π/2)
κ(1.001π/2) =
f (1.001π/2)
= 1.2765 × 106 .
Thus function evaluation will become ill-conditioned near π/2. We prefer second formula which does
not involve cancellation of two similar digits.
(b) Similarly when x is near 3π/2, we use first formula as 1 + sin x ≈ 0.
√
16. (a) Consider the stability (by calculating the condition number) of 1 + x − 1 when x is near 0. Rewrite
the expression to rid it of subtractive cancellation.
(b) Rewrite ex − cos x to be stable when x is near 0.
Sol.
(a) Let x = 0.0001
x0 = 0.0001
x1 = x0 + 1
√
x2 = x1
x3 = 1
x4 = x2 − x3
Now to check the effect of x3 on x2 , we consider the function f3 (x3 ) = x2 − x3
x3 f 0 (x3 ) x3
κ(x3 ) = = ≈ 20000.
f (x3 ) x2 − x3
We obtain a very larger condition number, which shows that the last step is not stable. Now we modify
the above algorithm
√ √
1+x−1× 1+x+1 x
f (x) = √ =√
1+x+1 x+1+1
x0 = 0.0001
x1 = x0 + 1
√
x2 = x1
x3 = x2 + 1
x4 = x0 /x3
CONTINUED
– 90 –
x0 x3 f (x3 )
Consider the function f3 (x3 ) = , κ = , which is a small number. Hence the above
x3 f (x3 )
algorithm is stable.
(b) As discussed above, write an algorithm. In the last step there will subtraction of nearly two equal
numbers and will cause loss of significance.
To avoid this situation write the Taylor’s series of ex and cos x and then collect the terms (which is a
stable form. Why?).
17. Suppose that a function f (x) = ln(x + 1) − ln(x), is computed by the following algorithm for large values of
x using six digit rounding arithmetic
x0 : = x = 12345
x1 : = x0 + 1
x2 : = ln x1
x3 : = ln x0
f (x) := x4 : = x2 − x3 .
By considering the condition κ(x3 ) of the subproblem of evaluating the function, show that such a function
evaluation is not stable. Also propose the modification of function evaluation so that algorithm will become
stable.
Sol. As discussed in previous question, by taking x = 0.0001 and writing algorithm, we obtain a very large
condition number which makes our algorithm unstable. Therefore we need to modify the pattern.
x
Loss of significance as x ≈ y, ln x − ln y = ln .
y
There is still a loss of significance, since ln 1 = 0, but this is the best we can do if the input is x and y; to
avoid loss of significance completely, we would have to ask the user to give, say, y and x − y as data; then
according to our problem
1+x 1 1
ln(1 + x) − ln x = ln = ln 1 + = + ···
x x x