Solving differential equations using analytic and semianalytic methods. •
Obtaining ... Spiegel, M. R., 1965, Laplace Transformations: Schaum's Outline
Series in ...
PETE 7201 Lecture 1
Flow in Porous Media Introduction to Partial Differential Equations and VBA
Fall 2001 August 27
Introduction to Partial Differential Equations and VBA 1.0. Outline 1. 2. 3. 4. 5. 6. 7.
Course overview What is a differential equation? What is a partial differential equation? Examples of partial differential equations (and some notation) Our liet motif: the diffusivity equation A few words about Visual Basic for Applications (or VBA) Homework for next class
1.1
Course Overview
The course will consist of three skills: • Deriving and understanding differential equations • Solving differential equations using analytic and semianalytic methods • Obtaining these solutions using a programming language
1.1.1 The types of equations discussed will include • • • • • •
Transient single-phase flow in porous media: the diffusivity equation. This equation also describes flow of heat and diffusion. Transport in porous media without dispersion: the (nonlinear) advection equation Transport in porous media with dispersion: the advection-dispersion equation Vibration of rods or membranes: the wave equation Steady-state flow of heat or steady-state flow in porous media: Laplace’s equation Multiphase, multicomponent transport of fluids in three-dimensional porous media: the nonlinear advection-dispersion-diffusivity equation
1.1.2 Solution methods • • • • • • • • • •
Integration by parts Separation of variables Laplace transformation Analytic and numerical inversion of Laplace transforms Duhamel’s principle Deconvolution Method of characteristics Method of images Nonlinear regression PERHAPS, solution of ODE’s or simple PDE’s using numerical methods and/or perturbation methods and/or conformal mapping
1.1.3 Programming • •
Choice of a language Simple input and output
Page 1 of 11
PETE 7201 Lecture 1 • • • • •
Flow in Porous Media Introduction to Partial Differential Equations and VBA
Fall 2001 August 27
Arrays Flow control Iteration Functions, subroutines, and structures Simple solution methods
1.1.4 Texts used in this text will include • • • • • • •
Farlow, S. J., 1993,Partial differential equations for scientists and engineers: Dover Publications, New York, 414 p. REQUIRED Abramowitz, M., and I. A. Stegun, 1972, Handbook of Mathematical Functions: National Bureau of Standards Applied Mathematics Series No. 55, 10th printing, Washington, D. C., 1046 p. Now available from Dover Publications, New York. Recommended. Spiegel, M. R., 1965, Laplace Transformations: Schaum’s Outline Series in Mathematics, McGraw-Hill Book Company, New York, 261 p. Recommended. Hornbeck, R. W., 1975, Numerical Methods: Quantum Publishers, New York, 310 p. Optional. Gradshteyn, I. S. and I. M. Ryzhik, 1980, Table of Integrals, Series and Products, Academic Press, 1980, 1160 p. Lovely book, optional. Lomax, P., 1999, VB and VBA in a Nutshell, O’Reilly, Sebastapol, CA, 633 p. Roman, S., 1999, Writing Excel Macros, O’Reilly, Sebastapol, CA, 633 529 p.
1.1.5 Other materials • • •
Technical papers (distributed as photocopies) Excerpts from books and tables (distributed) Class notes (some available on line)
1.1.6 Grading • • • • •
Homework will not be graded There is no term project Grade will consist of midterm 34% and final 66% These policies can be changed at the discretion of the instructor A is 90 or above, B is 80 or above, C is 70 or above, D is 60 or above
1.1.7 Contact information • • •
Monday and Wednesday, 2:00 PM – 5:00 PM. Correspond via e-mail to
[email protected] Telephone: 225/578-6044
1.2 What is a differential equation? 1.2.1 Getting back to basics
Page 2 of 11
PETE 7201 Lecture 1
Flow in Porous Media Introduction to Partial Differential Equations and VBA
Fall 2001 August 27
Differential: based on difference instead of or in addition to absolute quantities. For those of us who have taken courses in calculus, this can be interpreted to be a derivative. Equation: A statement that quantities are related. Thus the statement “The acceleration of an object equal in the gravitational field of earth, and subject to no other forces, is equal to a constant and is directed opposite to the elevation if elevation is measured upward.” is a differential equation. In fact, this is close to how Gallileo and those guys wrote differential equations. We have a much more compact notation now, which enables us mere mortals to manipulate the abstract entities involved in differential equations easily. But never forget: it all comes out of, and modifies, an initial statement of relationship.
1.2.2 Simple examples We can rewrite the sentence above as an equation d 2z = − g ............................................................. (1.1) dt 2 This is a differential equation because it relates a differential (the second derivative of z with respect to t) to another quantity (-g). The derivative is a full derivative because z depends only on z. Way back in high school physics (at least in Ponca City, Oklahoma) we learned to integrate this equation and determine the constants of integration to get that good old equation of motion: gt 2 z = z 0 + v0 t − ....................................................... (1.2) 2 Another very familiar differential equation comes from “The amount I earn increases in proportion to the amount I have saved”: d$ = c$ .............................................................. (1.3) dt The solution of Eqn. (1.3) is familiar to us all, $ = $ 0 e ct .............................................................. (1.4) or the good old compound interest equation. Falling balls and rising net worth, nothing to worry about so far…
1.3 What is a partial differential equation? 1.3.1 Definition A partial differential equation is simply a differential equation in which the variable of interest depends on more than one independent variable. The total derivatives then become partial derivatives; the definition of a partial derivative is that it is the limit in the finite difference about a point when only one of the independent variables changes, viz: u ( x1 , x 2 , L , xi + ∆x, xi +1 , L , x n ) − u ( x1 , x 2 , L , x i , xi +1 , L , x n ) ∂u ............ (1.5) = lim ∆ x → 0 ∆x ∂x i But this small difference in the derivatives greatly complicates obtaining solutions. For example for Laplace’s equation
Page 3 of 11
PETE 7201 Lecture 1
Flow in Porous Media Introduction to Partial Differential Equations and VBA
Fall 2001 August 27
∂ 2u ∂ 2u + = 0 ........................................................ (1.6) ∂x 2 ∂y 2 ∂ 2u ∂ 2u dx dx because = f ( x) ; and it is in fact an unknown 2 ∂y ∂y 2 function of x. This is the source of all the heartache in solving partial differential equations. All the joy comes from finding ways to convert partial differential equations (PDE’s) into ordinary differential equations (ODE’s). When we can’t do that, we usually must bear the pain of a numerical solution. Fortunately, generations of clever mathematicians, physicists, and engineers have cataloged a vast number of “tricks” we can use to turn interesting PDE’s into solvable ODE’s. And that is what we will spend a lot of our time doing this semester, learning those tricks. To understand which tricks to use on which problems, it will be useful to have a system for classifying differential equations.
we can’t simply integrate u = − ∫∫
1.3.2 Kinds of PDE’s (from Farlow, Lesson 1) We will use the general form given by Farlow in his Eqn. (1.1): For second order: Au xx + Bu xy + Cu yy + Du x + Eu y + Fu = G ................................... (1.7) For first order: •
•
•
• •
Au x + Cu y + Fu = G .................................................... (1.8)
Order of the PDE is the order of the highest derivative. Thus, the one-dimensional diffusivity ∂ 2u equation u t = u xx is a second-order PDE. Note the introduction of the notation u xx = 2 . ∂x Number of independent variables. The diffusivity equation in cylindrical coordinates u u u t = u rr + r + θθ2 + u zz has four variables. More dimensions make equations harder to r r solve. In one dimension, a PDE is an ODE. Linearity. A PDE is linear if the dependent variable u is not multiplied by itself or any of its derivatives, or any other functions of itself. Thus, the Buckley-Leverett equation df w ∂S w ∂S w = 0 is a nonlinear first-order PDE in two variables. On the other hand, the + ∂t dS w ∂x ∂S w ∂S w + = 0 is linear. Similarly, uu t = 0 , u 2 + u t = 0 , and advection equation ∂x ∂t 2 u + (u t ) = 0 are all nonlinear. Nonlinear equations are hardest to solve. Sometimes we can solve them using a method like characteristics; sometimes we must resort to perturbations or numerical methods. Homogeneity. u t = u xx is homogeneous; u t = u xx + G ( x, t ) is inhomogeneous (we don’t say heterogeneous in this connection) for any G not identical to zero [Eqn. (1.7)]. Constant coefficients implies that A, B, C, D, E, and F in Eqn. (1.7) are constant; otherwise the equation has variable coefficients. Some cases with variable coefficients – for instance, heterogeneous models – can only be solved numerically at this time.
1.3.3 Basic Types of PDE’s The basic types of differential equations are
Page 4 of 11
PETE 7201 Lecture 1 • • •
Flow in Porous Media Introduction to Partial Differential Equations and VBA
Fall 2001 August 27
Parabolic, generally describing heat flow and mass diffusion. B 2 − 4 AC = 0 Hyperbolic, generally describing vibration or wave phenomena, including advection. B 2 − 4 AC > 0 Elliptic, generally describing steady-state flow of heat and other conserved quantities. B 2 − 4 AC < 0 A few examples… Diffusivity equation: u t = u xx B 2 − 4 AC = 0 Parabolic Advection: Buckley-Leverett: Laplace’s Equation
u x − ut = 0 df w ∂S w ∂S w =0 + ∂t dS w ∂x
B 2 − 4 AC = 4
u xx + u yy = 0
B 2 − 4 AC = −4
B 2 − 4 AC = 4
Hyperbolic df w dS w
Hyperbolic(?) Elliptic
If the coefficients are variable, the type of equation may vary in space. This has been known to cause some complications in using the Method of Characteristics (which only works for hyperbolic equations) to analyze multicomponent flow in porous media (for CO2 flooding and three-phase flow). Knowing the type of equation is important because it helps you choose a solution method.
1.4 Examples of PDE’s We have already seen most of these examples in the earlier discussion. We’ll just gather them here and introduce some new notation and include some additional complications.
1.4.1 The Diffusivity Equation; Divergence The diffusivity equation describes mass diffusion in a porous, permeable medium; heat flow in a conducting, capacitive medium; and diffusion due to concentration gradients. With a few additional assumptions which we will discuss later, for porous media flow the conservation equation can be written in Cartesian coordinates as φµc t p xx + p yy + p zz = p t ................................................. (1.9) k whereas in cylindrical coordinates it is φµc t 1 ∂ 1 p t ....................................... (1.10) (rp r ) + 2 pθθ + p zz = k r ∂r r This difference in forms is just plain bothersome. It is much nicer to use a coordinate-system free notation, and divergence offers just such a tool. Lake (1989) has really nice tables of operators and conservation equations that I’ve attached. Using the divergence operator and the gradient operator, we can rewrite this equation as r φµct ∇ ⋅ ∇p = p t ...................................................... (1.11) k for any coordinate system, including elliptical, streamline, whatever. The gradient operator for Cartesian coordinates is r ∂ ∂ ∂ ∇= xˆ + yˆ + zˆ ................................................. (1.12) ∂x ∂y ∂z
Page 5 of 11
PETE 7201 Lecture 1
Flow in Porous Media Introduction to Partial Differential Equations and VBA
Fall 2001 August 27
and Lake gives the forms for spherical and cylindrical coordinates. It is simply the vector derivative, giving the rate of change of a scalar function in all coordinate directions. The divergence takes a vector (in Eqn. 1.11, the gradient) as its argument. It forms a dot-product, and so is a scale. The divergence is the amount of “stuff” flowing into a differential volume element; see the “divergence theorem of Gauss” in an undergraduate engineering mathematics text. And we will talk more about this later. The important thing is that this notation allows us to write conservation equations (including the diffusivity equation) in a very general way: to get back to sentence form, they say the divergence of [(concentration or density) times velocity] is equal to the rate of change of (concentration or density) in the differential volume. Every conservation equation can be boiled down to this form, and then expanded to include constitutive models for concentration, velocity, density, etc. This equation is parabolic.
1.4.2 Wave Equations The equation for a vibrating string with time-varying forces applied along it is u tt = α 2 u xx − βu t − γu + F ( x, t ) .......................................... (1.13) where α is a tension parameter, β is a resistance parameter, γ is a restoring constant, and F is the applied force; u is the displacement. This is also known as the telegraph or telephone equation (Farlow, p. 125) because it describes voltage rises in cables. For the idealized case with no distributed force, restoring force, Eqn. (1.13) becomes the well-known wave equation, which as we know is hyperbolic: u tt = α 2 u xx .......................................................... (1.14)
1.4.3 Others We’ll examine Laplace’s equation (elliptic) and linear and nonlinear advection equations (hyperbolic) later in the course.
1.5 The diffusivity equation (leit-motif, or “recurring theme”) We will now work very systematically through the derivation of the diffusivity equation in radial (r-only) coordinates. Our application will be for the case of Darcy flow of a slightly-compressible fluid through a permeable, porous medium. First we will do a “conventional” derivation, then we will go through a “divergence” derivation much more quickly.
1.5.0 A brief excursion – Darcy’s Law Henri D’Arcy formulated his now-famous law empirically. He was designing water filtration sandpack, or fountains, for the city of Dijon. He wanted to make certain he had adequate flow capacity, and as always such constructions are somewhat constrained by cost considerations. Engineering! For vertical flow, his results were KA h ........................................................... (1.15) q= L Like many researchers concerned with water flow, he didn’t worry about including density terms or viscosity. A reservoir engineer is concerned with these properties, and we write this equation
Page 6 of 11
PETE 7201 Lecture 1
Flow in Porous Media Introduction to Partial Differential Equations and VBA
Fall 2001 August 27
kA ρgh .......................................................... (1.16) µ where the units are k[Darcies, or D], ρgh[atm], h[cm] and µ[cp]. We will worry about other systems of units, including the nefarious “oilfield” units later. Equation (1.16) can be rewritten for gradients rather than differences as, and nonvertical but wholly gravity-driven flow as k dh ....................................................... (1.17) v = − ρg dx µ It can be generalized to include both pressure and gravity-driven flow using the concept of potential, Ψ = p + 9.678 × 10 −4 z ................................................. (1.18) where Ψ and p are have units of [atm] and z is in [cm] (Darcy units, again). In terms of potential, one-dimensional flow can be written as k dΨ ......................................................... (1.19) v=− µ dx This can be written for multidimensional flow as r k ∂Ψ ∂Ψ ∂Ψ v = − xˆ + yˆ + zˆ ........................................ (1.20a) µ ∂x ∂y ∂z or r k r v = − ∇Ψ ....................................................... (1.20b) µ t Eqns (1.20) apply only for isotropic media. For anisotropic media, k is a tensor k : k k xy k xz t xx k = k xy k yy k yz ................................................... (1.21) k xz k yz k zz q=
The multidimensional form of Darcy’s law is rather complex in derivative notation: r 1 v =− × µ ∂Ψ ∂Ψ ∂Ψ ∂Ψ ∂Ψ ∂Ψ ∂Ψ ∂Ψ ∂Ψ k xx xˆ + k xy yˆ + k xz zˆ + k xy + k xz + k yy + k yz + k yz + k zz ∂x ∂y ∂z ∂x ∂y ∂z ∂x ∂y ∂z ................................................................. (1.22a) But in vector notation it is much simpler: t r k r v = − ∇Ψ ....................................................... (1.22b) µ Learn to use vector notation!
1.5.1 Conservation The conservation equation tell us that [(mass flow rate in at r+∆r) (change in mass in interval)
–
(mass
flow
Symbolically,
Page 7 of 11
rate
out
at
r)](time
change)
=
PETE 7201 Lecture 1
Flow in Porous Media Introduction to Partial Differential Equations and VBA
[(qρ )
Fall 2001 August 27
− (qρ )r + ∆r ]∆t = ( ρφV )t + ∆t − ( ρφV )t + ∆t ............................... (1.23) where q is flow rate and V is the volume of the element. We know that q = -vA = -2πrhv, where h is the reservoir thickness. We include the minus sign because (conventionally) q is positive when velocity is inward (where as r is positive outward). Similarly, V = 2πr∆rh, so long as r >> ∆r . Thus, we can rewrite Eqn (1.23) as − [(vρr )r + ∆r − (vρr )r + ∆r ]∆t = (ρφr∆r )t + ∆t − (ρφr∆r )t + ∆t ......................... (1.24) The common constant factor 2πh has been divided out already. Now, if we divide both sides of the equation by ∆r∆t, and move nonvarying factors outside of quotients, 1 [(vρr )r + ∆r − (vρr )r + ∆r ] ( ρφ )t + ∆t − ( ρφ )t + ∆t − = .............................. (1.25) r ∆r ∆t The terms in the equations look suspiciously like partial derivatives, so we can now write the conservation equation as a partial differential equations, viz.: 1 ∂ (vρr ) = ∂ (ρφ ) ................................................. (1.26) − r ∂r ∂t To this point, we have assumed nothing except conservation of mass. Note that the operator on the left hand side looks a bit divergence-like for radial coordinates. r + ∆r
1.5.2 Constitutive equation for velocity Many engineers are familiar with Darcy’s Law, which relates flow rate to pressure gradient. We will use this relationship to eliminate v from the equation in favor of p; later we will eliminate ρ in favor of p, as well. For 1-D flow a form of Darcy’s law is k ∂p .......................................................... (1.27) µ ∂r Substituting this into the conservation equation [Eqn. (1.26)], 1 ∂ k ∂p ∂ ρr = ( ρφ ) ............................................ (1.28a) r ∂r µ ∂r ∂t v=−
if we assume, as is commonly done for liquid flow, that k and µ are constant, then we have k 1 ∂ ∂p ∂ ρr = ( ρφ ) ............................................ (1.28b) µ r ∂r ∂r ∂t We will consider the case of anisotropic permeability when we analyze two- and threedimensional flow. Spatially varying permeability makes the coefficient of the gradient terms vary so that we must use Eqn. (1.28a) rather than Eqn. (1.28b); such problems are solved numerically or by perturbation methods.
1.5.3 Constitutive equation for density and porosity Consider the left (L) and right (sides) of Eqn. (1.28b) separately. For simplicity, leave out the k in L. Expanding the derivative, term µ L=
1 ∂ ∂p 1 ∂ρ ∂p ρ ∂ ∂p ρr = r + r ........................... (1.29a) r ∂r ∂r r ∂r ∂r r ∂r ∂r
Page 8 of 11
PETE 7201 Lecture 1
Flow in Porous Media Introduction to Partial Differential Equations and VBA
Fall 2001 August 27
Now we will use a constitutive equation for density of a fluid with small and constant compressibility, ρ = ρ ’exp[c( p − p ’)] ................................................ (1.29b) This gives and expression for the derivative of density with respect to pressure, dρ = cρ ’exp[c( p − p’)] = cρ .......................................... (1.29c) dp We can use this to rewrite the partial derivative of ρ in Eqn. (1.21a) to get ∂p ∂p ρ ∂ ∂p 1 L = cρ r + r ...................................... (1.29d) r ∂r ∂r r ∂r ∂r Oh dear: this is nonlinear. If the gradient of pressure is small, then its square is very small. If c is small in addition (and it is for liquids), then the first term on the right of Eqn. (1.29d) can be neglected. For gas flow, it cannot be neglected and we use a change of variables to treat the nonlinearity. For liquid flow, we have ρ ∂ ∂p L= r .................................................... (1.29e) r ∂r ∂r Now we turn our attention to R, the accumulation term: ∂φ ∂ρ ∂ R = (ρφ ) = φ .............................................(1.29f) +ρ ∂t ∂t ∂t We will assume the same model for porosity that we used for density: φ = φ ’exp[c f ( p − p ’)] ............................................... (1.29g) Using the chain rule (as in Eqn. 1.29d) we rewrite the accumulation term as ∂p ∂p ∂p ∂p .......................... (1.29h) = φρct = φρ (c + c f ) + φc f ρ R = φcρ ∂t ∂t ∂t ∂t Oh dear, another nonlinearity: φ and ρ are functions of p, and they multiply a derivative of p (ct is the total compressibility, combining fluid and rock effects). This nonlinearity is very hard to treat, and the occasionally-used pseudotime transform is at best approximate and at worst, worse. For liquids and systems where porosity isn’t too sensitive to pressure, we just ignore it and act as if they didn’t vary: use values at the average pressure, say. For gas flow or with highly compressible rocks we have to resort to numerical or perturbation solutions. Finally, we can recombine the left and the right (Eqns. 1.21b and 1.29h): k ρ ∂ ∂p ∂p ............................................. (1.30a) r = φρc t ∂t µ r ∂r ∂r or 1 ∂ ∂p φµc t ∂p 1 ∂ ∂p 1 ∂p or ........................... (1.30b) r = r = r ∂r ∂r k ∂t r ∂r ∂r η ∂t Where η is the hydraulic diffusivity, and has dimensions of L2/T. As can be deduced from its position in the equation, η relates the spatial and pressure derivatives. As η increases, pressure changes propagate more rapidly in space.
1.5.4 Derivation using the Concept of Divergence The integral of the component of the velocity directed outward from a surface gives the net flux out of a volume enclosed by the surface. Thus, it is equal to the opposite of the accumulation for that quantity. Written as an equation,
Page 9 of 11
PETE 7201 Lecture 1
Flow in Porous Media Introduction to Partial Differential Equations and VBA r
Fall 2001 August 27
∂
∫ ρv ⋅ dS = − ∫ ∂t (ρφ )dV ................................................ (1.31) S
V
for any volume V enclosed by a surface S; dS is an outward-directed normal to S of area dS. The divergence theorem of Gauss says that we can rewrite this as r r ∂ ∫ ∇ ⋅ (ρv )dV + ∫ ∂t (ρφ )dV = 0 ........................................... (1.32) V V Because the volume V was arbitrary, the integral can be dispensed with and we have the conservation equation very quickly: r r ∂ ∇ ⋅ ( ρv ) + (ρφ ) = 0 ................................................ (1.33a) ∂t This divergence form is quite general and often much easier to work with than coordinate-system specific equations. For example, we can include the vector form of Darcy’s Law to get t r kρ r ∂ ∇ ⋅ ( ∇Ψ ) = (ρφ ) ............................................... (1.33b) ∂t µ Again, learn the vector notation. On a philosophical note, we can examine the divergence equation to understand the effects of spatially varying permeability. Assuming steady state, constant density and viscosity, and isotropic (but nonuniform) permeability, Eqn. (1.33b) can be written r µr ∇p = − v ........................................................ (1.34a) k If we take the curl of Eqn. (1.34a) r r r µ r r µ r r µ r ∇ × ∇p = −∇ × v = − 2 ∇k × v + ∇ × v = 0 .......................... (1.34b) k k k where the fact that the sum of the two cross products is zero comes from the curl of the gradient of pressure being zero (the curl of the gradient of a scalar is always zero). Thus, r r 1 r r r r ∇ × v = ∇k × v = ∇ ln(k ) × v ......................................... (1.34c) k So what? Well, Eqn. (1.34c) tells us that if the permeability varies along any direction not perfectly aligned with the velocity, flow will be rotational. This effect is what gives rise to tensorlike behavior at the large scale if small-scale permeability is isotropic but heterogeneous.
1.5.5 Recapitulation Equation 1.22b is the linearized diffusivity equation. To derive it, we assumed: • One-dimensional flow (h constant, etc.) • Conservation of mass • Darcy’s law applies • Permeability is uniform. It may not be constant, but then Eqn. (1.22b) is nonlinear. • Viscosity is uniform. • Rock and fluid compressibility are small and constant (not valid for gas flow and in poorly consolidated rocks). • To be linear, k, µ, and φ cannot vary with time. ∂p ∂p ρ ∂ ∂p • The term cρ r is small in comparison to r (not valid for gas flow). ∂r ∂r r ∂r ∂r
Page 10 of 11
PETE 7201 Lecture 1
Flow in Porous Media Introduction to Partial Differential Equations and VBA
Fall 2001 August 27
1.6 Remarks Concerning VBA The solution of many mathematical problems requires repetitive calculations. This is especially true when we have to resort to numerical methods, but even “analytic” methods can be onerous computationally because we often have to evaluate sums of transcendental functions, find roots of complicated equations, and so on. In addition, it is important to graph and examine solutions to reduce the chances of errors and to improve our understanding. For all of these reasons (and a whole bunch more), every engineer should know how to program. In this course, we will do computations using computer programs. The examples that I will give you will be done in Visual Basic for Applications, which is a part of all Microsoft Office programs. I use it extensively with Excel. From Excel, if you type ALT-F11, you pop into the VBA project manager. I think using VBA with Excel is particularly nice because: • Reading and writing data from spreadsheets or files is easy • VBA has good flow control, data structures, and memory management • The VBA debugger is powerful, which helps those of us who write buggy code • It’s compatible with other similar products, like VB and Visual C++ • The language is pretty simple and straightforward • It calls by reference, which engineers mostly like • You can access Excel Charts, Solver, and Pivot Tables from VBA • You can build decent interfaces if you want • The combination of Excel and VBA is a very powerful engineering tool On the other hand, less desirable features include • No pointers (but good structures and memory management help; and VBA calls by reference) • Graphics are not strong • It is a Microsoft product, and so there are a lot of versions out there. VBA programming makes Excel less stable. We will talk more about these features throughout the course. As part of your first homework assignment, we will have a very simple program to write. It will demonstrate use of arrays, sorting, and a little bit of moving data from spreadsheets to VBA and back. I don’t care what language you program in: FORTRAN, C, C++, VB, VBA, LISP, Prolog, APL, Pascal – whatever you have access to and whatever works for you.
Page 11 of 11