Muutke küpsiste eelistusi

Beginning Julia Programming: For Engineers and Scientists 1st ed. [Pehme köide]

  • Formaat: Paperback / softback, 351 pages, kõrgus x laius: 254x178 mm, kaal: 7047 g, 18 Illustrations, color; 2 Illustrations, black and white; XXI, 351 p. 20 illus., 18 illus. in color., 1 Paperback / softback
  • Ilmumisaeg: 27-Nov-2017
  • Kirjastus: APress
  • ISBN-10: 1484231708
  • ISBN-13: 9781484231708
  • Pehme köide
  • Hind: 71,86 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Tavahind: 84,54 €
  • Säästad 15%
  • Raamatu kohalejõudmiseks kirjastusest kulub orienteeruvalt 2-4 nädalat
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Tellimisaeg 2-4 nädalat
  • Lisa soovinimekirja
  • Formaat: Paperback / softback, 351 pages, kõrgus x laius: 254x178 mm, kaal: 7047 g, 18 Illustrations, color; 2 Illustrations, black and white; XXI, 351 p. 20 illus., 18 illus. in color., 1 Paperback / softback
  • Ilmumisaeg: 27-Nov-2017
  • Kirjastus: APress
  • ISBN-10: 1484231708
  • ISBN-13: 9781484231708
Get started with Julia for engineering and numerical computing, especially data science, machine learning, and scientific computing applications. This book explains how Julia provides the functionality, ease-of-use and intuitive syntax of R, Python, MATLAB, SAS, or Stata combined with the speed, capacity, and performance of C, C++, or Java. You’ll learn the OOP principles required to get you started, then how to do basic mathematics with Julia. Other core functionality of Julia that you’ll cover, includes working with complex numbers, rational and irrational numbers, rings, and fields.

Beginning Julia Programming takes you beyond these basics to harness Julia’s powerful features for mathematical functions in Julia, arrays for matrix operations, plotting, and more. Along the way, you also learn how to manage strings, write functions, work with control flows, and carry out I/O to implement and leverage the mathematics needed for your data science and analysis projects.

"Julia walks like Python and runs like C". This phrase explains why Julia is quickly growing as the most favored option for data analytics and numerical computation. After reading and using this book, you'll have the essential knowledge and skills to build your first Julia-based application.

What You'll Learn
  • Obtain core skills in Julia
  • Apply Julia in engineering and science applications
  • Work with mathematical functions in Julia
  • Use arrays, strings, functions, control flow, and I/O in Julia
  • Carry out plotting and display basic graphics

Who This Book Is For

Those who are new to Julia; experienced users may also find this helpful as a reference.

About the Author xvii
About the Technical Reviewer xix
Acknowledgments xi
Chapter 1 Introduction
1(14)
1.1 Welcome to the Julian World
1(2)
1.2 JIT Compiler
3(1)
1.3 Brief History
4(1)
1.4 Installation
5(3)
1.4.1 JuliaBox
5(1)
1.4.2 MacOS
6(1)
1.4.3 Windows OS
7(1)
1.4.4 Linux OS
7(1)
1.5 Package Installation
8(4)
1.5.1 Initialization of Package Manager
9(1)
1.5.2 Updating Package Repository
9(1)
1.5.3 Installing a New Package
10(1)
1.5.4 Removing a Package
10(1)
1.5.5 Status of Installed Packages
11(1)
1.5.6 Off-line Installation of Packages [ 18]
12(1)
1.6 Using Code in This Book
12(1)
1.7 Summary
13(1)
1.8 Bibliography
13(2)
Chapter 2 Object-Oriented Programming
15(10)
2.1 Introduction
15(1)
2.2 Procedural Programming vs. OOP
15(1)
2.3 Idea of OOP
15(1)
2.4 Object
16(1)
2.5 Types of Object
16(1)
2.6 Object Reference
17(4)
2.6.1 Multiple References for the Same Object
19(2)
2.7 Variables
21(2)
2.7.1 Naming a Variable
22(1)
2.7.2 Naming Style Convention [ 4]
22(1)
2.8 Summary
23(1)
2.9 Bibliography
23(2)
Chapter 3 Basic Math with Julia
25(44)
3.1 Introduction
25(1)
3.2 REPL
26(5)
3.2.1 Hello World!
26(1)
3.2.2 I/O at REPL
27(1)
3.2.3 Tab Completion
28(1)
3.2.4 Seeking Help from Julia
29(1)
3.2.5 Shell Mode
30(1)
3.2.6 Search Mode
30(1)
3.2.7 Key Bindings
30(1)
3.2.8 Version Information
31(1)
3.3 Some Experiments with Numbers
31(5)
3.3.1 Number Systems
31(1)
3.3.2 Julia as Calculator
32(4)
3.4 Data Type for Integers and Real Numbers
36(1)
3.5 Type Assignment
36(13)
3.5.1 Hierarchy Tree of Number Types
37(3)
3.5.2 Floating Point Arithmetic
40(5)
3.5.3 Overflow and Division Error
45(1)
3.5.4 Floating Point Numbers vs. Real Numbers
46(2)
3.5.5 Machine Precision
48(1)
3.6 Arbitrary Precision Arithmetic
49(1)
3.7 Numerical Conversion
50(4)
3.8 Arithmetic Operators
54(1)
3.9 Boolean Numbers
55(7)
3.9.1 Comparison of Mathematical Quantities
55(4)
3.9.2 Chaining Comparisons
59(1)
3.9.3 Boolean Operators
60(2)
3.10 Updating Operators
62(2)
3.11 Operator Precedence
64(2)
3.12 Summary
66(1)
3.13 Bibliography
66(3)
Chapter 4 Complex Numbers
69(10)
4.1 Introduction
69(1)
4.2 Defining Complex Numbers
69(3)
4.3 Properties of Complex Numbers
72(2)
4.4 Complex Arithmetic
74(3)
4.5 Summary
77(1)
4.6 Bibliography
77(2)
Chapter 5 Rational and Irrational Numbers
79(10)
5.1 Numbers and Ratios
79(1)
5.2 Rational Numbers
80(7)
5.2.1 Representation of Rational Numbers
80(1)
5.2.2 Complex Numbers as Numerators and Denominators
81(1)
5.2.3 Mathematical Operations on Rational Numbers
82(2)
5.2.4 Converting a Rational Number to a Floating Point Number
84(1)
5.2.5 Rationals with Zero Denominator
85(1)
5.2.6 Rationals with Other Data Types
85(2)
5.3 Irrational Numbers
87(1)
5.4 Summary
87(2)
Chapter 6 Mathematical Functions
89(38)
6.1 Introduction
89(1)
6.2 Division Functions
89(6)
6.2.1 div(x,y), fld(x,y), and cld(x,y)
90(2)
6.2.2 rem(), mod(), and mod1()
92(1)
6.2.3 mod2pi()
93(1)
6.2.4 divrem() and fldmod()
94(1)
6.2.5 gcd()
94(1)
6.2.6 Icm()
95(1)
6.3 Sign and Absolute Value Functions
95(7)
6.3.1 abs() and abs2()
96(1)
6.3.2 Absolute Value of a Complex Number
97(1)
6.3.3 sign(), signbit(), copysign(), and flipsign()
98(4)
6.4 Power, Logs, and Roots
102(11)
6.4.1 Numbers Raised to Some Power
103(1)
6.4.2 sqrt(), cbrt(), and hypot()
104(2)
6.4.3 Problem with hypot() Calculations
106(1)
6.4.4 exp(), expm1(), Idexp(), and exponent()
107(2)
6.4.5 log(), log2(), log10(), and log1p()
109(4)
6.5 Trigonometric and Hyperbolic Functions
113(6)
6.5.1 Trigonometric Functions
113(5)
6.5.2 Hyperbolic Functions
118(1)
6.6 Iterative Algorithms to Calculate Mathematical Functions
119(5)
6.6.1 Numerical Approximations
119(1)
6.6.2 Tolerance
119(1)
6.6.3 Taylor Series
120(1)
6.6.4 Taylor Polynomials
121(1)
6.6.5 Maclaurin Series for sin(x) and cos(x)
122(1)
6.6.6 Series Expansion to Algorithms
123(1)
6.6.7 How Many Numbers of Terms!
124(1)
6.7 Summary
124(1)
6.8 Bibliography
125(2)
Chapter 7 Arrays
127(54)
7.1 Introduction to Arrays
127(1)
7.2 Construction
128(10)
7.2.1 Arrays of Multiple Dimensions
129(1)
7.2.2 Arrays of Floats
130(1)
7.2.3 Array of Functions
131(1)
7.2.4 Arrays of Mixed Data Types
132(1)
7.2.5 Creating Arrays
132(3)
7.2.6 Creating an Array Using the Ellipsis Operator
135(1)
7.2.7 Creating Arrays Using linspace
135(1)
7.2.8 Creating Arrays Using logspace
136(1)
7.2.9 Similar Arrays
137(1)
7.3 Properties of Arrays
138(3)
7.4 Indexing
141(4)
7.4.1 Creating Subarrays Using: operator
141(1)
7.4.2 end
142(1)
7.4.3 Slicing Multidimensional Arrays
143(2)
7.5 Filling Arrays with Values
145(8)
7.5.1 zeros()
145(2)
7.5.2 ones()
147(1)
7.5.3 trues()
148(1)
7.5.4 falses()
148(1)
7.5.5 Arrays Filled with Random Numbers
149(3)
7.5.6 eye()
152(1)
7.5.7 fill()
152(1)
7.6 Reshaping Arrays
153(4)
7.6.1 Flipping
155(1)
7.6.2 Squeezing and Arrays
156(1)
7.7 Sorting
157(6)
7.7.1 sortperm()
158(1)
7.7.2 Sort by Transformation
159(1)
7.7.3 Sorting Algorithms
160(2)
7.7.4 Lexicographical Order
162(1)
7.8 Finding Items in Arrays
163(2)
7.8.1 find(), findfirst(), and findnext()
164(1)
7.9 Copying an Array
165(1)
7.9.1 Deepcopy
166(1)
7.10 Comprehension
166(4)
7.11 Generator Expressions
170(1)
7.12 Assignment Operator and Arrays
171(1)
7.12.1 Other Mathematical Operators
172(1)
7.13 Set Theory and Arrays
172(1)
7.14 Dictionary
173(6)
7.14.1 Creating a Dictionary
174(1)
7.14.2 Looking Up a Dictionary
175(1)
7.14.3 Finding Keys and Values
176(1)
7.14.4 Changing Values
177(1)
7.14.5 haskey()
177(1)
7.14.6 Checking a Key-Value Pair
178(1)
7.14.7 Adding and Deleting a Key
178(1)
7.15 Summary
179(1)
7.16 Bibliography
179(2)
Chapter 8 Arrays for Matrix Operations
181(48)
8.1 Defining an Array
181(3)
8.2 Properties of a Matrix
184(8)
8.2.1 Determinants
185(1)
8.2.2 Rank
186(1)
8.2.3 Trace
187(1)
8.2.4 An Upper and Lower Triangular Matrix
187(2)
8.2.5 Diagonal Elements
189(1)
8.2.6 Norm
190(2)
8.3 Matrix Operations
192(8)
8.3.1 Multiplication
193(7)
8.4 Division
200(13)
8.4.1 Inverse of a Matrix
200(4)
8.4.2 Scalar Division
204(2)
8.4.3 Left or Right Division
206(1)
8.4.4 Power of a Matrix
207(3)
8.4.5 Exponentiation of Matrices
210(2)
8.4.6 Logarithm on Matrices
212(1)
8.5 Broadcasting
213(1)
8.6 Boolean Operations
213(2)
8.6.1 Comparison of Elements
213(2)
8.7 Concatenation
215(7)
8.7.1 repmat()
219(1)
8.7.2 repeat()
220(2)
8.8 Rotating a Matrix
222(1)
8.9 Special Matrix
223(4)
8.9.1 Symmetric Matrices
223(1)
8.9.2 Positive Definite Matrix
224(1)
8.9.3 Hermitian Matrices
225(1)
8.9.4 Sparse Matrices
226(1)
8.10 Summary
227(1)
8.11 Bibliography
227(2)
Chapter 9 Strings
229(24)
9.1 Introduction
229(1)
9.2 ASCII System
229(1)
9.3 Unicode System
230(1)
9.4 Characters
230(1)
9.5 Corresponding Integer Value
231(2)
9.6 + Operator and Characters
233(2)
9.6.1 Characters and Strings Are Two Data Types
234(1)
9.7 + Operator and Strings
235(1)
9.8 Concatenation
235(1)
9.9 Interpolation
236(2)
9.10 Strings Are Like Arrays
238(3)
9.10.1 search()
239(1)
9.10.2 contains()
240(1)
9.11 Common String Functions
241(6)
9.11.1 repeat()
241(1)
9.11.2 join()
242(1)
9.11.3 start(), endof(), and next()
242(1)
9.11.4 split()
243(2)
9.11.5 uppercase() and lowercase()
245(1)
9.11.6 replace()
245(1)
9.11.7 Ipad() and rpad()
245(1)
9.11.8 reverse()
246(1)
9.11.9 strip(), Istrip(), and rstrip()
246(1)
9.11.10 randstring()
247(1)
9.12 Reading Data as Arrays from Strings
247(3)
9.13 Lexicographical Comparison of Strings
250(1)
9.14 Summary
251(1)
9.15 Bibliography
251(2)
Chapter 10 Functions
253(22)
10.1 Introduction to Julia Functions
253(1)
10.2 Defining a Simple Julia Function
254(14)
10.2.1 Shorthand Notation
256(1)
10.2.2 Multiple Input
256(6)
10.2.3 Multiple Outputs
262(1)
10.2.4 Anonymous Functions
263(1)
10.2.5 map() Function
264(2)
10.2.6 reduce(), foldl(), and foldr() Functions
266(1)
10.2.7 mapreduce()
267(1)
10.3 Multiple Dispatches
268(2)
10.3.1 Defining Multiple Function Definitions
269(1)
10.4 Operators Defined as Functions
270(3)
10.4.1 Functions Returning Functions
271(2)
10.5 Summary
273(2)
Chapter 11 Control Flow
275(20)
11.1 Introduction to Control Flow
275(1)
11.2 Ternary Expression
275(1)
11.3 Boolean Switching
276(1)
11.4 if-else
277(2)
11.5 For Loop
279(6)
11.5.1 Scope of a Loop Variable
280(1)
11.5.2 continue
281(1)
11.5.3 Comprehensions
282(2)
11.5.4 Generators
284(1)
11.5.5 enumerate
284(1)
11.5.6 Zipping Arrays
285(1)
11.6 While Loop
285(1)
11.7 Nested Loops
286(2)
11.8 Do ... end
288(1)
11.9 Exceptions
289(5)
11.9.1 Built-in Exceptions
289(1)
11.9.2 Custom-Built Exceptions
290(1)
11.9.3 catch...try Construct for Testing Exceptions
291(2)
11.9.4 finally
293(1)
11.10 Summary
294(1)
Chapter 12 Input Output
295(22)
12.1 Introduction
295(1)
12.2 Console I/O
295(1)
12.3 Basic Stream I/O
296(3)
12.4 Byte Array Streaming
299(2)
12.5 Streaming a Line of Characters
301(1)
12.6 Text I/O
302(7)
12.6.1 show()
303(2)
12.6.2 print()
305(2)
12.6.3 printing
307(1)
12.6.4 display()
308(1)
12.7 Different Display Units
309(1)
12.8 File I/O
310(5)
12.8.1 open(), close(), and read()
311(2)
12.8.2 Array Reading and Writing
313(2)
12.9 Summary
315(1)
12.10 Bibliography
315(2)
Chapter 13 Plotting
317(18)
13.1 Introduction to Plotting in Julia
317(1)
13.2 A Plot as an Object
318(1)
13.3 Plots Package
319(13)
13.3.1 Default Behavior of Plots
322(2)
13.3.2 Simpler Way to Plot Equations
324(1)
13.3.3 Implicitly Passing a Second Plot
325(1)
13.3.4 Decorating the Plots
326(1)
13.3.5 Many Plots in the Same Window Using subplot()
327(2)
13.3.6 Histograms
329(1)
13.3.7 Bar Charts
330(1)
13.3.8 Pie Charts
330(1)
13.3.9 Scatter Plots
331(1)
13.4 3D plots
332(1)
13.5 Summary
333(2)
13.5.1 Bibliography
333(2)
Chapter 14 Metaprogramming
335(10)
14.1 Introduction
335(1)
14.2 The: operator
335(2)
14.3 Expressions
337(3)
14.3.1 fieldnames() and dump()
337(3)
14.4 Expression Interpolation
340(1)
14.5 Macros
341(2)
14.6 Built-in Macros
343(1)
14.7 Summary
344(1)
Index 345
Sandeep Nagar, Ph.D. teaches and consults on the use of Julia for data science/analysis and other open source software for data science. In addition to teaching at universities, he frequently gives workshops covering open source software.