Title: ChE306: Heat and Mass Transfer
1 ChE 516 Numerical Methods in Chemical
Engineering Shuguang Deng Department of
Chemical Engineering New Mexico State
University Fall 2009
2Lecture 1. Introduction
- Course syllabus
- Suggested study method
- Methods for solving ChE problems
- MATLAB basics
- Numerical solution of nonlinear equations
3Introduction
- Welcome!
- Shuguang Deng
- Professor, Chem. Eng. Dept., NMSU
- Ph.D., Chem. Eng., 1996 (Univ. Cincinnati)
- 10 industrial experience
- Research adsorption, nanostructured materials,
fuel cells - 7th year at NMSU
4????????
Course Objectives
5Course Objectives
- To study numerical analysis methods and their
applications in chemical engineering - To solve chemical engineering problems with
numerical analysis techniques - To learn the basics of MATLAB and to write simple
MATLAB codes
6Course Topics
- Numerical solution of nonlinear equations
- Numerical solution of simultaneous linear
algebraic equations - Finite difference methods and interpolation
- Numerical differentiation and integration
- Numerical solution of ordinary differential
equations - Numerical solution of partial differential
equations
7Course Syllabus
- 24 lectures
- Exams 50
- Homework 20
- Project 20
- Quizzes 10
- A 90-100, B 80-90, C70-79, D 60-69
8Course Features
- A core course in ChE graduate program
- A mathematical subject in engineering
- Labeled as MATLAB ( ? ? )
- Suggested study method
- Review calculus, differential equations and other
ChE courses - Self-study MATAB
- Take class notes and practice examples in class
- Do your HWs independently
9Mathematical Models in Chem. Eng.
It is difficult to obtain analytical solutions
for many models used in chemical engineering,
numerical solutions are preferred in these cases.
Numerical analysis is a branch of mathematics, it
studies algorithms for the problems of continuous
mathematics.
Ordinary equation(s)
Partial differential equation(s)
10Common Software in ChE
Simulation software
Math Software
- PRO/II (SimSci)
- AspenPlus
- ChemCAD
- Flowtran
- Superpro Designer
- Fluent
- CHEMKIN
- Matlab
- Mathematica
- Mathcad
- Maple
- Staticstica
11A Typical ChE Problem
A long rod 40 mm in diameter, fabricated from
sapphire (aluminum oxide) and initially at a
uniform temperature of 800 K, is suddenly cooled
by a fluid at 300 K having a heat transfer
coefficient of 1600 W/m2 K. After 35 s, the rod
is wrapped in insulation and experiences no heat
losses. What will be the temperature of the rod
after a long period of time?
12Problem-Solving Process
13Problem-Solving Process
14Radial System with Convection
15Infinite Cylinder (L/r0 gt10)
i.c.
b.c.s
16Infinite Cylinder
Exact Solution
17Infinite Cylinder
Definition of Bessel functions (J0 J1) of the
first Kind
18Infinite Cylinder
Approximate Solution (Fogt0.2)
C1 and ?1 can be found in Table 5.1, page 274.
19Problem-Solving Process
20Problem-Solving Process
1. Define the problem. 2. Create a mathematical
model. 3. Develop an analytical or computational
method for solving the problem. 4. Implement
the computational method. 5. Test and assess the
solution.
Mathematics
Computer Programming
21MATLAB
MATrix LABoratory
A computer programming language developed to
perform numeral computations encountered in
science and engineering operations.
22MATLAB
MATLAB was invented by Prof. Moler of University
of New Mexico. It was originally written in
FORTRAN and improved by C.
MathWorks was established to promote MATLAB in
1984. MATLAB has become a very popular
computational software that is widely used in
mathematics, science and engineering.
23Why MATLAB ?
- Computers dominate the industrial workplace.
- The fundamental programming concepts learned
using MATLAB will enable you to adapt to other
programming environments. - You will be required to use MATLAB in this course
and future courses. - MATLAB is widely used in industry.
24MATLAB Resources
Etters, D.M., D.C. Kuncicky, Introduction to
MATLAB, Prentice-Hall. Appendix A of your
textbook
25MATLAB Resources
- Getting Started html document on
- Mathworks web site
- http/www.mathworks.com/access
- /helpdesk/help/helpdesk.shtml
- Click on Getting Started
- Click on This manual in PDF
- Open or save to disk
- Print
- Help from MATLAB program
- Course Webpage
- Practice and learn from each other
26MATLAB Basics
Please download getstart.pdf from the following
link http//www.mathworks.com/access/helpdesk/help
/pdf_doc/matlab/getstart.pdf Let lean the basics
of MATLAB from the a demo video
27Main Features of MATLAB
- Calculator
- Mathematic functions
- Vector, matrices operations
- Symbolic operations
- Programming
- Graphics
28MATLAB Basics
- Desktop Tools and Development Environment
- Matrices and Arrays
- MATLAB Functions
- M-files (Script and Function)
- Graphics
- Programming
29MATLAB Basics
Lets Practice MATLAB
30Chapter 1
Numerical Solution of Nonlinear Equations
31Needs for Solving Nonlinear Equations
Soave-Redlich-Kwong Equation (P-V-T)
32Needs for Solving Nonlinear Equations
Colebrook Equation
33Needs for Solving Nonlinear Equations
Differential Equation
34Types of Roots
- Real and distinct
- Real and repeat
- Complex conjugates
- A combination of any or all of the above
35Real and Distinct Roots
gtgt f'x46x37x2-6x-8' gtgt
fplot(f,-5,2) gtgt fv1 6 7 -6 -8 gtgt f1
roots(fv) f1 -4.0000 1.0000 -2.0000
-1.0000
36Real and Repeated Roots
gtgt g'x47x312x2-4x-16' gtgt
fplot(g,-5,2) gtgt gv 1 7 12 -4 -16 gtgt g1
roots(gv) g1 -4.0000 1.0000
-2.0000 0.0000i -2.0000 - 0.0000i
37Complex Conjugates
gtgt h'x4-6x318x2-30x25' gtgt
fplot(h,0,3) gtgt hv 1 -6 18 -30 25 gtgt h1
roots(hv) h1 1.0000 2.0000i 1.0000 -
2.0000i 2.0000 1.0000i 2.0000 - 1.0000i
38Combination of types
gtgt j'x4x3-5x223x-20' gtgt
fplot(j,-5,2) gtgt jv 1 1 -5 23 -20 gtgt j1
roots(jv) j1 -4.0000 1.0000
2.0000i 1.0000 - 2.0000i 1.0000
Real and complex conjugates
39Verify roots of nth degree polynomial
- Newton's first relation
- Newton's second relation
- Newton's third relation
- Newton's nth relation
where i ? j ? k ? for all relationships
40Descartes' rule of sign
- Described by René Descartes in La Geometrie, the
rule of sign" is a technique for determining the
number of positive or negative roots of a
polynomial. The rule states if the terms of a
single-variable polynomial with real coefficients
are ordered by descending variable exponent, then
the number of positive roots of the polynomial is
either equal to the number of sign differences
between consecutive nonzero coefficients, or less
than it by a multiple of 2. Multiple roots of the
same value are counted separately. - As a corollary of the rule, the number of
negative roots is the number of sign changes
after negating the coefficients of odd-power
terms (otherwise seen as substituting the
negation of the variable for the variable
itself), or less than it by a multiple of 2.
41Descartes' rule of sign
- As an example, consider the polynomial
- x3 x2 x - 1
- Which has one sign change between the second and
third terms. Therefore it has exactly 1 positive
root. - Negating the odd-power terms gives
- -x3 x2 x - 1, this polynomial has two sign
changes, so the original polynomial has 2 or 0
negative roots. - The polynomial factors easily as
- ( x 1 )2 ( x 1 )
- so the roots are -1 (twice) and 1.
42Roots Finding Techniques
General approach to devise iterative algorithms
that start at an initial estimate of a root and
converge to the exact value of the desired root
in a finite number of steps. Main methods
Fixed point iteration (Successive substitution,
Wegstein method) Linear interpolation
(Method of false position, BISECTION, SECANT)
Newton-Raphson, MATLAB functions fzero, roots,
solve
43MATLAB Functions
MATLAB functions fzero, roots, solve fzero
(fun, a,b), f(a)f(b)lt0 fzero(_at_fun,
x0) fzero(fun, x0) roots is a built-in
MATLAB function for solving linear algebraic
equations. You need to define the coefficient
matrix P first, then rootsP to find the
roots. solve is another built-in MATLAB
function for getting symbolic solution of
algebraic equations.
441. Bisection Iteration
We assume we are given a function f (x) and in
addition, we assume we have an interval a, b
containing the root, on which the function is
continuous. We also assume we are given an error
tolerance e gt 0, and we want an approximate root
x in a, b for which x - x e. (x is
the real root) We further assume the function f
(x) changes sign on a, b, with f (a)f (b) lt 0
451. Bisection Iteration
Algorithm Bisect(f, a, b, e). Step 1 Define c
1/2 (a b) Step 2 If b - c e, accept c as
our root, and then stop. Step 3 If b - c gt e,
then check compare the sign of f (c) to that of f
(a) and f (b). If sign(f (b)) sign(f (c))
0 then replace a with c and otherwise, replace b
with c. Return to Step 1.
461. Bisection Iteration
Denote the initial interval by a1, b1, and
denote each successive interval by aj, bj. Let
cj denote the center of aj, bj. Then Since
each interval decreases by half from the
preceding one, we have by induction,
472. Fixed Point Iteration
f(x)0, x g(x), xn1 g(xn)
Convergence
Divergence
482. Fixed Point Iteration
- x g(x)
- select initial value x1
- evaluate x2 g(x1)
- iterate as xn1 g(xn)
- convergence occurs if x3 x2 lt x2 x1
- continue until a specified tolerance is met
492. Fixed Point Iteration
function y fss1(x) y sqrt(2x) gtgt
x00.1 gtgt y0fss1(x0) y0 0.4472 gtgt x1 y0 gtgt
y1fss1(x1) gtgt y1fss1(x1) y1 0.9457 gtgt x2
y1 gtgt y2fss1(x2) y2 1.3753 gtgt x3 y2 gtgt x3
y2 x3 1.3753 gtgt y3fss1(x3) y3 1.6585
gtgt x4 y3 gtgt y4fss1(x4) y4 1.8213 gtgt x5
y4 gtgt y5fss1(x5) y5 1.9085 gtgt x6 y5 gtgt
y6fss1(x6) y6 1.9537 gtgt x7 y6 gtgt
y7fss1(x7) y7 1.9767 gtgt x8 y7 gtgt
y8fss1(x8) y8 1.9883 gtgt x9 y8 gtgt
y9fss1(x9) y9 1.9942
502. Fixed Point Iteration
function y fss1(x) y x.2x./2 gtgt
x(1)1.95 gtgt y(1)fss1(x(1)) gtgt x(2)y(1) gtgt
y(2)fss1(x(2)) gtgt x(3)y(2) gtgt
y(3)fss1(x(3)) gtgt x(4)y(3) gtgt
y(4)fss1(x(4)) gtgt x(5)y(4) gtgt
y(5)fss1(x(5)) gtgt x(6)y(5) gtgt
y(6)fss1(x(6)) gtgt x(7)y(6) gtgt
y(7)fss1(x(7)) ...etc
513. The Wegstein Method
xg(x)
523. Wegstein Method
- x g(x)
- select initial value x1, evaluate x2 g(x1)
- estimate function g(x) by line passing through
points (x1, g(x1)) and (x2, g(x2)) - next estimation found by intersection of this
line and the y x line
534.1 Newton-Raphson Method
Given an estimate of a, say a x0, approximate f
(x) by its linear Taylor polynomial at (x0, f
(x0)) p(x) f (x0) (x - x0) f(x0) If x0 is
very close to a, then the root of p(x) should be
close to a. Denote this approximating root by x1
repeat the process to further improve our
estimate of a.
544.1 Newton-Raphson Method
For a general equation f (x) 0, we assume we
are given an initial estimate x0 of the root x
or a. The iterates are generated by the formula
554.2 Newton Raphson 2nd Order Method
- Increased accuracy obtained by retaining
additional term in Taylor Series expansion - quadratic in ?x1, of general solution
564.2 Newton Raphson 2nd Order Method
- Choice between solutions x and x- determined by
which one results in the function f(x) or f(x-)
being closer to the zero value
574.2 Newton Raphson 2nd Order Method
- One may also treat the original Taylor Series
expansion as another nonlinear equation in ?x and
apply Newton-Raphson for its solution
585. The SECANT Method
595. The SECANT Method
60Example 1
- Practice the example in class
- Try to understand the command in each line
- Three different methods XGX.m, LI.m and NR.m
- Discussion of results
61Example 1
62Example 2
Example1_2.m This program solves the problem
posed in Example 1.2. It calculates the real
gas specific volume from the SRK equation of
state using the Newton-Raphson method for
calculating the roots of a polynomial.
clear clc clf Input data P input(' Input
the vector of pressure range (Pa) ') T
input(' Input temperature (K) ') R 8314
Gas constant (J/kmol.K) Tc input(' Critical
temperature (K) ') Pc input(' Critical
pressure (Pa) ') omega input(' Acentric
factor ')
63Example 2
Constants of Soave-Redlich-Kwong equation of
state a 0.4278 R2 Tc2 / Pc b 0.0867
R Tc / Pc sc -0.15613, 1.55171, 0.48508 s
polyval(sc,omega) alpha (1 s (1 -
sqrt(T/Tc)))2 A a alpha P / (R2
T2) B b P / (R T) for k 1length(P)
Defining the polynomial coefficients coef
1, -1, A(k)-B(k)-B(k)2, -A(k)B(k)
v0(k) R T / P(k) Ideal gas specific
volume vol(k) NRpoly(coef , 1) R T /
P(k) Finding the root end
64Example 2
Show numerical results fprintf('\nRESULTS\n')
fprintf('Pres. 5.2f Ideal gas vol.
7.4f',P(1),v0(1)) fprintf(' Real gas vol.
7.4f\n',vol(1)) for k1010length(P)
fprintf('Pres. 5.2f Ideal gas vol.
7.4f',P(k),v0(k)) fprintf(' Real gas vol.
7.4f\n',vol(k)) end plotting the
results loglog(P/1000,v0,'.',P/1000,vol) xlabel('P
ressure, kPa') ylabel('Specific Volume,
m3/kmol') legend('Ideal','SRK')
65Example 2
function x NRpoly(c,x0,tol,trace) NRPOLY Finds
a root of polynomial by the Newton-Raphson
method. NRPOLY(C,X0) computes a root of the
polynomial whose coefficients are the
elements of the vector C. If C has N1
components, the polynomial is C(1)XN ...
C(N)X C(N1). X0 is a starting point.
NRPOLY(C,X0,TOL,TRACE) uses tolerance TOL
for convergence test. TRACE1 shows the
calculation steps numerically and TRACE2
shows the calculation steps both numerically
and graphically. See also ROOTS,
NRsdivision, NR
66Example 2
(c) N. Mostoufi A. Constantinides January
1, 1999 Initialization if nargin lt 3
isempty(tol) tol 1e-6 end if nargin lt 4
isempty(trace) trace 0 end if tol 0
tol 1e-6 end if (length(x0) gt 1)
(isfinite(x0)) error('Second argument must be
a finite scalar.') end
67Example 2
iter 0 fnk polyval(c,x0) Function if
trace header ' Iteration x
f(x)' disp(header) disp(sprintf('5.0f
13.6g 13.6g ',iter, x0 fnk)) if trace
2 xpath x0 x0 ypath 0 fnk
end end x x0 x0 x .1 maxiter 100
68Example 2
Solving the polynomial by Newton-Raphson
method while abs(x0 - x) gt tol iter lt maxiter
iter iter 1 x0 x fnkp
polyval(polyder(c),x0) Derivative if fnkp
0 x x0 - fnk / fnkp Next
approximation else x x0 .01 end
69Example 2
fnk polyval(c,x) Function Show the
results of calculation if trace
disp(sprintf('5.0f 13.6g 13.6g ',iter, x
fnk)) if trace 2 xpath
xpath x x ypath ypath 0 fnk
end end end
70Example 2
if trace 2 Plot the function and path to
the root xmin min(xpath) xmax
max(xpath) dx xmax - xmin xi xmin -
dx/10 xf xmax dx/10 yc for
xc xi (xf - xi)/99 xf ycyc
polyval(c,xc) end
71Example 2
xc linspace(xi,xf,100) ax
linspace(0,0,100) plot(xc,yc,xpath,ypath,xc,ax
,xpath(1),ypath(2),'',x,fnk,'o') axis(xi xf
min(yc) max(yc)) xlabel('x')
ylabel('f(x)') title('Newton-Raphson The
function and path to the root ( initial guess
o root)') end if iter maxiter
disp('Warning Maximum iterations reached.') end
72Synthetic Division Algorithm
Coefficients in the above two equations can be
related and used for solving bi.
73Synthetic Division Algorithm
- Method for removing each real root from an
nth-order polynomial, thereby reducing the
polynomial to degree (n-1). - Each successive application reduces polynomial by
one more degree. - Subsequent algorithm by Lapidus.
74Synthetic Division Algorithm
- Consider the fourth-order polynomial
- With x identified to be a root of f(x), the root
can be factored from the polynomial
75Synthetic Division Algorithm
- To determine the coefficients (bi) of the
third-degree polynomial, multiply out and group
in descending powers of x
76Synthetic Division Algorithm
- Equate coefficients of like powers of x in the
two polynomials forms (original and
factored/expanded), solve for bi
77Synthetic Division Algorithm
- Or, in general
- where r 1, 2, , (n-1)
- Whereby the polynomial is reduced one degree to
each jth iteration
78The Eigenvalue Method
Eigenvalues are a special set of scalars
associated with a linear system of equations
(i.e., a matrix equation) that are sometimes
also known as characteristic roots,
characteristic values, proper values, or latent
roots. Root-finding methods discussed so far are
not efficient for finding eigenvalues.
79The Eigenvalue Method
- A square matrix has a characteristic polynomial
whose roots are called eigenvalues of the matrix.
- Consider the characteristic polynomial
- for which we define the n?n companion matrix A
which contains the coefficients of the original
polynomial
80The Eigenvalue Method
81The Eigenvalue Method
MATLAB has its own function, roots.m, for
calculating all roots of a polynomial equation in
the above equation. It first converts the
polynomial to the companion matrix A shown above.
It then uses the built-in function eig.m to
calcualte the eigenvalues of the matrix A, which
are also the roots of the polynomial equation.
82Newtons Method for Simultaneous Nonlinear
Equations
f1(x1, x2)0, f2(x1, x2)0
83Newtons Method for Simultaneous Nonlinear
Equations
84Newtons Method for Simultaneous Nonlinear
Equations
85Newtons Method for Simultaneous Nonlinear
Equations
86Newtons Method for Simultaneous Nonlinear
Equations
f1(x1, xk)0 .. fk(x1, . xk)0
J d -f
87Newtons Method for Simultaneous Nonlinear
Equations
J is the Jacobian matrix, d is the correction
vector, and f is the vector functions.
Strongly nonlinear equations likely to diverge,
therefore relaxation is used to stabilize the
iterative process (? typically 0.5)
88Example 3
Example on synthetic division or eigenvalue
methods.
89Example 4
Example on solution of two equations using
Newtons method.
90Problem 1.6
Carbon monoxide from a water gas plant is burned
with air in an adiabatic reactor. Both the
carbon monoxide and air are being fed to the
reactor at 25?C and atmospheric pressure. For
the reaction CO ½O2 ? CO2 the following
standard free energy and enthalpy changes have
been determined ?G?To -257 kJ/(gmol CO)
?H?To -283 kJ/(gmol CO) The standard states
for all components are pure gases at 1 atm
pressure. Calculate the adiabatic flame
temperature and the conversion of CO for the
following cases (a) 0.4 mole O2 per mole CO
(b) 0.8 mole O2 per mole CO
91Problem 1.6
The solution of this problem is described in
standard thermodynamic texts under the title
"adiabatic flame temperature. Base all
calculations on one gmole of CO in the feed
gases. Let no represent the number of moles of
O2 per mole of CO in the feed gases. Then the
number of moles of the various constitutents of
the feed and product gases are as follows
92Problem 1.6
For an adiabatic reaction, the reacting system
exchanges no heat with the surroundings. The
enthalpy change for the overall process
(Hproducts Hreactants) must therefore equal
zero. The process can be viewed as taking place
in two stages (1) reaction of the entering gases
at the inlet temperature T, and (2) elevation of
the temperature of the product stream from
reaction temperature Tr to the final adiabatic
flame temperature, T.
93Problem 1.6
The enthalpy change of reaction ?HR at Tr per
mole of CO in the feed at conversion fraction z
is given by The enthaply change for the
products ?Hp between temperature Tr and T is
given by
ni is the number of moles of the ith component
gas in the product mixture
94Problem 1.6
The heat capacity is given by Combine
with energy balance
95Problem 1.6
A pressure-based equilibrium constant can be
defined as At equilibrium, total moles of
gas is Therefore, mole fractions are
96Problem 1.6
Substitute mole fractions in KP The
thermodynamic equilibrium constant is
97Problem 1.6
The quantity ?GT?/T can be evaluated for any
temperature if it's value at To is known, by
integrating the thermodynamic relationship
Integrate both sides
98Problem 1.6
Substituting known numerical values
99Problem 1.6
Rewrite with constant of integration, C1
where C1 is given by Substitute into
where
100Problem 1.6
One may now evaluate ?GT? As such, it is
not possible to evaluate the thermodynamic
equilibrium constant Ka at any value of T
101Problem 1.6
For each constituent a f/fo, where a is the
thermodynamic activity, f is the fugacity of the
component, and fo is the fugacity of the
component in the standard state
102Problem 1.6
Ka and Kp must be identical, such that
coupled with energy balance from earlier
103Problem 1.6
Note that once values for parameters T0, Tr,
?H0Tr , ?G0T0, P and n0 have been supplied, the
above two equations contain only two unknowns z
and T. The problem then is to solve this set of
two simultaneous equations for z and T, given the
following values from the problem statement
T0 Tr298.15 K (25 C) ?H0T -283000J/gmol
CO ?G0T -257000J/gmol CO
n0 , the O2/CO ratio, and P are variables but
they assume fixed values for a solution.
104Problem 1.6
Newtons method for simultaneous nonlinear
algebraic equations is used for the solution of
the two equations. The MATLAB function Newton.m
(developed in Example 1.4) can be used for the
solution of this problem. Program Probl_6.m is
used to get the input from the keyboard and
display the results. The set of equations to be
solved are also introduced in the MATLAB function
P1_6func.m.
105Problem 1.6
Probl_6.m Probl6.m This program solves
Problem 1.6 using Newton.m. clear clc fnazne
input( Name of the function containing the set
of equations ) disp( ) repeat 1 while
repeat Initial data nO input( Ratio of
moles of 02 to moles of CO zO input(
Initial guess of conversion (z) TO input(
Initial guess of flame temperature (K) 1 end
Solution x, m Newton(fname, zO, TO), ,
, nO) disp( ) fprintf( z 5.4f \n,x(l))
fprintf( T 5.lf K\n,x(2)) fprintf(
Solution reached after 2d iterations.\n,m)
disp( 9 repeat input( Do you want to try
again (0/1)? ) disp( )
106Problem 1.6
function f P1_6_func(x, n0) z x(1)
Conversion T x(2) Temperature (K) R 8.314
Gas constant CJ/gmol.K) P 1 Pressure
(atm) dGo -257e3 dHo -283e3 To
25273.15 C1 dHo10.32To-10.355e-3To22.29
2e-6To3 C2 -C1/To-10.32log(To)10.355e-3To-
1.146e-6To2 C3 C2dGo/To dGoT
C1/T10.32log(T)-10.355e-3T1.146e-6T2C3
a 26.16(T-To)8.75e-3(T2-To2)/2-1.92e-6(T
3-To3)/3 b 25.66(T-To)12.52e-3(T2-To2)/2-
3.37e-6(T3-To3)/3 c 28.67(T-To)35.72e-3(T
2-To2)/2-10.39e-6(T3-To3)/3 d
26.37(T-To)7.61e-3(T2-To2)/2-1.44e-6(T3-To
3)/3 f(1) z/(1-z)sqrt((1-z/2100/21n0)/((n0
-z/2)P))-exp(-dGoT/R) f(2) zdHo(1-z)a(n0-z
/2)bzc79/21n0d f f' It has to be a
column vector.
107Problem 1.6
Input and Results gtgt Probl_6 Name of the
function containing the set of equations
P1_6_funcRatio of moles of O2 to moles of CO
0.4 Initial guess of conversion (z) 0.7
Initial guess of f lame temperature (K) 2000 z
0.7577 T 2433.8 K Solution reached after 9
iterations Do you want to try again (0/1)? 1
Ratio of moles of O2 to moles of CO 0.8
Initial guess of conversion (z) 0.99 Initial
guess of flame temperature (K) 2000 z 0.9901
T 2017.6 K Solution reached after 6
iterations. Do you want to try again (0/1)? 0