Chem 302 Lab Assignment

55
Chem 302 Lab Assignment Tuesday 2:30 – 4:00 Colin Chris M Johnathan P Craig Jonathan E Alex Tuesday 4:00 – 5:30 Curtis Matt Chris L Janet Cory Kristen

description

Tuesday 2:30 – 4:00 Colin Chris M Johnathan P Craig Jonathan E Alex. Tuesday 4:00 – 5:30 Curtis Matt Chris L Janet Cory Kristen. Chem 302 Lab Assignment. Chem 302 - Math 252. Chapter 1 Solutions of nonlinear equations. Roots of Nonlinear Equations. - PowerPoint PPT Presentation

Transcript of Chem 302 Lab Assignment

Page 1: Chem 302 Lab Assignment

Chem 302 Lab Assignment

• Tuesday 2:30 – 4:00ColinChris MJohnathan PCraigJonathan EAlex

• Tuesday 4:00 – 5:30CurtisMattChris LJanetCoryKristen

Page 2: Chem 302 Lab Assignment

Chem 302 - Math 252

Chapter 1Solutions of nonlinear equations

Page 3: Chem 302 Lab Assignment

Roots of Nonlinear Equations

• Many problems in chemistry involve nonlinear equations

• Linear and quadratic equations are trivial, can be solved analytically

• Cubic and higher order solve numerically

• Present a overview of basic methods

• Not a complete discussion

Page 4: Chem 302 Lab Assignment

Successive Approximations

• Simplest method• Want to solve

f(x)=0rearrange into the form

x=g(x)• Use as iteration formula

xi+1=g(xi)• Use initial guess and iterate until self consistent

Page 5: Chem 302 Lab Assignment

Successive Approximations

2 3 2 1,2f x x x

2 2

3

xx g x

2

1

2

3i

i

xx

0

2

1

2

2

start with 0

0 20.666667

3

0.666667 20.814815

3

x

x

x

2 3 2 1,2f x x x

2 2

3

xx g x

Page 6: Chem 302 Lab Assignment

2

1

2

3i

i

xx

i xi

0 0

1 0.666667

2 0.814815

3 0.887974

4 0.929500

5 0.954656

6 0.970456

7 0.980595

8 0.987189

9 0.991514

10 0.994367

11 0.996255

12 0.997508

13 0.998341

14 0.998895

15 0.999264

16 0.999509

i xi

17 0.999673

18 0.999782

19 0.999855

20 0.999903

21 0.999935

22 0.999957

23 0.999971

24 0.999981

25 0.999987

26 0.999991

27 0.999994

28 0.999996

29 0.999997

30 0.999998

31 0.999999

32 0.999999

Page 7: Chem 302 Lab Assignment

Successive ApproximationsSecond root

0

2

1

2

2

2

2

start with 3

3 23.666667

3

3.666667 25.148148148

3

5.148148148 29.501143118

3

Diverges

x

x

x

x

Page 8: Chem 302 Lab Assignment

Successive ApproximationsSecond root

0

2

1

2

2

2

2

start with 3

3 23.666667

3

3.666667 25.148148148

3

5.148148148 29.501143118

3

Diverges

x

x

x

x

Microsoft Excel Worksheet

Page 9: Chem 302 Lab Assignment

Successive ApproximationsDifferent formula

2 3 2f x x x

3 2x x

Microsoft Excel Worksheet

Will find x=2, will not find x=1

Different formula – different results

No one formula is best

Slow to converge

Page 10: Chem 302 Lab Assignment

-5

0

5

10

15

20

25

30

35

-4 -3 -2 -1 0 1 2 3 4 5 6 7 8

Successive ApproximationsHow to find initial guesses?

Grid search

2 3 2f x x x

Course to start

Get finer

Page 11: Chem 302 Lab Assignment

Analysis of Convergence

• Each stage of iterationxi+1=g(xi)

• For convergence

x g x

1n nx x

• True root

• Intersection of two functions: x & g(x)

Page 12: Chem 302 Lab Assignment

x

yy = x

y =g (x )

Analysis of Convergence

Page 13: Chem 302 Lab Assignment

• Four possibilities– Monotonic convergence– Oscillating convergence– Monotonic divergence– Oscillating divergence

Analysis of Convergence

Page 14: Chem 302 Lab Assignment

Monotonic convergence

x

yy = x

y =g (x )

x 1

x 2

g (x 1)g (x 0)

x 0

Page 15: Chem 302 Lab Assignment

Oscillating convergence

x

y

y = x

y =g (x )

x 0

x 1

x 2

x 3

g (x 0)

g (x 1)

g (x 2)

Page 16: Chem 302 Lab Assignment

Monotonic divergence

x

y

y = x

y =g (x )

x 2

x 1

x 0

g (x 2)

g (x 1)

g (x 0)

Page 17: Chem 302 Lab Assignment

Oscillating divergence

x

y

y = x

y =g (x )

x 2

x 1

x 0

g (x 2)

g (x 1)

g (x 0)

Page 18: Chem 302 Lab Assignment

Analysis of Convergence• Key is g(x)

• Mean Value Theorem– If g(x) and g(x) are continuous on the interval [a,b] then there exists

an (a<<b) such that g b g a

gb a

2 4 2

2 4

g x x x

g x

2 2

2 2

4 2 4 2

4 2 4 22 4 4

2

g a a a g b b b

b b a ag b g ag b a

b a b ab a

Page 19: Chem 302 Lab Assignment

Analysis of Convergence g b g a

gb a

g b g a b a g

1

1 1

Let and i i

i i i i i

a x b x

g x g x x x g

2 1 1i i i ix x x x g

2 1 1i i i ix x x x g

If is bounded then g x g M

2 1 1i i i ix x M x x

Page 20: Chem 302 Lab Assignment

Analysis of Convergence2 1 1i i i ix x M x x

2 1 1 0x x M x x

23 2 2 1 1 0x x M x x M x x

34 3 3 2 1 0x x M x x M x x

12 1 1 1 0

ii i i ix x M x x M x x

To converge LHS → 0

If M < 1 guaranteed to converge

1g x Sufficient but not necessary

Page 21: Chem 302 Lab Assignment

Speed of Convergence

2 3

( ) ( ) ( )2! 3!

x x x xg x g x g x x x g x g x

Taylor expansion about root

2 3

2 3

1

( ) ( ) ( )2! 3!

( ) ( ) ( )2! 3!

i ii i

i ii i

x x x xg x g x g x x x g x g x

x x x xx x g x x x g x g x

For xi

1ix x When close to convergence

•Dominant term will be 1st nonzero derivative

•Order of Convergence

Page 22: Chem 302 Lab Assignment

• One of most common methods

• Usually 2nd order convergence

• Generally superior to simple iteration

• Uses function and 1st derivative to predict root (assume f is linear)

Newton-Raphson Method

1 ( )

ii i i

i

f xx g x x

f x

( )if x f x x b

0 ( )

( )

( ) ( )

i

i i i

i i

f x f x x b

f x f x xbx

f x f x

Page 23: Chem 302 Lab Assignment

Newton-Raphson Method

2 3 2

( ) 2 3i i i

i i ii i

f x x xg x x x

f x x

2 3 2 1,2f x x x i xi f(xi) f'(xi)0 1.400000 -0.240000 -0.2000001 0.200000 1.440000 -2.6000002 0.753846 0.306746 -1.4923083 0.959397 0.042251 -1.0812054 0.998475 0.001527 -1.0030505 0.999998 0.000002 -1.0000056 1.000000 0.000000 -1.0000007 1.000000 0.000000 -1.0000008 1.000000 0.000000 -1.0000009 1.000000 0.000000 -1.000000

10 1.000000 0.000000 -1.000000

Page 24: Chem 302 Lab Assignment

Newton-Raphson Method

• Fairly robust• Need analytic expressions for f(x) and f'(x)

– May be complicated or not available

• Need to evaluate f(x) and f'(x) many times– Maximum efficiency

• f'(x) close to zero will cause problems– Especially important for multiple roots– Need to checks in program

• Value of f'(x)• Max iterations

Page 25: Chem 302 Lab Assignment

Newton-Raphson Method

• Test conditions

1 1i ix x

i maxiter

2if x

3if x

Convergence

Page 26: Chem 302 Lab Assignment

• NR but use numeric derivative

Secant Method

1

1

i ii

i i

f x f xf x

x x

11

1 1

1

( )i i

i i i i ii i i

i i i i

i i

f x f xg x x x x x

f x f x f x

x f x x f x

f x f x

• Need two points to start

Page 27: Chem 302 Lab Assignment

• Similar to Secant Method• Uses two points (one on each side of root) (need search)• Find where function would be zero if linear between two points• During each iteration one point is held fixed (pivot), other is

moved• More stable but slower than NR• If pivot far from root then slow• If pivot close to root then denominator can be small

False-Position Method

Page 28: Chem 302 Lab Assignment

• Algorithm– Pick xL & xR (xL < < xR)

– Evaluate

– Calculate

– Calculate

– If then xM is the root

– Replace xL or xR with xM (depends on sign of )

-130

-110

-90

-70

-50

-30

-10

10

30

50

2 2.5 3 3.5 4 4.5 5 5.5 6

x

f(x)

Lf x

False-Position Method

& L Rf x f x

x

L R R LM

R L

x f x x f xx

f x f x

Mf x

Mf x tol

Mf x

Rep

eat

xL xRxM

Mf x

Rf x

Page 29: Chem 302 Lab Assignment

x L f(x L ) x R f(x R ) X M f(x M )2.5 55.938 5.5 -112.813 3.4944 29.983

3.4944 29.983 5.5 -112.813 3.9155 3.97643.9155 3.9764 5.5 -112.813 3.9695 0.1833.9695 0.183 5.5 -112.813 3.972 0.00663.972 0.0066 5.5 -112.813 3.9721 0.0002

3.9721 0.0002 5.5 -112.813 3.9721 8E-063.9721 8E-06 5.5 -112.813 3.9721 3E-07

False-Position Method

Page 30: Chem 302 Lab Assignment

• Same as FP Method but xM is average of xL & xR

• Drawbacks of both FP & Bisection– Two initial guesses on opposite sides of root

• Multiple or close roots a problem

• f always same sign a problem

– Round-off error as xM gets close to root

• Secant, FP & Bisection methods do not require analtyic expression of f'(x)

Bisection Method

Page 31: Chem 302 Lab Assignment

• Want as efficient an algorithm as possible– Efficiency of operations

• +• *• /• Power

– Naive method (10 ×, 4 +)– Most efficient method for polynomial of order m requires m additions and m multiplications

– Nesting (Horner’s Method)

Roots of Polynomials

4 3 24 3 2 1 0 4 3 2 1 0f x a x a x a x a x a a x x x x a x x x a x x a x a

Page 32: Chem 302 Lab Assignment

• For polynomial of degree m

Horner’s Method

20 1 2

0

mm k

m kk

f x a a x a x a x a x

• Divide by (x-r)

210 1 2 0

1 2

mmm

m

f x a a x a x a x bb b x b x

x r x r x r

2 10 1 2 1 2 0

m mm mf x a a x a x a x x r b b x b x b

• b0 is f(r)

Page 33: Chem 302 Lab Assignment

Horner’s Method 2 1

0 1 2 1 2 0m m

m mf x a a x a x a x x r b b x b x b

2 2 10 1 2 1 2 1

11 2 0

m m mm m m

mm

f x a a x a x a x b x b x b x b x

rb rb x rb x b

2 10 1 1 2 2 3 1

m mm m mb rb x b rb x b rb x b rb b x

1 1

2 2 3

1 1 2

0 0 1

m m

m m m

b a

b a rb

b a rb

b a rb

b a rb f r

m ×, m +

1 1, 2, ,1,0m m

j j j

b a

b a rb j m m

Page 34: Chem 302 Lab Assignment

Horner’s Method 2 3 2f x x x

3

2 1 1

1 3 0

0 2 2

i i

f

i a b

1

2 1 1

1 3 4

0 2 6

i i

f

i a b

1

2 1 1

1 3 2

0 2 0

i i

f

i a b

1 is a root

Page 35: Chem 302 Lab Assignment

Horner’s Method 3 23 4f x x x

1

3 1 1

2 3 2

1 0 2

0 4 2

i i

f

i a b

2 is a root

2

3 1 1

2 3 1

1 0 2

0 4 0

i i

f

i a b

Page 36: Chem 302 Lab Assignment

• If b0 = 0 (i.e. r is a root)

Horner’s Method

• Have factored (x-r) from equation (i.e. reduced order, called deflating)

• Continue to find roots of reduced equation

11 1 2

mmf x b b x b x

2 10 1 2 1 2

m mm mf x a a x a x a x x r b b x b x

Page 37: Chem 302 Lab Assignment

Horner’s Method

2 3 2f x x x

1

2 1 1

1 3 2

0 2 0

i i

f

i a b

11 1 2

mmf x b b x b x

1 2f x x

2

3 1 1

2 3 1

1 0 2

0 4 0

i i

f

i a b

21 2f x x x

21 2f x x x

2

2 1 1

1 1 1

0 2 0

i i

f

i a b

2 is a root (i.e. a double

root of original equation)

2 1f x x

Page 38: Chem 302 Lab Assignment

Birge-Vieta Method• NR method with f(x) and f'(x) evaluated using Horner’s method

• Once a root is found, reduce order of polynomial 2 1

0 1 2 1 2 0 0m m

m mf x a a x a x a x x r b b x b x b x r h x b

1 1, 2, ,1,0m m

j j j

b a

b a rb j m m

f x h x x r h x

f r h r

1 21 2 2 3 1

m mm mh x b b x b x x r c c x c x c

1 1, 2, ,1m m

j j j

c b

c b rc j m m

0

1

f r b

f r h r c

Page 39: Chem 302 Lab Assignment

Birge-Vieta Method

0

1

f r b

f r h r c

1 ( )

ii i i

i

f xx g x x

f x

01

1i i i

bx g x x

c

1

1

0 0 1

1, 2, ,1

m m m

j j i j

j j i j

i

c b a

b a x b

c b x c j m m

b a x b

Page 40: Chem 302 Lab Assignment

Birge-Vieta Method 2 3 2f x x x

0 3

2 1 1 1

1 3 0 3

0 2 2

i i i

x

i a b c

01 0

1

2 73

3 3

bx x

c

1 7 / 3

2 1 1 1

1 3 0.667 1.667

0 2 0.444

i i i

x

i a b c

02 1

1

0.4442.333 2.067

1.667

bx x

c

2 2.067

2 1 1 1

1 3 0.933 1.133

0 2 0.071

i i i

x

i a b c

03 2

1

0.0712.067 2.004

1.133

bx x

c

Page 41: Chem 302 Lab Assignment

Birge-Vieta Method 4 3 29 2 120 130f x x x x x

Page 42: Chem 302 Lab Assignment

Birge-Vieta Method 4 3 29 2 120 130f x x x x x

3 21 12.6001 43.36219 36.1098f x x x x

Page 43: Chem 302 Lab Assignment

Birge-Vieta Method

22 11.3715 29.39123f x x x

3 21 12.6001 43.36219 36.1098f x x x x

Page 44: Chem 302 Lab Assignment

Example 3 211 39 45f x x x x

Page 45: Chem 302 Lab Assignment

Example

• NR 3 211 39 45f x x x x

23 22 39f x x x

3 2

1 2

11 39 45

3 22 39i i

x x xx x

x x

•x0 4.33 3

•x0 > 4.33 5

•Third root?

Try it!!!

Page 46: Chem 302 Lab Assignment

• BViteration xi

0 i ai bi ci 4.93 1 1 12 -11 -6.1 -1.21 39 9.11 3.230 -45 -0.361

1 i ai bi ci 5.01176473 1 1 12 -11 -5.988 -0.9761 39 8.988 4.0950 -45 0.048

2 i ai bi ci 5.0001363 1 1 12 -11 -6 -11 39 9 4.0010 -45 5E-04

3 i ai bi ci 53 1 1 12 -11 -6 -11 39 9 40 -45 7E-08

4 i ai bi ci 53 1 1 12 -11 -6 -11 39 9 40 -45 0

iteration xi0 i ai bi ci 4.9

2 1 1 11 -6 -1.1 3.80 9 3.61

1 i ai bi ci 3.952 1 1 11 -6 -2.05 1.90 9 0.902

2 i ai bi ci 3.4752 1 1 11 -6 -2.525 0.950 9 0.226

3 i ai bi ci 3.2382 1 1 11 -6 -2.763 0.4750 9 0.056

4 i ai bi ci 3.1192 1 1 11 -6 -2.881 0.2380 9 0.014

5 i ai bi ci 3.0592 1 1 11 -6 -2.941 0.1190 9 0.004

6 i ai bi ci 3.032 1 1 11 -6 -2.97 0.0590 9 9E-04

7 i ai bi ci 3.0152 1 1 11 -6 -2.985 0.030 9 2E-04

8 i ai bi ci 3.0072 1 1 11 -6 -2.993 0.0150 9 6E-05

9 i ai bi ci 3.0042 1 1 11 -6 -2.996 0.0070 9 1E-05

10 i ai bi ci 3.0022 1 1 11 -6 -2.998 0.004

6 i ai bi ci 3.032 1 1 11 -6 -2.97 0.0590 9 9E-04

7 i ai bi ci 3.0152 1 1 11 -6 -2.985 0.030 9 2E-04

8 i ai bi ci 3.0072 1 1 11 -6 -2.993 0.0150 9 6E-05

9 i ai bi ci 3.0042 1 1 11 -6 -2.996 0.0070 9 1E-05

10 i ai bi ci 3.0022 1 1 11 -6 -2.998 0.0040 9 3E-06

11 i ai bi ci 3.0012 1 1 11 -6 -2.999 0.0020 9 9E-07

12 i ai bi ci 32 1 1 11 -6 -3 9E-040 9 2E-07

3 211 39 45f x x x x

21 6 9f x x x 2 3f x x

Page 47: Chem 302 Lab Assignment

Roots of Polynomials

• What about complex roots?– Occur in pairs– Have form + i & – i– Roots of quadratic equation

f(x) = x2 – 2x + 2 + 2

• BV method – we removed factors of x – r.

• Quadratic can be solved analytically – therefore best to remove quadratic factors

Page 48: Chem 302 Lab Assignment

Lin-Bairstow Method

2 2 20 1 2 2 3 1 0

m mm mf x a a x a x a x x ux v b b x b x b x u b

2 22 3 1 0

2 3 2 12 3 2 1 1 0

2 3 2 12 3 4 1

2 3 22 3 3 3

2 30 1 2 1 2 3 2 3 4 3 4 5

2

mm

m m mm m m

m mm m

mm

m

x ux v b b x b x b x u b

b x b x b x b x b x b x u b

ub x ub x ub x ub x ub x

vb vb x vb x vb x vb x

b ub vb x b ub vb x b ub vb x b ub vb

x

12 1 1

m mm m m m m mb ub vb x b ub x b

1 1

1 2 2, 3, ,0

m m

m m m

j j j j

b a

b a ub

b a ub vb j m m

Page 49: Chem 302 Lab Assignment

Lin-Bairstow Method

1 1

1 1

1 2

1 2

0 0 1 2

0 3 1 21 2

2 1 3

1 1 0 21 2

2 1 3

2, 3, ,1

m m m

m m i m

m m i m

j j i j i j

j j i j i j

i i

i i

i i

c b a

b a u b

c b u c

b a u b v bj m m

c b u c v c

b a u b v b

b c b cu u

c c c

b c b cv v

c c c

• Iteration Scheme

2 4

2

u u vx

Page 50: Chem 302 Lab Assignment

Lin-Bairstow Method

• Algorithm– m > 3: determine quadratic roots, reduce order of problem by 2– m = 3: determine linear root then quadratic roots– m = 2: determine quadratic roots– m = 1: determine linear root

Page 51: Chem 302 Lab Assignment

1. // Lin Biarstow.cpp

2. #include "stdafx.h"3. #include <fstream>4. #include <conio.h>5. #include <stdio.h>6. #include <math.h>7. #include <stdlib.h>8. #include <string>9. #include <dos.h>10. #include <iostream>11. using namespace std;

12. int _tmain(int argc, _TCHAR* argv[])13. {14. double t=1e-8, *a, *b, *c,u,v,du,dv,r1,r2,ep,f,d;15. int n,i;16. FILE *logfile;

17. if((logfile=fopen("polynomial.txt","wt"))==NULL)18. {19. cout<<"Could not open log file.\n\nPress any key to exit.";20. getch();21. return EXIT_FAILURE;22. }

23. cout<<"Enter order of polynomial: ";24. cin>>n;25. fprintf(logfile,"Roots of the polynomial");

26. a=new double[n+1];27. b=new double[n+1];28. c=new double[n+1];

29. for(i=0;i<n+1;i++){30. cout<<"\nInput coefficient a["<<i<<"] ";31. cin>>a[i];32. }

33. fprintf(logfile,"\n%lf %+lfx",a[0],a[1]);34. for(i=2;i<n+1;i++)fprintf(logfile," %+lfx^%d",a[i],i);

35. cout<<"\n\nRoots of the polynomial are:\n";36. fprintf(logfile,"\n\nRoots are:\n");

37. while (a[n]==0){n--;}

38. // make sure n>339. while(n>3)40. {41. u=0;v=0;42. b[n]=c[n]=a[n];ep=1;43. while(ep>t){44. b[n-1]=a[n-1]+u*b[n];45. c[n-1]=b[n-1]+u*c[n];46. for(i=n-2;i>0;i--)47. {48. b[i]=a[i]+u*b[i+1]+v*b[i+2];49. c[i]=b[i]+u*c[i+1]+v*c[i+2];50. }

Page 52: Chem 302 Lab Assignment

26. b[0]=a[0]+u*b[1]+v*b[2];51. f=c[2]*c[2]-c[1]*c[3];52. if(f==0){du=dv=1;}53. else{du=(b[0]*c[3]-b[1]*c[2])/f;dv=(c[1]*b[1]-c[2]*b[0])/f;}

54. u+=du;55. v+=dv;56. ep=sqrt(du*du+dv*dv);57. }

58. d=u*u+4*v;59. if(d<0) //complex roots60. {61. r1=u/2;r2=sqrt(-d)/2;62. cout<<r1<<" + i"<<r2<<endl;63. cout<<r1<<" - i"<<r2<<endl;64. fprintf(logfile,"%lf + i%lf\n%lf - i%lf\n",r1,r2,r1,r2);65. }66. else // real roots67. {68. r1=u/2+sqrt(d)/2;69. r2=u/2-sqrt(d)/2;70. cout<<r1<<endl;71. cout<<r2<<endl;72. fprintf(logfile,"%lf\n%lf\n",r1,r2);73. }74. n-=2;75. for(i=0;i<n+1;i++)a[i]=b[i+2];76. }

77. if(n==3){78. u=0;79. b[n]=c[n]=a[n];ep=1;80. while(ep>t){81. for(i=n-1;i>0;i--)82. {83. b[i]=a[i]+u*b[i+1];84. c[i]=b[i]+u*c[i+1];85. }86. b[0]=a[0]+u*b[1];87. if(c[1]==0)du=1;88. else du=-b[0]/c[1];

89. u+=du;90. ep=sqrt(du*du);91. }92. cout<<u<<endl;93. fprintf(logfile,"%lf\n",u);94. n--;95. for(i=0;i<n+1;i++)a[i]=b[i+1];

96. }97. if(n==2){98. u=-a[1]/a[2];99. v=-a[0]/a[2];100. d=u*u+4*v;

Page 53: Chem 302 Lab Assignment

101. if(d<0) //complex roots102. {103. r1=u/2;r2=sqrt(-d)/2;104. cout<<r1<<" + i"<<r2<<endl;105. cout<<r1<<" - i"<<r2<<endl;106. fprintf(logfile,"%lf + i%lf\n%lf - i%lf\n",r1,r2,r1,r2);107. }108. else109. {110. r1=u/2+sqrt(d)/2;111. r2=u/2-sqrt(d)/2;112. cout<<r1<<endl;113. cout<<r2<<endl;114. fprintf(logfile,"%lf\n%lf\n",r1,r2);115. }

116. }117. else if(n==1){118. r1=-a[0]/a[1];119. cout<<r1<<endl;120. fprintf(logfile,"%lf\n",r1);

121. }

122. delete[] a;delete[] b; delete[] c;123. fclose(logfile);124. cout<<"\n\nFinished finding roots. Press any key to exit.";getch();125. return EXIT_SUCCESS;126. }

Page 54: Chem 302 Lab Assignment
Page 55: Chem 302 Lab Assignment

• Roots of the polynomial

• -130.000000 +120.000000x -2.000000x^2 -9.000000x^3 +1.000000x^4

• Roots are:

• 3.972068

• -3.600135

• 7.399477

• 1.228589