how to display pdf file in c# : Copy highlighted text from pdf application software tool html windows azure online Excel36-part208

which should be a close approximation as long as the increment ∆tis suffi-
ciently small, a constraint we will define more precisely below. We therefore
rewrite (9.2-2) as
∆a/∆t=-ka
(9.2-6)
so that
∆a=-k a ∆t
(9.2-7)
a
1
=a
0
+∆a=a
0
-k a
∆t=a
(1-k ∆t) 
at t=∆t
(9.2-8)
a
2
=a
-k a
∆t=a
(1-k ∆t)=a
(1-k ∆t)
2
at t=2 ∆t
(9.2-9)
a
n
=a
n–1 
-k a
n–1 
∆t=a
n–1 
(1-k ∆t)=a
(1-k ∆t)
n
at t=n ∆t
(9.2-10)
In other words, we start with a=a
0
at t=0, which sets the initial condi-
tion. We calculate a
1
=a
0
+∆a=a
0
-k a
∆t=a
(1-k ∆t) at t=∆t, then con-
tinue by computing a
2
=a
1
+∆a=a
(1-k ∆t) at t=2 ∆t, and so on, thereby
simulating the entire time course of the concentration a, step-by-step, one
interval ∆tat a time, simply by multiplying the preceding concentration by
(1-k ∆t). This is the so-called explicit or Euler method.
Instructions for exercise 9.2.1
Open a new spreadsheet.
Reserve the top 8 rows for thumbnail sketches.
In cell A10 place the label a0=, in C10 place the label k=, and in E10 the label ∆t=. To
make a ∆, type a D, highlight it, and select the Symbol font.
In cells B10, D10, and F10 enter numerical values for a
0
, k, and the time increment ∆t,
such as 1, 1, and 0.1 respectively.
In row 12 deposit the labels time, a simul, a exact, and diff.
In column A compute time from 0 to 10 with increments ∆t.
In B14 place the value of a
0
as=$B$10.
In B15 calculate the next value of a
1
according to (9.2-8) as=B14*(1–$D$10*$F$10),
and copy this down the entire column (i.e., to the same length as column A).
In column C, starting with C14, calculate aaccording to (9.2-3).
10 In column D compute the difference a
exact
-a
simul
.
11 In A1:C8 plot a
simul
and a
exact
versus time t, and in D1:F8 display a plot of diff=a
exact
-
a
simul
versus t.
12 The top of your spreadsheet might now look like Fig. 9.2-1.
9.2 The explicit method
347
Copy highlighted text from pdf - extract text content from PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Feel Free to Extract Text from PDF Page, Page Region or the Whole PDF File
export highlighted text from pdf to word; delete text from pdf acrobat
Copy highlighted text from pdf - VB.NET PDF Text Extract Library: extract text content from PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
How to Extract Text from PDF with VB.NET Sample Codes in .NET Application
copy and paste text from pdf; extract text from pdf java open source
9.2b
Numerical accuracy 
How good is this simulation? Since we have the exact result available, a com-
parison would appear to be straightforward. The difference between a
exact
and a
simul
follows from the series expansions of (9.2-3) and (9.2-10). We have
a
exact
=a
0
e–kt=a
0
{1-(k n ∆t)+(k n ∆t)2/2-(k n ∆t)3/6+(k n ∆t)4/24-
}
a
simul
=a
0
(1-k ∆t)
n
=a
0
{1-n(k ∆t)+(k ∆t)
2
n(n-1)/2
-(k ∆t)3n(n-1)(n-2)/6+(k ∆t)4n(n-1)(n-2)(n-3)/24-
}
so that
a
exact
-a
simul
=a
0
{ (k ∆t)2n/2-(k ∆t)3n(3n-2)/6+
}
(9.2-11)
which suggests that, as long as k ∆t« 1, the error is of the order of (k ∆t)
2
.
However, this is a misleading result, because the above comparison is made
at a fixed value of n. When we change ∆tat a given k, we must also change the
value of nin order to cover the same total time interval 
. In other words, the
product n×∆t=
should remain constant. We therefore write
a
simul
=a
0
(1-k ∆t)
n
=a
0
(1-k
/n)
n
=a
0
{1-n(k
/n)+(k
/n)2n(n-1)/2-(k
/n)3n(n-1)(n-2)/6
+(k
/n)
4
n(n-1)(n-2)(n-3)/24-}
=a
0
{1-(k
)+(k
)2/2-(k
)3/6+(k
)4/24-
-(1/n) [(k
)
2
/2-(k
)
3
/2+(k
)
4
/4-]
-(1/n
2
) [(k
)
3
/3-11(k
)
4
/24+]-(1/n
3
) [(k
)
4
/4-]-}
348
Numerical simulation of chemical kinetics
Fig.9.2-1:The top of the spreadsheet for exercise 9.2-1.
C# PDF Text Highlight Library: add, delete, update PDF text
etc. Able to remove highlighted text in PDF document in C#.NET. Support to change PDF highlight color in Visual C# .NET class. Able
copy paste text pdf; c# extract pdf text
C# PDF Convert to Text SDK: Convert PDF to txt files in C#.net
Text in any fonts, colors and sizes, or highlighted characters are easy to be converted to plain text. Text can be extracted from scanned PDF image with OCR
copy text from pdf online; c# get text from pdf
=a
0
e
–kt
-(a
0
/n) [(k
)
2
/2-(k
)
3
/2+(k
)
4
/4-]
-(a
0
/n
2
) [(k
)
3
/3-11(k
)
4
/24+]
-(a
0
/n3) [(k
)4/4-
]-
so that
a
exact
-a
simul
=(a
0
/n) [(k
)2/2-(k
)3/2+(k
)4/4-
]
+(a
0
/n
2
) [(k
)
3
/3-11(k
)
4
/24+]
+(a
0
/n
3
) [(k
)
4
/4-]+
=(a
∆t/
) [(k
)2/2-(k
)3/2+(k
)4/4-
]
+(a
0
∆t
2
/
2
) [(k
)
3
/3-11(k
)
4
/24+]
+(a
0
∆t
3
/
3
) [(k
)
4
/4-]+
(9.2-12)
which has a leading term in ∆trather than in (∆t)
2
.
We now return to the deferred question: how small is small enough for the
time increments ∆t? We find the answer in the series expansion: the relevant
combination is always (k ∆t), in other words, ∆tscales as 1/k. As we have just
seen, increments of 1/(10 k) yield errors of the order of a few percent. To be
more precise, for k∆t=0.1, the maximum error of almost 0.02 a
0
occurs at
kn ∆t≈1, where a≈0.36 a
0
, so that the maximum relative error is about 6%.
This may be good enough for many practical purposes.
If we need a more accurate result, we must use smaller increments ∆t. In
order to reduce the relative error by a factor f, ∆tmust be reduced by the
same factor, which implies that we must simulate ftimes as many data. That
approach, readily implemented in higher-level languages, unfortunately is
rather limited on a spreadsheet, because the use of long columns is not only
unwieldy but also slows down the computation. Moreover, Excel cannot plot
very large data arrays.
Fortunately there is a simple solution, at least in the present example. It is
clear that we need more resolution in the computation, but not necessarily
in the plots. Equation (9.2-10) suggests how we can leapfrog the computa-
tion, by computing only the n
th
terms. By replacing the instruction for
a
1
=a
0
(1-k∆t) by, say, a
10
=a
0
(1-k∆t/10)
10
, that for a
2
=a
0
(1-k∆t)
2
by
a
20
=a
0
(1-k∆t/10)20, etc., we achieve the same computational result as we
would have obtained by lengthening the column by a factor of 10 but plot-
ting only data from every tenth row, because we effectively compute aat
each step ∆t=0.1 as if we were using ten steps of size 0.01.
Similarly, replacing a
1
by a
1000
=a
0
(1-k∆t/1000)
1000
, a
2
by a
2000
=a
0
(1-k∆t/1000)
2000
=a
1000
(1-k∆t/1000)
1000
, and so on, will simulate the
effect of a step size ∆t/1000 but without increasing the actual column
length.
9.2 The explicit method
349
VB.NET PDF Convert to Text SDK: Convert PDF to txt files in vb.net
Plain text can get from any fonts, colors and sizes, or highlighted characters. Text extraction from scanned PDF image with OCR component in VB.NET.
.net extract pdf text; copying text from pdf to word
XDoc.HTML5 Viewer for .NET, All Mature Features Introductions
To help users quickly locate what you are looking for, all results will be highlighted with specific color. Annotate. Text Select, Copy & Paste.
extract formatted text from pdf; extract text from pdf image
13 Make two new columns, one each for a simul and diff.
14 In the new column for a simul calculate a
1
as a
0
(1-k∆t/10)
10
, a
2
as a
1
(1-k∆t/10)
10
,
etc.
15 In the new column labeled diff, calculate the difference between a
exact
and the newly
calculated a
simul
.
16 Plot the difference, and compare it with the values in column D.
17 Repeat the above using for a
1
the relation a
0
(1-k∆t/1000)
1000
, for a
2
the expression a
1
(1-k∆t/1000)
1000
, and so on. Incidentally, you need not worry about such large
powers: they will not slow down the computer, because it uses logarithms to calculate
the results.
18 Again compute and plot the difference a
exact
-a
simul
.
19 Your results might look like those in Fig. 9.2-2.
The above example shows that we can use the explicit method to simulate
the kinetic transient to any required accuracy by selecting small enough
time increments.
9.2c
Dimerization kinetics 
Next we consider some simple higher-order kinetic schemes, specifically
the second- and third-order unidirectional reactions 2A → and 3A → for
which, again, closed-form solutions are available to validate our approach.
(Since we omit any back reactions, we need not specify the products.) First
we consider the unidirectional dimerization reaction
A+A
k
(9.2-13)
with the corresponding rate equation
350
Numerical simulation of chemical kinetics
Fig.9.2-2:By combining the effect of ten (left) or one thousand (right) iteration steps in
each row, the computational error can be reduced tenfold or one-thousand-fold respec-
tively. In the latter case, experimental errors will most likely exceed any simulation
errors.
da/dt=-ka
2
(9.2-14)
Proceeding as in (9.2-5) through (9.2-10), the explicit method now yields
∆a / ∆t=-k a
2
(9.2-15)
a
1
=a
0
+∆a=a
-a
0
2k ∆t=a
(1-a
k ∆t)
(9.2-16)
a
2
=a
(1-a
k ∆t)
(9.2-17)
a
n
=a
n–1 
(1-k a
n–1 
∆t)
(9.2-18)
20 Expand the spreadsheet, or open a new, similarly organized one.
21 Compute a
simul
with the recursive formula a
n
=a
n–1 
(1-k a
n–1 
∆t).
22 For a
exact
use a(t)=a
/ (1+k a
0
t).
23 Plot the simulated concentration a
simul
and the exact result a
exact
vs. time t.
24 Also plot the algorithmic error diff=a
exact
-a
simul
against time t.
9.2d
A user-defined function to make the spreadsheet more e÷cient 
In the above example, we do not have an explicit expression for a
n
in terms of
a
0
as in (9.2-10) but, rather, a recursion formula, (9.2-18). Therefore we
cannot use the convenient trick that led to the improved numerical accuracy
in Fig. 9.2-2. If a higher accuracy is needed, we can (1) use smaller time
increments ∆tand correspondingly extend the column length, (2) perform
the computation off-screen, or (3) look for a more efficient algorithm. In
section 9.3 we will explore the third option, the use of a more efficient algo-
rithm. Here we will briefly consider the second option, in which we use a so-
called user-defined functionto do our bidding.
What is needed is a function that will take several arguments, in our case
the values of a, k, and ∆t, apply (9.2-18) n times (where n is a positive
integer), and then deposit the result. We therefore create a function to do
this; unfortunately, some of the mechanics of entering such a function are
different (and slightly more complicated) for Excel 97 and subsequent ver-
sions. Below we will describe the two different methods separately. Note that
only the method to enter and store the function is different; but that this
affects neither the function itself nor its operation. Also notice that these are
the same instructions as needed for creating a macro, as described in the
next chapter.
If you use either Excel 5 or Excel 95, use the following steps. With the
spreadsheet open, select I
nsert →M
acro →M
odule. The monitor screen will
now show an empty sheet, on which you can now type the function. When
you are done typing, click on the tab for the spreadsheet and, bingo, you are
9.2 The explicit method
351
back in the spreadsheet. From now on you can go back and forth between
the spreadsheet and the function by clicking on the appropriate tab. You
need this only when you want to modify the function, or add another.
If you use Excel 97, 98, or 2000, with the spreadsheet open, type Alt+F11
or select T
ools →M
acro →V
isual Basic Editor. Then, select I
nsert →M
odule.
The monitor screen will now show an empty sheet, on which you can now
type the function. When you are done typing, type Alt+F11 to get back to
the spreadsheet. From then on, whenever you need to do so, you can go back
and forth between the spreadsheet and the function with Alt+F11.
On the blank module sheet, type the text of the function:
Function Smallstep(a, k, delt, n)
For i = 1 To n
a = a * (1 - a * k * delt / n)
Next i
Smallstep = a
End Function
Before we use it, we will first explain the working of this function, line by
line. The first line defines the function by its name, Smallstep, and spec-
ifies what input data the function requires. The last line specifies the end of
the function. In between, the value of ais recomputed ntimes, using a For …
next loop in lines 2 through 4, and the result is specified in line 5. These
instructions are written in Visual BASIC, the language that Excel uses for its
functions and macros. (Visual BASIC is a modern form of compiled BASIC,
with additions to make it suitable for spreadsheet use. Section 10.12 will
review some features of Visual BASIC.)
Note that the third line of the function is equivalent to (9.2-18) except that
∆thas been replaced by ∆t/n, which is then repeated ntimes in the For …
next loop. And if you wonder where the labels nand n–1 on ahave gone, the
equal sign in BASIC actually means an assignment, i.e., the computer first
evaluates the value of a*(1-a*k*delt/n), then assigns that value to the
variable aon the left-hand side of the equal sign.
Now that we have defined this function, how do we use it? Just like any
other function, such as SIN or LOG. For the sake of this example, let us
assume that the calculation of aon the spreadsheet is performed in column
E, starting with cell E14. Furthermore we will assume that rows 1 through 8
have been reserved for graphs, that cells A10, C10, and E10 contain labels for
a
0
, k, and ∆trespectively, and that B10, D10 and F10 contain the correspond-
ing numerical values. Finally, let row 12 contain the column headings: cell
E12 the label for n, and cell F12 its value.
IncellE14wewouldthenusetheinstruction=$B$10torefertotheinitial
concentration a
0
, in cell E15 we would use=Smallstep(E14,$D$10,$F$10,
$F$12),andwewouldcopythisinstructiondowntill,say,cellE115.That’sit.The
onlydifferencewithwhatwedidearlier,attheendofsection9.2b,isthatexecu-
tion ofthis function may bequiteslow whenweselecta largevalueforn,
because the computer must now perform n calculations for every row of
352
Numerical simulation of chemical kinetics
column E.The spreadsheet may then appearquite sluggish, or even non-
responsive.Inthatcase,lookatthebottomleftcornerofthespreadsheet,where
youmayseethemessageCalculating cells:followedbyapercentage.
Figure 9.2-3 illustrates some results obtained with this approach: the
numerical error is reduced tenfold for n=10, thousand-fold for n=1000.
9.2e
Trimerization kinetics 
For a unidirectional trimerization reaction
3A
k
(9.2-19)
the rate equation is
da/dt=-k
a
3
(9.2-20)
so that
∆a / ∆t=-k a
3
(9.2-21)
a
1
=a
0
+∆a=a
-a
0
3
k ∆t=a
(1-a
0
2
k ∆t)
(9.2-22)
a
2
=a
(1-a
1
2
k ∆t)
(9.2-23)
a
n
=a
n–1 
{1-(a
n–1
)
2
k ∆t}
(9.2-24)
Use the spreadsheet to compare the results of the digital simulation with
the exact solution 
.
25 Modify or expand the spreadsheet, or open a new one, similarly organized.
26 Compute a
simul
from (9.2-24).
27 For a
exact
use a(t)=a
/ √(1+2 a
0
2
k t).
28 Plot a
simul
and a
exact
vs. time tand, in a different graph, diff=a
exact
-a
simul
vs. t.
29 Compare your result with Fig. 9.2-4.
a=a
0
/√1+2a
0
2
k t
9.2 The explicit method
353
Fig.9.2-3:By combining ten (left) or one thousand (right) iteration steps in each row
through the function Smallstep, we can reduce the computational error in the simula-
tion of dimerization kinetics tenfold or thousand-fold respectively, all without increas-
ing the column length of 101 rows.
Again we can again use a function such as Smallstep, which this time
should have as its third line the instruction a= a*(1-a*a*k*delt/n).
However, in section 9.3 we will see that it is more effective first to use a more
efficient algorithm.
9.2f
Monomer–dimer kinetics 
We now consider the somewhat more complex kinetic scheme of the estab-
lishment of a monomer/dimer equilibrium
2A
k
→B
(9.2-25)
k′
with the associated differential equations
da/dt=-k a
2
+2 k′b
(9.2-26)
db/dt=+
1
2
k a
2
-k′b
(9.2-27)
where aand brepresent the concentrations of the monomer A and the dimer
B respectively. Note that these two coupled equations in a and bmust obey
the mass balance requirement (a+2b)=constant or d(a+2b)/dt=0, which
leads to the coefficients in (9.2-26) and (9.2-27). Other coefficient combina-
tions are possible as well. For example, we could have selected da/dt=
-2ka
2
+2k′band db/dt=+ka
2
-k′binstead. The numerical values of the
rate constants will of course depend on the convention used, which there-
fore should be specified.
By considering the mass balance at the beginning of the simulation, t=0,
we find that a+2b=a
0
+2b
0
so that 2b=a
0
+2b
0
-a, which can be used to
eliminate bfrom (9.2-26). We then obtain
da/dt=-ka
2
-k′a+k′(a
0
+2b
0
)=-ka
2
-k a+k″
(9.2-28)
where k″=k′(a
0
+2b
0
).
Conversion of (9.2-28) into the corresponding explicit difference equation
yields
∆a/∆t=-ka
2
-k′a
+
k″
(9.2-29)
354
Numerical simulation of chemical kinetics
Fig.9.2-4:The simulation with the explicit method of the unidirectional trimerization
reaction (9.2-19) with a
0
=2 and k=1.
so that
a
1
=a
0
+∆a=a
0
+(-ka
0
2
-k′a
0
+k″) ∆t
(9.2-30)
a
2
=a
1
+∆a=a
1
+(-ka
1
2
-k′a
1
+k″) ∆t
(9.2-31)
a
n
=a
n–1
+∆a=a
n–1
+(-k(a
n–1
)
2
-k′a
n–1
+k″) ∆t
(9.2-32)
which will gradually approach equilibrium. In principle, equilibrium is
never reached; in practice, it is obtained once all concentration changes
have become imperceptibly small. Likewise, in a simulation, we will con-
sider that equilibrium has been reached once the changes in ∆aand ∆bare
smaller than whatever numerical criterion we set.
Even in this case a closed-form mathematical solution exists, so that
wecan calibrate the accuracy of our simulation. The mathematical solution
is
(9.2-33)
(9.2-34)
Instructions for exercise 9.2-2
Open a new spreadsheet.
Place labels and numerical values in rows 9 and 10 for a
0
, b
0
, k, k′, and delt.
In row 12 deposit labels for time t, for a
simul
, and for b
simul
.
In column A calculate time t, starting with t=0 and with increments delt.
In columns B and C compute values for a
simul
and b
simul
respectively, based on (9.2-30)
through (9.2-32).
Plot a
simul
and b
simul
versus t. Figures 9.2-5 and 9.2-6 show such graphs.
Compare the result of your simulation with the mathematical solution.
9.2g
Polymerization kinetics 
Consider the formation of a so-called “living polymer”, in which a polymer is
built or dissolved through a series of reversible chemical reactions. A notori-
ous example of such a polymer is hemoglobin S, the mutant form of hemo-
globin that causes sickle-cell anemia. The term “living” has nothing to do
with its occurrence in living tissue, but merely identifies the fact that,
depending on the experimental conditions, the polymer can either grow or
shrink. And even when its length remains constant, the polymer may grow at
q=√(k′)
2
+4k k″
a(t)=
-(k′+q)(2ka
0
+k′-q)+(k′-q)(2ka
0
+k′+q)e
qt
2k[(2ka
0
+k′-q)-(2ka
0
+k′+q)e
qt
]
9.2 The explicit method
355
one end while dissolving  at the  other, a process  called treadmilling.
Specifically, we will use the sequence
A
1
+A
1
k
11
→ A
2
(9.2-35)
k
11
A
1
+A
2
k
12
→ A
3
(9.2-36)
k
12
A
1
+A
3
k
13
→ A
4
(9.2-37)
k
13
A
2
+A
2
k
22
→ A
4
(9.2-38)
k
22
which is sufficient to illustrate the approach. With this reaction scheme we
associate the differential equations
356
Numerical simulation of chemical kinetics
Fig.9.2-5:Left: explicit simulation of the establishment of the monomer–dimer equilib-
rium (9.2-25) with a
0
=0.8, b
0
=1.2, k=1, and k′=1. Right: the simulation error a
simul
-
a
exact
.
Fig.9.2-6:Left: explicit simulation of the establishment of the monomer–dimer equilib-
rium (9.2-25) with a
0
=0.8, b
0
=1.2, k=1.5, and k′=0.1. Right: the simulation error
a
simul
– a
exact
.
Documents you may be interested
Documents you may be interested