ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب Introduction to Scientific Programming with Python: A Starting Point

دانلود کتاب مقدمه ای بر برنامه نویسی علمی با پایتون: نقطه شروع

Introduction to Scientific Programming with Python: A Starting Point

مشخصات کتاب

Introduction to Scientific Programming with Python: A Starting Point

ویرایش:  
نویسندگان:   
سری:  
 
ناشر: Educohack Press 
سال نشر: 2023 
تعداد صفحات: 2237 
زبان: English 
فرمت فایل : EPUB (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 24 Mb 

قیمت کتاب (تومان) : 46,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 5


در صورت تبدیل فایل کتاب Introduction to Scientific Programming with Python: A Starting Point به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب مقدمه ای بر برنامه نویسی علمی با پایتون: نقطه شروع نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی درمورد کتاب به خارجی



فهرست مطالب

Computing with Formulas...................................1
        The First Programming Encounter: a Formula....................1
            Using a Program as a Calculator.........................2
            About Programs and Programming.......................2
            Tools for Writing Programs............................3
            Writing and Running Your First Python Program..............4
            Warning About Typing Program Text.....................5
            Verifying the Result.................................6
            Using Variables....................................6
            Names of Variables.................................6
            Reserved Words in Python............................7
            Comments.......................................8
            Formatting Text and Numbers..........................9
        Computer Science Glossary...............................12
        Another Formula: Celsius-Fahrenheit Conversion................16
            Potential Error: Integer Division........................16
            Objects in Python..................................17
            Avoiding Integer Division............................18
            Arithmetic Operators and Precedence.....................20
        Evaluating Standard Mathematical Functions...................20
            Example: Using the Square Root Function.................20
            Example: Computing with sinh x........................23
            A First Glimpse of Rounding Errors.....................23
        Interactive Computing..................................24
            Using the Python Shell..............................25
            Type Conversion..................................26
            IPython........................................27
        Complex Numbers.....................................29
            Complex Arithmetics in Python........................30
            Complex Functions in Python..........................31
            Unified Treatment of Complex and Real Functions............31
        Symbolic Computing...................................33
            Basic Differentiation and Integration.....................33
            Equation Solving..................................34

xi

    Taylor Series and More..............................35

    Summary...........................................35
        Chapter Topics...................................35
        Example: Trajectory of a Ball..........................39
        About Typesetting Conventions in This Book...............40
    Exercises...........................................41

    Loops and Lists..........................................51
        While Loops.........................................51
            A Naive Solution..................................51
            While Loops.....................................52
            Boolean Expressions................................54
            Loop Implementation of a Sum.........................56
        Lists 57
            Basic List Operations...............................57
            For Loops.......................................60
        Alternative Implementations with Lists and Loops................62
            While Loop Implementation of a for Loop.................62
            The Range Construction.............................63
            For Loops with List Indices...........................64
            Changing List Elements.............................65
            List Comprehension................................66
            Traversing Multiple Lists Simultaneously..................66
        Nested Lists.........................................67
            A table as a List of Rows or Columns....................67
            Printing Objects...................................68
            Extracting Sublists.................................70
            Traversing Nested Lists..............................72
        Tuples.............................................74
        Summary...........................................75
            Chapter Topics...................................75
            Example: Analyzing List Data.........................78
            How to Find More Python Information....................80
        Exercises...........................................82
    Functions and Branching...................................91
        Functions...........................................91
            Mathematical Functions as Python Functions...............91
            Understanding the Program Flow.......................93
            Local and Global Variables...........................94
            Multiple Arguments................................96
            Function Argument or Global Variable?...................97
            Beyond Mathematical Functions........................98
            Multiple Return Values..............................99
            Computing Sums.................................100
            Functions with No Return Values......................101
            Keyword Arguments...............................103
            Doc Strings.....................................105
            Functions as Arguments to Functions....................107
            The Main Program................................109
            Lambda Functions................................110
        Branching..........................................110
            If-else Blocks...................................111
            Inline if Tests...................................113
        Mixing Loops, Branching, and Functions in Bioinformatics

Examples......................................113

    Counting Letters in DNA Strings.......................114
    Efficiency Assessment..............................118
    Verifying the Implementations........................120

    Summary..........................................121
        Chapter Topics...................................121
        Example: Numerical Integration.......................123
    Exercises..........................................127

    User Input and Error Handling..............................149
        Asking Questions and Reading Answers......................150
            Reading Keyboard Input............................150
        Reading from the Command Line..........................151
            Providing Input on the Command Line...................151
            A Variable Number of Command-Line Arguments...........152
            More on Command-Line Arguments....................153
        Turning User Text into Live Objects........................154
            The Magic Eval Function............................154
            The Magic Exec Function...........................158
            Turning String Expressions into Functions................160
        Option-Value Pairs on the Command Line....................161
            Basic Usage of the Argparse Module....................162
            Mathematical Expressions as Values....................163
        Reading Data from File.................................165
            Reading a File Line by Line..........................166
            Alternative Ways of Reading a File.....................167
            Reading a Mixture of Text and Numbers..................169
        Writing Data to File...................................171
            Example: Writing a Table to File.......................171
            Standard Input and Output as File Objects.................173
            What is a File, Really?..............................176
        Handling Errors......................................179
            Exception Handling...............................180
            Raising Exceptions................................183
        A Glimpse of Graphical User Interfaces......................185
        Making Modules.....................................188
            Example: Interest on Bank Deposits.....................188
            Collecting Functions in a Module File...................189
            Test Block.....................................190
            Verification of the Module Code.......................192
            Getting Input Data................................193
            Doc Strings in Modules.............................195
            Using Modules..................................196
            Distributing Modules..............................199
            Making Software Available on the Internet................200
        Making Code for Python 2 and 3...........................201
            Basic Differences Between Python 2 and 3................201
            Turning Python 2 Code into Python 3 Code................202
        Summary..........................................204
            Chapter Topics..................................204
            Example: Bisection Root Finding......................208
        Exercises..........................................216
    Array Computing and Curve Plotting.........................227
        Vectors...........................................228
            The Vector Concept...............................228
            Mathematical Operations on Vectors....................229
            Vector Arithmetics and Vector Functions.................231
        Arrays in Python Programs..............................232
            Using Lists for Collecting Function Data.................232
            Basics of Numerical Python Arrays.....................233
            Computing Coordinates and Function Values...............235
            Vectorization....................................236
        Curve Plotting.......................................238
            MATLAB-Style Plotting with Matplotlib.................238
            Matplotlib; Pyplot Prefix............................243
            SciTools and Easyviz..............................244
            Making Animations...............................249
            Making Videos..................................254
            Curve Plots in Pure Text............................255
        Plotting Difficulties...................................256
            Piecewisely Defined Functions........................256
            Rapidly Varying Functions...........................259
        More Advanced Vectorization of Functions...................260
            Vectorization of StringFunction Objects..................260
            Vectorization of the Heaviside Function..................261
            Vectorization of a Hat Function........................265
        More on Numerical Python Arrays.........................267
            Copying Arrays..................................267
            In-Place Arithmetics...............................268
            Allocating Arrays.................................269
            Generalized Indexing..............................269
            Testing for the Array Type...........................270
            Compact Syntax for Array Generation...................271
            Shape Manipulation...............................271
        High-Performance Computing with Arrays....................272
            Scalar Implementation..............................272
            Vectorized Implementation..........................273
            Memory-Saving Implementation.......................273
            Analysis of Memory Usage..........................275
            Analysis of the CPU Time...........................276
        Higher-Dimensional Arrays..............................277
            Matrices and Arrays...............................277
            Two-Dimensional Numerical Python Arrays...............278
            Array Computing.................................281
            Matrix Objects...................................282
        Some Common Linear Algebra Operations....................283
            Inverse, Determinant, and Eigenvalues...................283
            Products.......................................283
            Norms 284
            Sum and Extreme Values............................284
            Indexing.......................................286
            Transpose and Upper/Lower Triangular Parts..............286
            Solving Linear Systems.............................287
            Matrix Row and Column Operations....................287
            Computing the Rank of a Matrix.......................288
            Symbolic Linear Algebra............................289
        Plotting of Scalar and Vector Fields.........................292
            Installation.....................................292
            Surface Plots....................................293
            Parameterized Curve...............................293
            Contour Lines...................................294
            The Gradient Vector Field...........................294
        Matplotlib.........................................296
            Surface Plots....................................296
            Contour Plots....................................297
            Vector Field Plots.................................299
        Mayavi...........................................299
            Surface Plots....................................300
            Contour Plots....................................303
            Vector Field Plots.................................303
            A 3D Scalar Field and Its Gradient Field..................304
            Animations.....................................306
        Summary..........................................307
            Chapter Topics...................................307
            Example: Animating a Function.......................308
        Exercises..........................................313
    Dictionaries and Strings...................................333
        Dictionaries........................................333
            Making Dictionaries...............................334
            Dictionary Operations..............................334
            Example: Polynomials as Dictionaries...................336
            Dictionaries with Default Values and Ordering.............338
            Example: Storing File Data in Dictionaries................341
            Example: Storing File Data in Nested Dictionaries...........342
            Example: Reading and Plotting Data Recorded at Specific Dates..347
        Strings............................................351
            Common Operations on Strings........................351
            Example: Reading Pairs of Numbers....................355
            Example: Reading Coordinates........................358
        Reading Data from Web Pages............................360
            About Web Pages.................................361
            How to Access Web Pages in Programs..................362
            Example: Reading Pure Text Files......................363
            Example: Extracting Data from HTML...................365
            Handling Non-English Text..........................366
        Reading and Writing Spreadsheet Files......................369
            CSV Files......................................369
            Reading CSV Files................................370
            Processing Spreadsheet Data.........................371
            Writing CSV Files................................372
            Representing Number Cells with Numerical Python Arrays 373
            Using More High-Level Numerical Python Functionality . 374
        Examples from Analyzing DNA...........................375
            Computing Frequencies.............................375
            Analyzing the Frequency Matrix.......................382
            Finding Base Frequencies...........................385
            Translating Genes into Proteins........................388
            Some Humans Can Drink Milk, While Others Cannot.........393
        Making Code that is Compatible with Python 2 and 3.............394
            More Basic Differences Between Python 2 and 3............394
            Turning Python 2 Code into Python 3 Code................396
        Summary..........................................396
            Chapter Topics..................................396
            Example: A File Database...........................398
        Exercises..........................................402
    Introduction to Classes....................................409
        Simple Function Classes................................409
            Challenge: Functions with Parameters...................410
            Representing a Function as a Class.....................412
            The Self Variable.................................417
            Another Function Class Example.......................419
            Alternative Function Class Implementations...............420
            Making Classes Without the Class Construct...............422
            Closures.......................................424
        More Examples on Classes..............................426
            Bank Accounts..................................426
            Phone Book....................................428
            A Circle.......................................430
        Special Methods.....................................432
            The Call Special Method............................432
            Example: Automagic Differentiation....................433
            Example: Automagic Integration.......................438
            Turning an Instance into a String.......................440
            Example: Phone Book with Special Methods...............441
            Adding Objects..................................443
            Example: Class for Polynomials.......................443
            Arithmetic Operations and Other Special Methods...........449
            Special Methods for String Conversion...................449
        Example: Class for Vectors in the Plane......................451
            Some Mathematical Operations on Vectors................451
            Implementation..................................452
            Usage 454
        Example: Class for Complex Numbers.......................455
            Implementation..................................455
            Illegal Operations.................................457
            Mixing Complex and Real Numbers....................457
            Dynamic, Static, Strong, Weak, and Duck Typing............459
            Special Methods for “Right” Operands...................460
            Inspecting Instances...............................461
        Static Methods and Attributes.............................463
        Summary..........................................464
            Chapter Topics...................................464
            Example: Interval Arithmetic.........................466
        Exercises..........................................470
    Random Numbers and Simple Games.........................489
        Drawing Random Numbers..............................489
            The Seed......................................490
            Uniformly Distributed Random Numbers.................491
            Visualizing the Distribution..........................492
            Vectorized Drawing of Random Numbers.................493
            Computing the Mean and Standard Deviation..............494
            The Gaussian or Normal Distribution....................496
        Drawing Integers.....................................497
            Random Integer Functions...........................498
            Example: Throwing a Die...........................498
            Drawing a Random Element from a List..................501
            Example: Drawing Cards from a Deck...................502
            Example: Class Implementation of a Deck................504
        Computing Probabilities................................507
            Principles of Monte Carlo Simulation....................507
            Example: Throwing Dice............................508
            Example: Drawing Balls from a Hat.....................511
            Random Mutations of Genes..........................513
            Example: Policies for Limiting Population Growth...........519
        Simple Games.......................................522
            Guessing a Number...............................522
            Rolling Two Dice.................................523
        Monte Carlo Integration................................526
            Derivation of Monte Carlo Integration...................526
            Implementation of Standard Monte Carlo Integration.........528
            Area Computing by Throwing Random Points..............531
        Random Walk in One Space Dimension......................534
            Basic Implementation..............................534
            Visualization....................................535
            Random Walk as a Difference Equation..................536
            Computing Statistics of the Particle Positions..............536
            Vectorized Implementation..........................537
        Random Walk in Two Space Dimensions.....................539
            Basic Implementation..............................539
            Vectorized Implementation..........................541
        Summary..........................................542
            Chapter Topics..................................542
            Example: Random Growth...........................544
        Exercises..........................................549
    Object-Oriented Programming..............................567
        Inheritance and Class Hierarchies..........................567
            A Class for Straight Lines...........................568
            A First Try on a Class for Parabolas.....................569
            A Class for Parabolas Using Inheritance..................569
            Checking the Class Type............................571
            Attribute vs Inheritance: has-a vs is-a Relationship...........572
            Superclass for Defining an Interface.....................574
        Class Hierarchy for Numerical Differentiation..................576
            Classes for Differentiation...........................577
            Verification.....................................579
            A flexible Main Program............................581
            Extensions.....................................582
            Alternative Implementation via Functions.................585
            Alternative Implementation via Functional Programming . 586
            Alternative Implementation via a Single Class..............587
        Class Hierarchy for Numerical Integration....................589
            Numerical Integration Methods........................589
            Classes for Integration..............................590
            Verification.....................................594
            Using the Class Hierarchy...........................595
            About Object-Oriented Programming....................597
        Class Hierarchy for Making Drawings.......................599
            Using the Object Collection..........................600
            Example of Classes for Geometric Objects................609
            Adding Functionality via Recursion.....................614
            Scaling, Translating, and Rotating a Figure................618
        Classes for DNA Analysis...............................620
            Class for Regions.................................620
            Class for Genes..................................621
            Subclasses......................................626
        Summary..........................................627
            Chapter Topics...................................627
            Example: Input Data Reader..........................629
        Exercises..........................................635

    Sequences and Difference Equations..........................645
        Mathematical Models Based on Difference Equations.............646
            Interest Rates....................................647
            The Factorial as a Difference Equation...................649
            Fibonacci Numbers................................650
            Growth of a Population.............................651
            Logistic Growth..................................652
            Payback of a Loan................................654
            The Integral as a Difference Equation....................655
            Taylor Series as a Difference Equation...................657
            Making a Living from a Fortune.......................658
            Newton’s Method.................................659
            The Inverse of a Function............................663
        Programming with Sound...............................665
            Writing Sound to File..............................666
            Reading Sound from File............................667
            Playing Many Notes...............................667
            Music of a Sequence...............................668
        Exercises..........................................671
    Introduction to Discrete Calculus.............................683
        Discrete Functions....................................683
            The Sine Function................................684
            Interpolation....................................685
            Evaluating the Approximation........................686
            Generalization...................................687
        Differentiation Becomes Finite Differences....................688
            Differentiating the Sine Function.......................689
            Differences on a Mesh..............................690
            Generalization...................................692
        Integration Becomes Summation...........................693
            Dividing into Subintervals...........................693
            Integration on Subintervals...........................695
            Adding the Subintervals.............................696
            Generalization...................................697
        Taylor Series........................................699
            Approximating Functions Close to One Point...............699
            Approximating the Exponential Function.................699
            More Accurate Expansions...........................700
            Accuracy of the Approximation.......................702
            Derivatives Revisited..............................704
            More Accurate Difference Approximations................705
            Second-Order Derivatives...........................707
        Exercises..........................................709
    Introduction to differential equations..........................715
        The simplest case.....................................716
        Exponential Growth...................................718
        Logistic Growth......................................723
        A Simple Pendulum...................................724
        A Model for the Spreading of a Disease......................727
        Exercises..........................................729
    A Complete Differential Equation Project.......................731
        About the Problem: Motion and Forces in Physics...............731
            The Physical Problem..............................731
            The Computational Algorithm........................733
            Derivation of the Mathematical Model...................734
            Derivation of the Algorithm..........................736
        Program Development and Testing.........................737
            Implementation..................................737
            Callback Functionality.............................740
            Making a Module.................................742
            Verification.....................................743
        Visualization........................................746
            Simultaneous Computation and Plotting..................746
            Some Applications................................748
            Remark on Choosing L1t............................749
            Comparing Several Quantities in Subplots.................750
            Comparing Approximate and Exact Solutions..............751
            Evolution of the Error as L1t Decreases..................752
        Exercises..........................................755
    Programming of Differential Equations........................757
        Scalar Ordinary Differential Equations.......................758
            Examples on Right-Hand-Side Functions.................758
            The Forward Euler Scheme..........................759
            Function Implementation............................760
            Verifying the Implementation.........................761
            From Discrete to Continuous Solution...................763
            Switching Numerical Method.........................764
            Class Implementation..............................764
            Logistic Growth via a Function-Based Approach............769
            Logistic Growth via a Class-Based Approach..............769
        Systems of Ordinary Differential Equations...................772
            Mathematical Problem.............................773
            Example of a System of ODEs........................774
            Function Implementation............................775
            Class Implementation..............................777
        The ODESolver Class Hierarchy...........................779

	

E.3.1 Numerical Methods  . . . . . . . . . . . . . . . . . . . . . . . .
	

779

E.3.2 Construction of a Solver Hierarchy . . . . . . . . . . . . . . .
	

780

E.3.3 The Backward Euler Method . . . . . . . . . . . . . . . . . . .
	

783

E.3.4 Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	

785

E.3.5 Example: Exponential Decay . . . . . . . . . . . . . . . . . . .
	

787

E.3.6 Example: The Logistic Equation with Problem and Solver
	

Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	

789

E.3.7 Example: An Oscillating System . . . . . . . . . . . . . . . .
	

797

E.3.8 Application 4: The Trajectory of a Ball . . . . . . . . . . . .
	

799

E.3.9 Further Developments of ODESolver . . . . . . . . . . . . . .
	

801

E.4
	

Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	

802

    Debugging.............................................835
        Using a Debugger....................................835
        How to Debug.......................................838
            A Recipe for Program Writing and Debugging..............838
            Application of the Recipe............................841
            Getting Help from a Code Analyzer.....................853

G Migrating Python to Compiled Code . . . . . . . . . . . . . . . . . . . . .
	

857

G.1  Pure Python Code for Monte Carlo Simulation . . . . . . . . . . . .
	

857

G.1.1 The Computational Problem . . . . . . . . . . . . . . . . . . .
	

858

G.1.2 A Scalar Python Implementation . . . . . . . . . . . . . . . .
	

858

G.1.3 A Vectorized Python Implementation . . . . . . . . . . . . . .
	

859

G.2  Migrating Scalar Python Code to Cython . . . . . . . . . . . . . . . .
	

860

G.2.1 A Plain Cython Implementation . . . . . . . . . . . . . . . . .
	

860

G.2.2 A Better Cython Implementation . . . . . . . . . . . . . . . .
	

863

G.3  Migrating Code to C . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	

865

G.3.1 Writing a C Program . . . . . . . . . . . . . . . . . . . . . . . .
	

865

G.3.2 Migrating Loops to C Code via F2PY . . . . . . . . . . . . .
	

866

G.3.3 Migrating Loops to C Code via Cython . . . . . . . . . . . .
	

867

G.3.4 Comparing Efficiency . . . . . . . . . . . . . . . . . . . . . . .
	

868

H
	

Technical Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	

871
	

H.1  Getting Access to Python  . . . . . . . . . . . . . . . . . . . . . . . . .
	

871
	

H.1.1 Required Software . . . . . . . . . . . . . . . . . . . . . . . . .
	

871
	

H.1.2 Installing Software on Your Laptop: Mac OS X and

Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	

872
	

H.1.3 Anaconda and Spyder . . . . . . . . . . . . . . . . . . . . . . .
	

873
	

H.1.4 VMWare Fusion Virtual Machine . . . . . . . . . . . . . . . .
	

874
	

H.1.5 Dual Boot on Windows . . . . . . . . . . . . . . . . . . . . . .
	

877
	

H.1.6 Vagrant Virtual Machine  . . . . . . . . . . . . . . . . . . . . .
	

877
	

H.2  How to Write and Run a Python Program  . . . . . . . . . . . . . . .
	

878
	

H.2.1 The Need for a Text Editor . . . . . . . . . . . . . . . . . . . .
	

878
	

H.2.2 Terminal Windows . . . . . . . . . . . . . . . . . . . . . . . . .
	

880
	

H.3 The SageMathCloud and Wakari Web Services . . . . . . . . . . . .
	

880
	

H.3.1 Basic Intro to SageMathCloud . . . . . . . . . . . . . . . . . .
	

880
	

H.3.2 Basic Intro to Wakari . . . . . . . . . . . . . . . . . . . . . . . .
	

881

H.3.3 Installing Your Own Python Packages...............881

    Writing IPython Notebooks..............................882
        A Simple Program in the Notebook.....................882
        Mixing Text, Mathematics, Code, and Graphics.............882
    Different Ways of Running Python Programs..................884
        Executing Python Programs in iPython...................884
        Executing Python Programs in Unix.....................884
        Executing Python Programs in Windows..................885
        Executing Python Programs in Mac OS X.................887
        Making a Complete Stand-Alone Executable...............887
    Doing Operating System Tasks in Python.....................888
    Variable Number of Function Arguments.....................891
        Variable Number of Positional Arguments................891
        Variable Number of Keyword Arguments.................894
    Evaluating Program Efficiency............................896
        Making Time Measurements.........................896
        Profiling Python Programs...........................898
    Software Testing.....................................899
        Requirements of the Test Function......................900
        Writing the Test Function; Precomputed Data..............900
        Writing the Test Function; Exact Numerical Solution.........901
        Testing of Function Robustness........................902
        Automatic Execution of Tests.........................904

References.............................................907

Index................................................909

List of Exercises

Exercise 1.1: Compute 1+1...................................42

Exercise 1.2: Write a Hello World program........................43

Exercise 1.3: Derive and compute a formula........................43

Exercise 1.4: Convert from meters to British length units...............43

Exercise 1.5: Compute the mass of various substances.................43

Exercise 1.6: Compute the growth of money in a bank.................43

Exercise 1.7: Find error(s) in a program...........................43

Exercise 1.8: Type in program text..............................43

Exercise 1.9: Type in programs and debug them.....................44

Exercise 1.10: Evaluate a Gaussian function........................45

Exercise 1.11: Compute the air resistance on a football.................45

Exercise 1.12: How to cook the perfect egg........................46

Exercise 1.13: Derive the trajectory of a ball.......................46

Exercise 1.14: Find errors in the coding of formulas...................47

Exercise 1.15: Explain why a program does not work..................47

Exercise 1.16: Find errors in Python statements.....................48

Exercise 1.17: Find errors in the coding of a formula..................48

Exercise 1.18: Find errors in a program...........................49

Exercise 2.1: Make a Fahrenheit-Celsius conversion table...............82

Exercise 2.2: Generate an approximate Fahrenheit-Celsius conversion table . 82 Exercise 2.3: Work with a list  82

Exercise 2.4: Generate odd numbers.............................82

Exercise 2.5: Compute the sum of the first n integers..................82

Exercise 2.6: Compute energy levels in an atom.....................82

Exercise 2.7: Generate equally spaced coordinates....................83

Exercise 2.8: Make a table of values from a formula..................83

Exercise 2.9: Store values from a formula in lists....................83

Exercise 2.10: Simulate operations on lists by hand...................84

Exercise 2.11: Compute a mathematical sum.......................84

Exercise 2.12: Replace a while loop by a for loop....................84

Exercise 2.13: Simulate a program by hand........................85

Exercise 2.14: Explore Python documentation......................85

Exercise 2.15: Index a nested list...............................85

Exercise 2.16: Store data in lists................................86

xxiii

Exercise 2.17: Store data in a nested list..........................86

Exercise 2.18: Values of boolean expressions.......................86

Exercise 2.19: Explore round-off errors from a large number of inverse

operations...................................87

Exercise 2.20: Explore what zero can be on a computer................87

Exercise 2.21: Compare two real numbers with a tolerance..............87

Exercise 2.22: Interpret a code.................................88

Exercise 2.23: Explore problems with inaccurate indentation.............88

Exercise 2.24: Explore punctuation in Python programs................89

Exercise 2.25: Investigate a for loop over a changing list...............89

Exercise 3.1: Implement a simple mathematical function...............127

Exercise 3.2: Implement a simple mathematical function with a parameter...127

Exercise 3.3: Explain how a program works.......................128

Exercise 3.4: Write a Fahrenheit-Celsius conversion functions...........128

Exercise 3.5: Write a test function for Exercise 3.4..................128

Exercise 3.6: Given a test function, write the function.................128

Exercise 3.7: Evaluate a sum and write a test function................129

Exercise 3.8: Write a function for solving ax2 bx c 0...........129

Exercise 3.9: Implement the sum function........................129

Exercise 3.10: Compute a polynomial via a product..................130

Exercise 3.11: Integrate a function by the Trapezoidal rule.............130

Exercise 3.12: Derive the general Midpoint integration rule.............131

Exercise 3.13: Make an adaptive Trapezoidal rule...................132

Exercise 3.14: Simulate a program by hand.......................133

Exercise 3.15: Debug a given test function........................134

Exercise 3.16: Compute the area of an arbitrary triangle...............134

Exercise 3.17: Compute the length of a path.......................135

Exercise 3.18: Approximate n................................135

Exercise 3.19: Compute the area of a polygon......................135

Exercise 3.20: Write functions................................136

Exercise 3.21: Approximate a function by a sum of sines..............136

Exercise 3.22: Implement a Gaussian function.....................137

Exercise 3.23: Wrap a formula in a function.......................137

Exercise 3.24: Write a function for numerical differentiation............137

Exercise 3.25: Implement the factorial function.....................137

Exercise 3.26: Compute velocity and acceleration from 1D position data....138

Exercise 3.27: Find the max and min values of a function..............138

Exercise 3.28: Find the max and min elements in a list................139

Exercise 3.29: Implement the Heaviside function....................139

Exercise 3.30: Implement a smoothed Heaviside function..............139

Exercise 3.31: Implement an indicator function.....................140

Exercise 3.32: Implement a piecewise constant function...............140

Exercise 3.33: Apply indicator functions.........................141

Exercise 3.34: Test your understanding of branching.................141

Exercise 3.35: Simulate nested loops by hand......................141

Exercise 3.36: Rewrite a mathematical function.....................142

Exercise 3.37: Make a table for approximations of cos x...............142

Exercise 3.38: Use None in keyword arguments....................143

Exercise 3.39: Write a sort function for a list of 4-tuples...............143

Exercise 3.40: Find prime numbers.............................145

Exercise 3.41: Find pairs of characters...........................145

Exercise 3.42: Count substrings...............................145

Exercise 3.43: Resolve a problem with a function...................145

Exercise 3.44: Determine the types of some objects..................146

Exercise 3.45: Find an error in a program.........................146

Exercise 4.1: Make an interactive program........................216

Exercise 4.2: Read a number from the command line.................216

Exercise 4.3: Read a number from a file..........................216

Exercise 4.4: Read and write several numbers from and to file...........217

Exercise 4.5: Use exceptions to handle wrong input..................217

Exercise 4.6: Read input from the keyboard.......................217

Exercise 4.7: Read input from the command line....................217

Exercise 4.8: Try MSWord or LibreOffice to write a program...........218

Exercise 4.9: Prompt the user for input to a formula..................218

Exercise 4.10: Read parameters in a formula from the command line.......218

Exercise 4.11: Use exceptions to handle wrong input.................218

Exercise 4.12: Test validity of input data.........................219

Exercise 4.13: Raise an exception in case of wrong input..............219

Exercise 4.14: Evaluate a formula for data in a file...................219

Exercise 4.15: Write a function given its test function.................219

Exercise 4.16: Compute the distance it takes to stop a car..............220

Exercise 4.17: Look up calendar functionality......................221

Exercise 4.18: Use the StringFunction tool........................221

Exercise 4.19: Why we test for specific exception types...............221

Exercise 4.20: Make a complete module.........................221

Exercise 4.21: Organize a previous program as a module..............222

Exercise 4.22: Read options and values from the command line..........222

Exercise 4.23: Check if mathematical identities hold.................222

Exercise 4.24: Compute probabilities with the binomial distribution.......224

Exercise 4.25: Compute probabilities with the Poisson distribution........224

Exercise 5.1: Fill lists with function values........................313

Exercise 5.2: Fill arrays; loop version...........................313

Exercise 5.3: Fill arrays; vectorized version.......................313

Exercise 5.4: Plot a function.................................313

Exercise 5.5: Apply a function to a vector........................313

Exercise 5.6: Simulate by hand a vectorized expression...............313

Exercise 5.7: Demonstrate array slicing..........................314

Exercise 5.8: Replace list operations by array computing...............314

Exercise 5.9: Plot a formula..................................314

Exercise 5.10: Plot a formula for several parameters..................314

Exercise 5.11: Specify the extent of the axes in a plot.................314

Exercise 5.12: Plot exact and inexact Fahrenheit-Celsius conversion formulas 314

Exercise 5.13: Plot the trajectory of a ball.........................314

Exercise 5.14: Plot data in a two-column file......................315

Exercise 5.15: Write function data to file.........................315

Exercise 5.16: Plot data from a file.............................316

Exercise 5.17: Write table to file...............................316

Exercise 5.18: Fit a polynomial to data points......................317

Exercise 5.19: Fit a polynomial to experimental data.................318

Exercise 5.20: Read acceleration data and find velocities..............318

Exercise 5.21: Read acceleration data and plot velocities...............319

Exercise 5.22: Plot a trip’s path and velocity from GPS coordinates.......319

Exercise 5.23: Vectorize the Midpoint rule for integration..............320

Exercise 5.24: Vectorize a function for computing the area of a polygon....320

Exercise 5.25: Implement Lagrange’s interpolation formula.............321

Exercise 5.26: Plot Lagrange’s interpolating polynomial...............321

Exercise 5.27: Investigate the behavior of Lagrange’s interpolating polynomials 322 Exercise 5.28: Plot a wave packet  322

Exercise 5.29: Judge a plot..................................322

Exercise 5.30: Plot the viscosity of water.........................323

Exercise 5.31: Explore a complicated function graphically.............323

Exercise 5.32: Plot Taylor polynomial approximations to sin x...........323

Exercise 5.33: Animate a wave packet...........................324

Exercise 5.34: Animate a smoothed Heaviside function...............324

Exercise 5.35: Animate two-scale temperature variations..............324

Exercise 5.36: Use non-uniformly distributed coordinates for visualization...325

Exercise 5.37: Animate a sequence of approximations to n.............325

Exercise 5.38: Animate a planet’s orbit..........................325

Exercise 5.39: Animate the evolution of Taylor polynomials............326

Exercise 5.40: Plot the velocity profile for pipeflow..................327

Exercise 5.41: Plot sum-of-sines approximations to a function...........327

Exercise 5.42: Animate the evolution of a sum-of-sine approximation to

a function...................................327

Exercise 5.43: Plot functions from the command line.................328

Exercise 5.44: Improve command-line input.......................328

Exercise 5.45: Demonstrate energy concepts from physics..............328

Exercise 5.46: Plot a w-like function............................328

Exercise 5.47: Plot a piecewise constant function....................329

Exercise 5.48: Vectorize a piecewise constant function................329

Exercise 5.49: Visualize approximations in the Midpoint integration rule....329

Exercise 5.50: Visualize approximations in the Trapezoidal integration rule . 330 Exercise 5.51: Experience overflow in a function  330

Exercise 5.52: Apply a function to a rank 2 array....................331

Exercise 5.53: Explain why array computations fail..................331

Exercise 5.54: Verify linear algebra results........................331

Exercise 6.1: Make a dictionary from a table.......................402

Exercise 6.2: Explore syntax differences: lists vs. dicts................402

Exercise 6.3: Use string operations to improve a program..............403

Exercise 6.4: Interpret output from a program......................403

Exercise 6.5: Make a dictionary...............................403

Exercise 6.6: Make a nested dictionary..........................404

Exercise 6.7: Make a nested dictionary from a file...................404

Exercise 6.8: Make a nested dictionary from a file...................404

Exercise 6.9: Compute the area of a triangle.......................405

Exercise 6.10: Compare data structures for polynomials...............405

Exercise 6.11: Compute the derivative of a polynomial................405

Exercise 6.12: Specify functions on the command line................405

Exercise 6.13: Interpret function specifications.....................406

Exercise 6.14: Compare average temperatures in cities................407

Exercise 6.15: Generate an HTML report with figures................407

Exercise 6.16: Allow different types for a function argument............408

Exercise 6.17: Make a function more robust.......................408

Exercise 6.18: Find proportion of bases inside/outside exons............408

Exercise 7.1: Make a function class.............................470

Exercise 7.2: Add a data attribute to a class.......................471

Exercise 7.3: Add functionality to a class.........................471

Exercise 7.4: Make classes for a rectangle and a triangle...............471

Exercise 7.5: Make a class for quadratic functions...................472

Exercise 7.6: Make a class for straight lines.......................472

Exercise 7.7: Flexible handling of function arguments................472

Exercise 7.8: Wrap functions in a class..........................473

Exercise 7.9: Flexible handling of function arguments................473

Exercise 7.10: Deduce a class implementation......................474

Exercise 7.11: Implement special methods in a class.................474

Exercise 7.12: Make a class for summation of series..................474

Exercise 7.13: Apply a numerical differentiation class................475

Exercise 7.14: Implement an addition operator.....................475

Exercise 7.15: Implement in-place += and -= operators................476

Exercise 7.16: Implement a class for numerical differentiation...........476

Exercise 7.17: Examine a program.............................477

Exercise 7.18: Modify a class for numerical differentiation.............477

Exercise 7.19: Make a class for the Heaviside function................478

Exercise 7.20: Make a class for the indicator function.................478

Exercise 7.21: Make a class for piecewise constant functions............479

Exercise 7.22: Speed up repeated integral calculations................479

Exercise 7.23: Apply a class for polynomials......................480

Exercise 7.24: Find a bug in a class for polynomials..................480

Exercise 7.25: Implement subtraction of polynomials.................480

Exercise 7.26: Test the functionality of pretty print of polynomials........480

Exercise 7.27: Vectorize a class for polynomials....................481

Exercise 7.28: Use a dict to hold polynomial coefficients..............481

Exercise 7.29: Extend class Vec2D to work with lists/tuples............482

Exercise 7.30: Extend class Vec2D to 3D vectors...................483

Exercise 7.31: Use NumPy arrays in class Vec2D...................483

Exercise 7.32: Impreciseness of interval arithmetics..................484

Exercise 7.33: Make classes for students and courses.................484

Exercise 7.34: Find local and global extrema of a function..............484

Exercise 7.35: Find the optimal production for a company..............485

Exercise 8.1: Flip a coin times................................549

Exercise 8.2: Compute a probability............................550

Exercise 8.3: Choose random colors............................550

Exercise 8.4: Draw balls from a hat.............................550

Exercise 8.5: Computing probabilities of rolling dice.................550

Exercise 8.6: Estimate the probability in a dice game.................550

Exercise 8.7: Compute the probability of hands of cards...............551

Exercise 8.8: Decide if a dice game is fair........................551

Exercise 8.9: Adjust a game to make it fair........................551

Exercise 8.10: Make a test function for Monte Carlo simulation..........551

Exercise 8.11: Generalize a game..............................551

Exercise 8.12: Compare two playing strategies.....................552

Exercise 8.13: Investigate strategies in a game.....................552

Exercise 8.14: Investigate the winning chances of some games...........552

Exercise 8.15: Compute probabilities of throwing two dice.............553

Exercise 8.16: Vectorize flipping a coin..........................553

Exercise 8.17: Vectorize a probablility computation..................553

Exercise 8.18: Throw dice and compute a small probability.............553

Exercise 8.19: Is democracy reliable as a decision maker?..............553

Exercise 8.20: Difference equation for random numbers...............555

Exercise 8.21: Make a class for drawing balls from a hat...............555

Exercise 8.22: Independent versus dependent random numbers..........555

Exercise 8.23: Compute the probability of flipping a coin..............556

Exercise 8.24: Simulate binomial experiments......................557

Exercise 8.25: Simulate a poker game...........................557

Exercise 8.26: Estimate growth in a simulation model................557

Exercise 8.27: Investigate guessing strategies......................557

Exercise 8.28: Vectorize a dice game...........................558

Exercise 8.29: Compute n by a Monte Carlo method.................558

Exercise 8.30: Compute n by a Monte Carlo method.................558

Exercise 8.31: Compute n by a random sum.......................558

Exercise 8.32: 1D random walk with drift........................558

Exercise 8.33: 1D random walk until a point is hit...................558

Exercise 8.34: Simulate making a fortune from gaming................559

Exercise 8.35: Simulate pollen movements as a 2D random walk.........559

Exercise 8.36: Make classes for 2D random walk....................559

Exercise 8.37: 2D random walk with walls; scalar version..............560

Exercise 8.38: 2D random walk with walls; vectorized version...........560

Exercise 8.39: Simulate mixing of gas molecules....................561

Exercise 8.40: Simulate slow mixing of gas molecules................561

Exercise 8.41: Guess beer brands..............................561

Exercise 8.42: Simulate stock prices............................562

Exercise 8.43: Compute with option prices in finance.................562

Exercise 8.44: Differentiate noise measurements....................563

Exercise 8.45: Differentiate noisy signals.........................564

Exercise 8.46: Model noise in a time signal.......................565

Exercise 8.47: Speed up Markov chain mutation....................566

Exercise 9.1: Demonstrate the magic of inheritance..................635

Exercise 9.2: Make polynomial subclasses of parabolas...............635

Exercise 9.3: Implement a class for a function as a subclass.............636

Exercise 9.4: Create an alternative class hierarchy for polynomials........636

Exercise 9.5: Make circle a subclass of an ellipse....................636

Exercise 9.6: Make super- and subclass for a point...................636

Exercise 9.7: Modify a function class by subclassing.................637

Exercise 9.8: Explore the accuracy of difference formulas..............637

Exercise 9.9: Implement a subclass.............................637

Exercise 9.10: Make classes for numerical differentiation..............638

Exercise 9.11: Implement a new subclass for differentiation............638

Exercise 9.12: Understand if a class can be used recursively............638

Exercise 9.13: Represent people by a class hierarchy.................638

Exercise 9.14: Add a new class in a class hierarchy..................639

Exercise 9.15: Compute convergence rates of numerical integration methods . 640 Exercise 9.16: Add common functionality in a class hierarchy  641

Exercise 9.17: Make a class hierarchy for root finding................641

Exercise 9.18: Make a calculus calculator class.....................641

Exercise 9.19: Compute inverse functions........................642

Exercise 9.20: Make line drawing of a person; program...............643

Exercise 9.21: Make line drawing of a person; class..................643

Exercise 9.22: Animate a person with waving hands..................643

Exercise A.1: Determine the limit of a sequence....................671

Exercise A.2: Compute n via sequences..........................672

Exercise A.3: Reduce memory usage of difference equations............672

Exercise A.4: Compute the development of a loan...................672

Exercise A.5: Solve a system of difference equations.................672

Exercise A.6: Modify a model for fortune development...............672

Exercise A.7: Change index in a difference equation.................673

Exercise A.8: Construct time points from dates.....................673

Exercise A.9: Visualize the convergence of Newton’s method...........674

Exercise A.10: Implement the secant method......................674

Exercise A.11: Test different methods for root finding................675

Exercise A.12: Make difference equations for the Midpoint rule..........675

Exercise A.13: Compute the arc length of a curve...................675

Exercise A.14: Find difference equations for computing sin x............676

Exercise A.15: Find difference equations for computing cos x...........677

Exercise A.16: Make a guitar-like sound.........................677

Exercise A.17: Damp the bass in a sound file......................677

Exercise A.18: Damp the treble in a sound file.....................678

Exercise A.19: Demonstrate oscillatory solutions of the logistic equation....678

Exercise A.20: Automate computer experiments....................679

Exercise A.21: Generate an HTML report........................679

Exercise A.22: Use a class to archive and report experiments............680

Exercise A.23: Explore logistic growth interactively.................681

Exercise A.24: Simulate the price of wheat........................681

Exercise B.1: Interpolate a discrete function.......................709

Exercise B.2: Study a function for different parameter values............710

Exercise B.3: Study a function and its derivative....................710

Exercise B.4: Use the Trapezoidal method........................711

Exercise B.5: Compute a sequence of integrals.....................711

Exercise B.6: Use the Trapezoidal method........................712

Exercise B.7: Compute trigonometric integrals.....................712

Exercise B.8: Plot functions and their derivatives....................713

Exercise B.9: Use the Trapezoidal method........................714

Exercise C.1: Solve a nonhomogeneous linear ODE..................729

Exercise C.2: Solve a nonlinear ODE...........................729

Exercise C.3: Solve an ODE for y.x/............................729

Exercise C.4: Experience instability of an ODE.....................730

Exercise C.5: Solve an ODE with time-varying growth................730

Exercise D.1: Model sudden movements of the plate.................755

Exercise D.2: Write a callback function..........................756

Exercise D.3: Improve input to the simulation program................756

Exercise E.1: Solve a simple ODE with function-based code............802

Exercise E.2: Solve a simple ODE with class-based code..............802

Exercise E.3: Solve a simple ODE with the ODEsolver hierarchy.........802

Exercise E.4: Solve an ODE specified on the command line............802

Exercise E.5: Implement a numerical method for ODEs...............803

Exercise E.6: Solve an ODE for emptying a tank....................803

Exercise E.7: Solve an ODE for the arc length.....................804

Exercise E.8: Simulate a falling or rising body in a fluid...............804

Exercise E.9: Verify the limit of a solution as time grows..............805

Exercise E.10: Scale the logistic equation.........................806

Exercise E.11: Compute logistic growth with time-varying carrying capacity . 806 Exercise E.12: Solve an ODE until constant solution  807

Exercise E.13: Use a problem class to hold data about an ODE...........807

Exercise E.14: Derive and solve a scaled ODE problem...............808

Exercise E.15: Clean up a file to make it a module...................809

Exercise E.16: Simulate radioactive decay........................809

Exercise E.17: Compute inverse functions by solving an ODE...........809

Exercise E.18: Make a class for computing inverse functions............810

Exercise E.19: Add functionality to a class........................810

Exercise E.20: Compute inverse functions by interpolation.............811

Exercise E.21: Code the 4th-order Runge-Kutta method; function.........811

Exercise E.22: Code the 4th-order Runge-Kutta method; class...........811

Exercise E.23: Compare ODE methods..........................811

Exercise E.24: Code a test function for systems of ODEs..............812

Exercise E.25: Code Heun’s method for ODE systems; function..........812

Exercise E.26: Code Heun’s method for ODE systems; class............812

Exercise E.27: Implement and test the Leapfrog method...............812

Exercise E.28: Implement and test an Adams-Bashforth method..........813

Exercise E.29: Solve two coupled ODEs for radioactive decay...........813

Exercise E.30: Implement a 2nd-order Runge-Kutta method; function......813

Exercise E.31: Implement a 2nd-order Runge-Kutta method; class........813

Exercise E.32: Code the iterated midpoint method; function............814

Exercise E.33: Code the iterated midpoint method; class...............814

Exercise E.34: Make a subclass for the iterated midpoint method.........815

Exercise E.35: Compare the accuracy of various methods for ODEs.......815

Exercise E.36: Animate how various methods for ODEs converge........815

Exercise E.37: Study convergence of numerical methods for ODEs........815

Exercise E.38: Find a body’s position along with its velocity............816

Exercise E.39: Add the effect of air resistance on a ball................816

Exercise E.40: Solve an ODE system for an electric circuit.............817

Exercise E.41: Simulate the spreading of a disease by a SIR model........817

Exercise E.42: Introduce problem and solver classes in the SIR model......819

Exercise E.43: Introduce vaccination in a SIR model.................820

Exercise E.44: Introduce a vaccination campaign in a SIR model.........820

Exercise E.45: Find an optimal vaccination period...................821

Exercise E.46: Simulate human-zombie interaction..................821

Exercise E.47: Simulate a zombie movie.........................823

Exercise E.48: Simulate a war on zombies........................824

Exercise E.49: Explore predator-prey population interactions............824

Exercise E.50: Formulate a 2nd-order ODE as a system...............825

imageExercise E.51: Solve u u 0...............................826

Exercise E.52: Make a tool for analyzing oscillatory solutions...........826

Exercise E.53: Implement problem, solver, and visualizer classes.........827

Exercise E.54: Use classes for flexible choices of models..............831

Exercise E.55: Apply software for oscillating systems................831

Exercise E.56: Model the economy of fishing......................832




نظرات کاربران