BEGINNING MATHEMATICA PROGRAMMING FOR CSE/MATH 467

Size: px
Start display at page:

Download "BEGINNING MATHEMATICA PROGRAMMING FOR CSE/MATH 467"

Transcription

1 BEGINNING MATHEMATICA PROGRAMMING FOR CSE/MATH 467 W. DALE BROWNAWELL 1. BEGINNING A MATHEMATICA SESSION 1.1. Using Mathematica s Graphical Interface. On a workstation with Mathematica installed, you can start a Mathematica Xsession after logging on simply by entering the following command at an xterm prompt: mathematica & There IS a lot of help on-line when you use this interface. Many people like the many features of Mathematica s notebooks. I had some flaky response years ago and do not use them, preferring the solid (clunky?) Emacs interface Using the Emacs Interface. In Emacs (my favorite editor), you can open Mathematica by simply typing Esc -x math. This requires making emacs aware of Mathematica, which you can do yourself by via the files found at or, as I did, mccann/mathematica.el. This is especially helpful if you are already an experienced command-line Emacs user and want to run Mathematica remotely without the overhead penalty of a GUI over the internet. Then you enter emacs -nw to open a non-graphics version of Emacs Falling into a Terminal State. If you start Mathematica from a command line with the command math, you will have only a command-line, non-graphics, version. My advice: Don t do it this way, as you lose the ability to cut and paste; it is very cumbersome to not be able to edit input easily or to enter output.. 2. WRITING AND ENTERING PROGRAMS 2.1. Writing Mathematica Programs. Mathematica programs are best stored in files with names like: gcd.m. These files are plain ascii files created by your texteditor and saved by you. You may store several, indeed all, your functions in one file. Date: 21 August,

2 2 W. DALE BROWNAWELL 2.2. Loading Mathematica Programs. The programs we will write are actually all definitions of functions which take the input, usually numbers or vectors (lists) of numbers, and produce some output, again usually numbers or vectors of numbers, using various other functions, some of which we have to define as well. The functions in a file are made available to you in a Mathematica session by loading the file at the Mathematica prompt as in In[1]:= << gcd.m These functions then remain available to you during the whole session. So it is important to have distinct names for distinct functions. When working with Mathematica under Emacs, you need to enter commands or load files using Esc - Return, not simply Return. If you load a file under Emacs and a syntax error is reported, you can go to the error by typing Ctrl -c Ctrl -e, provided you have started Emacs in the directory which contains your Mathematica files. Emacs also offers rudimentary syntax checking as you type, the ability to copy previous cells, complete Mathematica symbols, help with Mathematica symbols, and a few more things Local Variables in Mathematica. Because Mathematica remembers anything already used or defined in a session, you need to keep dummy variables involved in defining functions free from the influence of any previous use of the variables. This is done by using local variables in Modules. In the following example, x,y,t are the local variables: gcd.m gcd[m,n ] := Module[{x=Abs[m],y=Abs[n],t}, While[y!= 0, t = y; y = Mod[x,y]; x = t ]; Return[x] ] Notice the following features: Parentheses ( ) are used for grouping mathematical expressions, braces { } are used for lists, and brackets [ ] are used for function evaluation. The values to be fed into the function are indicated in the definition by trailing underlines. These values are then used in the program via local variables.

3 BEGINNING MATHEMATICA PROGRAMMING FOR CSE/MATH The local variables are named in Module[{... }, which is also the place to initialize them (no underlines here). The punctuation of a Mathematica command is usually a comma or a semi-colon and often the opposite of C usage. 3. HELPFUL HINTS 3.1. Putting Several Functions into a Single File. It s often a good idea so you don t have to remember later what functions are used in the definition of a function you haven t seen in a couple of weeks. You can also organize your functions this way by grouping related functions together into a single.m file. The best reason is perhaps that then you don t have to enter all the.m files singly by hand at the Mathematica prompt! There is another way to keep all your.m files in one directory and still to allow functions to rely on other functions. If the definition being relied upon occurs in say, prelim.m, you simply include a line << prelim.m in your new function before the earlier function is evaluated. (Of course, punctuation such as a comma or semicolon may be necessary at the end of this line.) 3.2. Many Happy Returns. When Bressoud uses WRITE or PRINT, it is better for us to Return so the output can be used as input for another function if desired. However, for debugging purposes, you may want to use the Print function. See Section 2.8 of the Mathematica book for syntax: Print[ Here the value of x =,x] The use of Return can be subtle. It seems Return that will break out of the innermost construct only. Here is more information (than I want to digest): Getting Hardcopy. I prefer to run everything within Emacs, whence you can save copies of files and of sessions, as well as printing them without leaving the buffer. When you are in one of the Linux labs, you can print a file, say named myfile by entering lpr myfile. You can check on how much paper etc you have available on your account at: Bressoud 4. A SMALL PASCAL/REXX TO MATHEMATICA DICTIONARY Mathematica READ a,b := Module[{x=a,y=b},... WHILE b 0 DO While[y!= 0,..., ] temp b temp = b WRITE a Return[a]

4 4 W. DALE BROWNAWELL u 1 1, u 2 0, u 3 a u = {1,0,a} q u 3 /v 3 q = Floor[u[[3]]/v[[3]]] IF x = 0 THEN DO If[x==0,... IF x is even DO If[EvenQ[x],... IF b is odd THEN If[OddQ[b],... c a-b c = Abs[a-b] FOR i = 2 to n DO For[i=2, i<= n, i++;... ] FOR i = 2 to n DO a = Range[n] a i i f MOD d Mod[f,d] i i+1 i = i+1 or ++i AND && OR 5. ARRAYS TO THE FINISH Multiple outputs are often best collected and output as a single list, as for Algorithm 2.3 and Algorithm 2.4 (a list of pairs in the latter case), whose entries can then be utilized in further programs. Array[a,{m,n}] declares an m n matrix with entries which can be accessed as either a[[i,j]] or a[[i]][[j]]. Often you won t need to declare things very precisely in Mathematica; just declare (i.e. list) them as dummy variables and define them as you go. Since matrices in Mathematica are just lists of rows, the ith row of a can be accessed as a[[i]]. You can display the matrix a in matrix form by using MatrixForm[a]. An n n identity matrix can be created using IdentityMatrix[n]. The ith row of the matrix M can be used via M[[i]] or Part[M,i]. Lists can also avoid the need for function calls as in Algorithm Defining a list. Defining the entries of an array can be a bit confusing. See sections of the Mathematica manual on such things as Making List out of Functions, Transformation Rules, Array, List for details. Basically there are three families of ways of defining arrays (lists): Table and built-in functions. The commands Table[1, {k, 1, n}] and Table[h[i], {i, 1, n}] create vectors of length n. In the first case, all entries equal 1; in the second, entries are obtained by evaluating the function value h at the values i = 1, 2,..., n. So Range[n] is the same as Table[i,{i, 1, n}]. If you have set T = Table[0,{k,1,5}] and then T = Table[T,{k,1,7}], you will have defined a 5 7 matrix T with all entries equal to 0, because Mathematica thinks of a matrix as a list of lists.

5 BEGINNING MATHEMATICA PROGRAMMING FOR CSE/MATH Append. You can build up a list l recursively by naming it in Module[{ l = { },... },... and then, whenever you want to tack on a new element e at the end of l, set l = Append[l,e], and the entries can be accessed. Prepend and a host of commands such as Join, Union are also available. For example if l = {x,y}, then setting l = Append[l,e] gives l = {x,y,e}, and we can access entries, since l[[1]] = x, l[[2]] = y, l[[3]] = e Table and user-defined functions. Another way to build up a list is to define function values for a function, say h, by setting, e.g. h[i] = p in a loop and later making up an array with these values as entries, as in the command h = Table[ h[i], {i, j-1}]. Then the various terms, such as, h[[2]] have the same meaning (value) as their counterparts h[2] Common pitfalls. Once the array v has been defined, its jth entry can be re-defined by, e.g., v[[j]] = 2 + i. But the initial definition of a list apparently CAN- NOT be made this way! The Do command can be tricky. In order to return a value from it, you probably need to first exit the Do-loop and only then Return the value. The Mathematica manual puts it this way: The result of Do is Null. You may often find it easier to instead use the commands While or For A useful application. Length[list] returns the number of elements in the list named list. This might come in handy. say, when you have stored a list l consisting of pairs of primes and their exponents and want to reconstitute the corresponding product as p = 1; Do[p = p*(l[[i,1]]ˆl[[i,2]]), {i, 1, Length[l]}]. 6. INPUTTING OUTPUT FROM PREVIOUS SESSIONS If your program is too large to run in one session or you want to debug your package in sections, you can save intermediate output to a file, say myoutput.in in a form suitable (after editing away any extraneous lines the Mathematica session produced) for reading back into another session as input. One way to do this is to save your output in InputFormat by entering the following before starting the program that will generate the output: SetOptions["stdout", FormatType->InputForm] This makes sure that the output looks like aˆ2-2*a*b instead of the usual style for Mathematics output with exponents on a higher line and multiplication indicated by a space. That way you can easily edit the output to define, say, a matrix M. Then by entering << myoutput.in in a session, the matrix will be

6 6 W. DALE BROWNAWELL defined and available for your programs. On long jobs, you could even put the commands to load functions, read input, e.g myoutput.in, and evaluate the functions into a script and run in the background. See [RM], pp , for example. For short jobs, it will not be worth the trouble. But sieving is an example of an important process which takes a long time, and you will not want to repeat it more often than is absolutely necessary. 7. REDUCED PRECISION FOR FASTER SIEVING In order to speed Mathematica up, you can suppress the infinite precision by, say, for each prime p setting lp = N[Log[p],5]. This truncates the precision to 5 decimal places. Then you can add l p to all the locations corresponding to the r for which r ±t p mod p, where t 2 p n mod p. 8. MATRIX REDUCTION For the quadratic sieve, you need to reduce a huge matrix, say m, modulo 2. Mathematica s built-in function for that is: RowReduce[m, Modulus -> 2] 9. DOCUMENTATION You are required to document, i.e. explain, your programs. You can do this by putting comments into your program, by beginning with (* and ending with *). Mathematica will ignore what lies in between. Or you can simply write (in English sentences, please) explanations neatly in the margin. 10. CORRECTIONS I would be thankful for any corrections or comments. Please send them to me at wdb@math.psu.edu. Note: Wolfram s book below is the standard reference, and it seems to be on permanent reserve in the Mathematics/Physics Library. There is now an on-line version at the Mathematica website: REFERENCES [1] R. Maeder, Programming in Mathematica, 3rd edition, Addison Wesley, Redwood City, Ca, [2] P. Wellin, R. Gaylord, and S. Kamin, An Introduction to Programming in Mathematica, Cambridge University Press, Cambridge, [3] S. Wolfram, Mathematica, Wolfram Media, 2003, Fifth Edition. [4] address: wdb@@math.psu.edu

BEGINNING PARI PROGRAMMING FOR CSE/MATH 467

BEGINNING PARI PROGRAMMING FOR CSE/MATH 467 BEGINNING PARI PROGRAMMING FOR CSE/MATH 467 W. DALE BROWNAWELL 1. INSTALLATION You can follow the instructions in the links for various platforms (including smartphones(!)) given by RosettaCode rosettacode.org/wiki/category:pari/gp,

More information

1 Introduction to Matlab

1 Introduction to Matlab 1 Introduction to Matlab 1. What is Matlab? Matlab is a computer program designed to do mathematics. You might think of it as a super-calculator. That is, once Matlab has been started, you can enter computations,

More information

MATLAB Demo. Preliminaries and Getting Started with Matlab

MATLAB Demo. Preliminaries and Getting Started with Matlab Math 250C Sakai submission Matlab Demo 1 Created by G. M. Wilson, revised 12/23/2015 Revised 09/05/2016 Revised 01/07/2017 MATLAB Demo In this lab, we will learn how to use the basic features of Matlab

More information

Variables and Typing

Variables and Typing Variables and Typing Christopher M. Harden Contents 1 The basic workflow 2 2 Variables 3 2.1 Declaring a variable........................ 3 2.2 Assigning to a variable...................... 4 2.3 Other

More information

CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch

CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch Purpose: We will take a look at programming this week using a language called Scratch. Scratch is a programming language that was developed

More information

Appendix A. Introduction to MATLAB. A.1 What Is MATLAB?

Appendix A. Introduction to MATLAB. A.1 What Is MATLAB? Appendix A Introduction to MATLAB A.1 What Is MATLAB? MATLAB is a technical computing environment developed by The Math- Works, Inc. for computation and data visualization. It is both an interactive system

More information

The Very Basics of the R Interpreter

The Very Basics of the R Interpreter Chapter 2 The Very Basics of the R Interpreter OK, the computer is fired up. We have R installed. It is time to get started. 1. Start R by double-clicking on the R desktop icon. 2. Alternatively, open

More information

CSE 230 Intermediate Programming in C and C++ Functions

CSE 230 Intermediate Programming in C and C++ Functions CSE 230 Intermediate Programming in C and C++ Functions Fall 2017 Stony Brook University Instructor: Shebuti Rayana shebuti.rayana@stonybrook.edu http://www3.cs.stonybrook.edu/~cse230/ Concept of Functions

More information

MATH (CRN 13695) Lab 1: Basics for Linear Algebra and Matlab

MATH (CRN 13695) Lab 1: Basics for Linear Algebra and Matlab MATH 495.3 (CRN 13695) Lab 1: Basics for Linear Algebra and Matlab Below is a screen similar to what you should see when you open Matlab. The command window is the large box to the right containing the

More information

Variables are used to store data (numbers, letters, etc) in MATLAB. There are a few rules that must be followed when creating variables in MATLAB:

Variables are used to store data (numbers, letters, etc) in MATLAB. There are a few rules that must be followed when creating variables in MATLAB: Contents VARIABLES... 1 Storing Numerical Data... 2 Limits on Numerical Data... 6 Storing Character Strings... 8 Logical Variables... 9 MATLAB S BUILT-IN VARIABLES AND FUNCTIONS... 9 GETTING HELP IN MATLAB...

More information

Ph3 Mathematica Homework: Week 1

Ph3 Mathematica Homework: Week 1 Ph3 Mathematica Homework: Week 1 Eric D. Black California Institute of Technology v1.1 1 Obtaining, installing, and starting Mathematica Exercise 1: If you don t already have Mathematica, download it and

More information

AMATH 352: MATLAB Tutorial written by Peter Blossey Department of Applied Mathematics University of Washington Seattle, WA

AMATH 352: MATLAB Tutorial written by Peter Blossey Department of Applied Mathematics University of Washington Seattle, WA AMATH 352: MATLAB Tutorial written by Peter Blossey Department of Applied Mathematics University of Washington Seattle, WA MATLAB (short for MATrix LABoratory) is a very useful piece of software for numerical

More information

Introduction to Matlab

Introduction to Matlab What is Matlab? Introduction to Matlab Matlab is software written by a company called The Mathworks (mathworks.com), and was first created in 1984 to be a nice front end to the numerical routines created

More information

Matlab- Command Window Operations, Scalars and Arrays

Matlab- Command Window Operations, Scalars and Arrays 1 ME313 Homework #1 Matlab- Command Window Operations, Scalars and Arrays Last Updated August 17 2012. Assignment: Read and complete the suggested commands. After completing the exercise, copy the contents

More information

CMSC 201 Fall 2016 Lab 09 Advanced Debugging

CMSC 201 Fall 2016 Lab 09 Advanced Debugging CMSC 201 Fall 2016 Lab 09 Advanced Debugging Assignment: Lab 09 Advanced Debugging Due Date: During discussion Value: 10 points Part 1: Introduction to Errors Throughout this semester, we have been working

More information

Experiment 1: Introduction to MATLAB I. Introduction. 1.1 Objectives and Expectations: 1.2 What is MATLAB?

Experiment 1: Introduction to MATLAB I. Introduction. 1.1 Objectives and Expectations: 1.2 What is MATLAB? Experiment 1: Introduction to MATLAB I Introduction MATLAB, which stands for Matrix Laboratory, is a very powerful program for performing numerical and symbolic calculations, and is widely used in science

More information

Matlab Introduction. Scalar Variables and Arithmetic Operators

Matlab Introduction. Scalar Variables and Arithmetic Operators Matlab Introduction Matlab is both a powerful computational environment and a programming language that easily handles matrix and complex arithmetic. It is a large software package that has many advanced

More information

Tips & Tricks for Microsoft Word

Tips & Tricks for Microsoft Word T 330 / 1 Discover Useful Hidden Features to Speed-up Your Work in Word For what should be a straightforward wordprocessing program, Microsoft Word has a staggering number of features. Many of these you

More information

APPM 2460 Matlab Basics

APPM 2460 Matlab Basics APPM 2460 Matlab Basics 1 Introduction In this lab we ll get acquainted with the basics of Matlab. This will be review if you ve done any sort of programming before; the goal here is to get everyone on

More information

Math 25 and Maple 3 + 4;

Math 25 and Maple 3 + 4; Math 25 and Maple This is a brief document describing how Maple can help you avoid some of the more tedious tasks involved in your Math 25 homework. It is by no means a comprehensive introduction to using

More information

Introduction to MATLAB

Introduction to MATLAB Introduction to MATLAB MATLAB stands for MATrix LABoratory. Originally written by Cleve Moler for college linear algebra courses, MATLAB has evolved into the premier software for linear algebra computations

More information

Getting Started with UNIX

Getting Started with UNIX Getting Started with UNIX What is UNIX? Boston University Information Services & Technology Course Number: 4000 Course Instructor: Kenny Burns Operating System Interface between a user and the computer

More information

Getting To Know Matlab

Getting To Know Matlab Getting To Know Matlab The following worksheets will introduce Matlab to the new user. Please, be sure you really know each step of the lab you performed, even if you are asking a friend who has a better

More information

Intro. Scheme Basics. scm> 5 5. scm>

Intro. Scheme Basics. scm> 5 5. scm> Intro Let s take some time to talk about LISP. It stands for LISt Processing a way of coding using only lists! It sounds pretty radical, and it is. There are lots of cool things to know about LISP; if

More information

Handout: Handy Computer Tools

Handout: Handy Computer Tools Handout: Handy Computer Tools T. Satogata: June 2011 USPAS Accelerator Physics June 13, 2011 This is a description of a few computational tools that I ve found to be very useful as a working physicist.

More information

Using the Zoo Workstations

Using the Zoo Workstations Using the Zoo Workstations Version 1.86: January 16, 2014 If you ve used Linux before, you can probably skip many of these instructions, but skim just in case. Please direct corrections and suggestions

More information

Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia

Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia The goal for this tutorial is to make sure that you understand a few key concepts related to programming, and that you know the basics

More information

MATLAB TUTORIAL WORKSHEET

MATLAB TUTORIAL WORKSHEET MATLAB TUTORIAL WORKSHEET What is MATLAB? Software package used for computation High-level programming language with easy to use interactive environment Access MATLAB at Tufts here: https://it.tufts.edu/sw-matlabstudent

More information

Java Programming Fundamentals - Day Instructor: Jason Yoon Website:

Java Programming Fundamentals - Day Instructor: Jason Yoon Website: Java Programming Fundamentals - Day 1 07.09.2016 Instructor: Jason Yoon Website: http://mryoon.weebly.com Quick Advice Before We Get Started Java is not the same as javascript! Don t get them confused

More information

, has the form T i1i 2 i m. = κ i1i 2 i m. x i1. 1 xi2 2 xim m (2)

, has the form T i1i 2 i m. = κ i1i 2 i m. x i1. 1 xi2 2 xim m (2) CS61B, Fall 2002 Project #1 P. N. Hilfinger Due: Friday, 4 October 2002 at 2400 This first project involves writing a calculator program that can perform polynomial arithmetic. We ll do only a very limited

More information

Tiny Instruction Manual for the Undergraduate Mathematics Unix Laboratory

Tiny Instruction Manual for the Undergraduate Mathematics Unix Laboratory Tiny Instruction Manual for the Undergraduate Mathematics Unix Laboratory 1 Logging In When you sit down at a terminal and jiggle the mouse to turn off the screen saver, you will be confronted with a window

More information

Teacher Activity: page 1/9 Mathematical Expressions in Microsoft Word

Teacher Activity: page 1/9 Mathematical Expressions in Microsoft Word Teacher Activity: page 1/9 Mathematical Expressions in Microsoft Word These instructions assume that you are familiar with using MS Word for ordinary word processing *. If you are not comfortable entering

More information

Introduction to Matlab

Introduction to Matlab Introduction to Matlab November 22, 2013 Contents 1 Introduction to Matlab 1 1.1 What is Matlab.................................. 1 1.2 Matlab versus Maple............................... 2 1.3 Getting

More information

Introduction to MATLAB

Introduction to MATLAB Introduction to MATLAB Introduction MATLAB is an interactive package for numerical analysis, matrix computation, control system design, and linear system analysis and design available on most CAEN platforms

More information

Creating accessible forms

Creating accessible forms Creating accessible forms Introduction Creating an accessible form can seem tricky. Some of the questions people commonly ask include: Can I use protected forms? How do I lay out my prompts and questions?

More information

Physics 306 Computing Lab 1: Hello, World!

Physics 306 Computing Lab 1: Hello, World! 1. Introduction Physics 306 Computing Lab 1: Hello, World! In today s lab, you will learn how to write simple programs, to compile them, and to run them. You will learn about input and output, variables,

More information

CS 177 Recitation. Week 1 Intro to Java

CS 177 Recitation. Week 1 Intro to Java CS 177 Recitation Week 1 Intro to Java Questions? Computers Computers can do really complex stuff. How? By manipulating data according to lists of instructions. Fundamentally, this is all that a computer

More information

Intro to Programming. Unit 7. What is Programming? What is Programming? Intro to Programming

Intro to Programming. Unit 7. What is Programming? What is Programming? Intro to Programming Intro to Programming Unit 7 Intro to Programming 1 What is Programming? 1. Programming Languages 2. Markup vs. Programming 1. Introduction 2. Print Statement 3. Strings 4. Types and Values 5. Math Externals

More information

Introduction to C Programming. What is a C program?

Introduction to C Programming. What is a C program? Introduction to C Programming Goals of this section Write a simple C program - Steps Write or develop code Compile Link Execute Add comments to C code 85-132 Introduction to C-Programming 2-1 What is a

More information

VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0. L J Howell UX Software Ver. 1.0

VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0. L J Howell UX Software Ver. 1.0 VISUAL GUIDE to RX Scripting for Roulette Xtreme - System Designer 2.0 L J Howell UX Software 2009 Ver. 1.0 TABLE OF CONTENTS INTRODUCTION...ii What is this book about?... iii How to use this book... iii

More information

Divisibility Rules and Their Explanations

Divisibility Rules and Their Explanations Divisibility Rules and Their Explanations Increase Your Number Sense These divisibility rules apply to determining the divisibility of a positive integer (1, 2, 3, ) by another positive integer or 0 (although

More information

Handout: Handy Computer Tools

Handout: Handy Computer Tools Handout: Handy Computer Tools T. Satogata: January 2017 USPAS Accelerator Physics January 2017 This is a description of a few computational tools that I ve found to be useful as a working physicist. This

More information

How to program with Matlab (PART 1/3)

How to program with Matlab (PART 1/3) Programming course 1 09/12/2013 Martin SZINTE How to program with Matlab (PART 1/3) Plan 0. Setup of Matlab. 1. Matlab: the software interface. - Command window - Command history - Section help - Current

More information

C++ Support Classes (Data and Variables)

C++ Support Classes (Data and Variables) C++ Support Classes (Data and Variables) School of Mathematics 2018 Today s lecture Topics: Computers and Programs; Syntax and Structure of a Program; Data and Variables; Aims: Understand the idea of programming

More information

Introduction to Matlab

Introduction to Matlab Introduction to Matlab What is Matlab The software program called Matlab (short for MATrix LABoratory) is arguably the world standard for engineering- mainly because of its ability to do very quick prototyping.

More information

Is the statement sufficient? If both x and y are odd, is xy odd? 1) xy 2 < 0. Odds & Evens. Positives & Negatives. Answer: Yes, xy is odd

Is the statement sufficient? If both x and y are odd, is xy odd? 1) xy 2 < 0. Odds & Evens. Positives & Negatives. Answer: Yes, xy is odd Is the statement sufficient? If both x and y are odd, is xy odd? Is x < 0? 1) xy 2 < 0 Positives & Negatives Answer: Yes, xy is odd Odd numbers can be represented as 2m + 1 or 2n + 1, where m and n are

More information

CS4023 Week04 Lab Exercise

CS4023 Week04 Lab Exercise CS4023 Week04 Lab Exercise Lab Objective: We will use this lab to log in to our Linux accounts and to look at some simple programs that perform a few elementary system calls. By the end of the lab we will

More information

MATLAB = MATrix LABoratory. Interactive system. Basic data element is an array that does not require dimensioning.

MATLAB = MATrix LABoratory. Interactive system. Basic data element is an array that does not require dimensioning. Introduction MATLAB = MATrix LABoratory Interactive system. Basic data element is an array that does not require dimensioning. Efficient computation of matrix and vector formulations (in terms of writing

More information

ELEC4042 Signal Processing 2 MATLAB Review (prepared by A/Prof Ambikairajah)

ELEC4042 Signal Processing 2 MATLAB Review (prepared by A/Prof Ambikairajah) Introduction ELEC4042 Signal Processing 2 MATLAB Review (prepared by A/Prof Ambikairajah) MATLAB is a powerful mathematical language that is used in most engineering companies today. Its strength lies

More information

SISG/SISMID Module 3

SISG/SISMID Module 3 SISG/SISMID Module 3 Introduction to R Ken Rice Tim Thornton University of Washington Seattle, July 2018 Introduction: Course Aims This is a first course in R. We aim to cover; Reading in, summarizing

More information

Introduction to the Emacs Editor

Introduction to the Emacs Editor Introduction to the Emacs Editor Scott D. Anderson Wellesley College Scott.Anderson@acm.org c Fall 2004 1 What is Emacs? Emacs is an editor: a program that allows you to modify files. Many of you have

More information

Mathworks (company that releases Matlab ) documentation website is:

Mathworks (company that releases Matlab ) documentation website is: 1 Getting Started The Mathematics Behind Biological Invasions Introduction to Matlab in UNIX Christina Cobbold and Tomas de Camino Beck as modified for UNIX by Fred Adler Logging in: This is what you do

More information

How to approach a computational problem

How to approach a computational problem How to approach a computational problem A lot of people find computer programming difficult, especially when they first get started with it. Sometimes the problems are problems specifically related to

More information

Lab 3a Using the vi editor

Lab 3a Using the vi editor Lab 3a Using the vi editor Objectives: Become familiar with the vi Editor Review the three vi Modes Review keystrokes to move between vi modes Create a new file with vi Editor Invoke vi with show mode

More information

EOSC 352 MATLAB Review

EOSC 352 MATLAB Review EOSC 352 MATLAB Review To use MATLAB, you can either (1) type commands in the window (i.e., at the command line ) or (2) type in the name of a file you have made, whose name ends in.m and which contains

More information

COPYRIGHTED MATERIAL. Starting Strong with Visual C# 2005 Express Edition

COPYRIGHTED MATERIAL. Starting Strong with Visual C# 2005 Express Edition 1 Starting Strong with Visual C# 2005 Express Edition Okay, so the title of this chapter may be a little over the top. But to be honest, the Visual C# 2005 Express Edition, from now on referred to as C#

More information

TOPIC 2 INTRODUCTION TO JAVA AND DR JAVA

TOPIC 2 INTRODUCTION TO JAVA AND DR JAVA 1 TOPIC 2 INTRODUCTION TO JAVA AND DR JAVA Notes adapted from Introduction to Computing and Programming with Java: A Multimedia Approach by M. Guzdial and B. Ericson, and instructor materials prepared

More information

Chapter 17. Fundamental Concepts Expressed in JavaScript

Chapter 17. Fundamental Concepts Expressed in JavaScript Chapter 17 Fundamental Concepts Expressed in JavaScript Learning Objectives Tell the difference between name, value, and variable List three basic data types and the rules for specifying them in a program

More information

Interactive MATLAB use. Often, many steps are needed. Automated data processing is common in Earth science! only good if problem is simple

Interactive MATLAB use. Often, many steps are needed. Automated data processing is common in Earth science! only good if problem is simple Chapter 2 Interactive MATLAB use only good if problem is simple Often, many steps are needed We also want to be able to automate repeated tasks Automated data processing is common in Earth science! Automated

More information

Class 1: Homework. Intro to Computer Science CSCI-UA.0101 New York University Courant Institute of Mathematical Sciences Fall 2017

Class 1: Homework. Intro to Computer Science CSCI-UA.0101 New York University Courant Institute of Mathematical Sciences Fall 2017 Intro to Computer Science CSCI-UA.0101 New York University Courant Institute of Mathematical Sciences Fall 2017 1 1. Please obtain a copy of Introduction to Java Programming, 11th (or 10th) Edition, Brief

More information

Math 2250 MATLAB TUTORIAL Fall 2005

Math 2250 MATLAB TUTORIAL Fall 2005 Math 2250 MATLAB TUTORIAL Fall 2005 Math Computer Lab The Mathematics Computer Lab is located in the T. Benny Rushing Mathematics Center (located underneath the plaza connecting JWB and LCB) room 155C.

More information

Lesson 6A Loops. By John B. Owen All rights reserved 2011, revised 2014

Lesson 6A Loops. By John B. Owen All rights reserved 2011, revised 2014 Lesson 6A Loops By John B. Owen All rights reserved 2011, revised 2014 Topic List Objectives Loop structure 4 parts Three loop styles Example of a while loop Example of a do while loop Comparison while

More information

Dr Richard Greenaway

Dr Richard Greenaway SCHOOL OF PHYSICS, ASTRONOMY & MATHEMATICS 4PAM1008 MATLAB 2 Basic MATLAB Operation Dr Richard Greenaway 2 Basic MATLAB Operation 2.1 Overview 2.1.1 The Command Line In this Workshop you will learn how

More information

S206E Lecture 19, 5/24/2016, Python an overview

S206E Lecture 19, 5/24/2016, Python an overview S206E057 Spring 2016 Copyright 2016, Chiu-Shui Chan. All Rights Reserved. Global and local variables: differences between the two Global variable is usually declared at the start of the program, their

More information

CSE/NEUBEH 528 Homework 0: Introduction to Matlab

CSE/NEUBEH 528 Homework 0: Introduction to Matlab CSE/NEUBEH 528 Homework 0: Introduction to Matlab (Practice only: Do not turn in) Okay, let s begin! Open Matlab by double-clicking the Matlab icon (on MS Windows systems) or typing matlab at the prompt

More information

MATLAB COURSE FALL 2004 SESSION 1 GETTING STARTED. Christian Daude 1

MATLAB COURSE FALL 2004 SESSION 1 GETTING STARTED. Christian Daude 1 MATLAB COURSE FALL 2004 SESSION 1 GETTING STARTED Christian Daude 1 Introduction MATLAB is a software package designed to handle a broad range of mathematical needs one may encounter when doing scientific

More information

VARIABLES. Aim Understanding how computer programs store values, and how they are accessed and used in computer programs.

VARIABLES. Aim Understanding how computer programs store values, and how they are accessed and used in computer programs. Lesson 2 VARIABLES Aim Understanding how computer programs store values, and how they are accessed and used in computer programs. WHAT ARE VARIABLES? When you input data (i.e. information) into a computer

More information

SCRATCH MODULE 3: NUMBER CONVERSIONS

SCRATCH MODULE 3: NUMBER CONVERSIONS SCRATCH MODULE 3: NUMBER CONVERSIONS INTRODUCTION The purpose of this module is to experiment with user interactions, error checking input, and number conversion algorithms in Scratch. We will be exploring

More information

Rule 1-3: Use white space to break a function into paragraphs. Rule 1-5: Avoid very long statements. Use multiple shorter statements instead.

Rule 1-3: Use white space to break a function into paragraphs. Rule 1-5: Avoid very long statements. Use multiple shorter statements instead. Chapter 9: Rules Chapter 1:Style and Program Organization Rule 1-1: Organize programs for readability, just as you would expect an author to organize a book. Rule 1-2: Divide each module up into a public

More information

CS1 Lecture 5 Jan. 25, 2019

CS1 Lecture 5 Jan. 25, 2019 CS1 Lecture 5 Jan. 25, 2019 HW1 due Monday, 9:00am. Notes: Do not write all the code at once before starting to test. Take tiny steps. Write a few lines test... add a line or two test... add another line

More information

Word: Print Address Labels Using Mail Merge

Word: Print Address Labels Using Mail Merge Word: Print Address Labels Using Mail Merge No Typing! The Quick and Easy Way to Print Sheets of Address Labels Here at PC Knowledge for Seniors we re often asked how to print sticky address labels in

More information

MINIMAT TUTORIAL Joel Robbin June 92

MINIMAT TUTORIAL Joel Robbin June 92 MINIMAT TUTORIAL Joel Robbin June 92 The purpose of this tutorial is to give you a feeling for how MINIMAT interacts with the user and what it can do. The tutorial is not intended to be a definitive account

More information

McTutorial: A MATLAB Tutorial

McTutorial: A MATLAB Tutorial McGill University School of Computer Science Sable Research Group McTutorial: A MATLAB Tutorial Lei Lopez Last updated: August 2014 w w w. s a b l e. m c g i l l. c a Contents 1 MATLAB BASICS 3 1.1 MATLAB

More information

Using Excel This is only a brief overview that highlights some of the useful points in a spreadsheet program.

Using Excel This is only a brief overview that highlights some of the useful points in a spreadsheet program. Using Excel 2007 This is only a brief overview that highlights some of the useful points in a spreadsheet program. 1. Input of data - Generally you should attempt to put the independent variable on the

More information

CONTENTS: What Is Programming? How a Computer Works Programming Languages Java Basics. COMP-202 Unit 1: Introduction

CONTENTS: What Is Programming? How a Computer Works Programming Languages Java Basics. COMP-202 Unit 1: Introduction CONTENTS: What Is Programming? How a Computer Works Programming Languages Java Basics COMP-202 Unit 1: Introduction Announcements Did you miss the first lecture? Come talk to me after class. If you want

More information

6.001 Notes: Section 17.5

6.001 Notes: Section 17.5 6.001 Notes: Section 17.5 Slide 17.5.1 Now, let's look at one example in which changing the evaluation model allows us to explore a very different kind of computational problem. Our goal is to show how

More information

Introduction to Matlab

Introduction to Matlab Introduction to Matlab Andreas C. Kapourani (Credit: Steve Renals & Iain Murray) 9 January 08 Introduction MATLAB is a programming language that grew out of the need to process matrices. It is used extensively

More information

Chapter 1 Operations With Numbers

Chapter 1 Operations With Numbers Chapter 1 Operations With Numbers Part I Negative Numbers You may already know what negative numbers are, but even if you don t, then you have probably seen them several times over the past few days. If

More information

MATLAB Programming for Numerical Computation Dr. Niket Kaisare Department Of Chemical Engineering Indian Institute of Technology, Madras

MATLAB Programming for Numerical Computation Dr. Niket Kaisare Department Of Chemical Engineering Indian Institute of Technology, Madras MATLAB Programming for Numerical Computation Dr. Niket Kaisare Department Of Chemical Engineering Indian Institute of Technology, Madras Module No. #01 Lecture No. #1.1 Introduction to MATLAB programming

More information

MATLAB Project: Getting Started with MATLAB

MATLAB Project: Getting Started with MATLAB Name Purpose: To learn to create matrices and use various MATLAB commands for reference later MATLAB built-in functions used: [ ] : ; + - * ^, size, help, format, eye, zeros, ones, diag, rand, round, cos,

More information

Database Use & Design

Database Use & Design Database Use & Design 1 Important Terms and Definitions Database A collection of information organized in such a way that a computer program can quickly select desired pieces of data. Field Form Primary

More information

Introduction to MATLAB

Introduction to MATLAB Introduction to MATLAB Introduction: MATLAB is a powerful high level scripting language that is optimized for mathematical analysis, simulation, and visualization. You can interactively solve problems

More information

Notebook Assignments

Notebook Assignments Notebook Assignments These six assignments are a notebook using techniques from class in the single concrete context of graph theory. This is supplemental to your usual assignments, and is designed for

More information

Full file at

Full file at Java Programming: From Problem Analysis to Program Design, 3 rd Edition 2-1 Chapter 2 Basic Elements of Java At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class

More information

ü 1.1 Getting Started

ü 1.1 Getting Started Chapter 1 Introduction Welcome to Mathematica! This tutorial manual is intended as a supplement to Rogawski's Calculus textbook and aimed at students looking to quickly learn Mathematica through examples.

More information

CME 193: Introduction to Scientific Python Lecture 1: Introduction

CME 193: Introduction to Scientific Python Lecture 1: Introduction CME 193: Introduction to Scientific Python Lecture 1: Introduction Nolan Skochdopole stanford.edu/class/cme193 1: Introduction 1-1 Contents Administration Introduction Basics Variables Control statements

More information

ECON 502 INTRODUCTION TO MATLAB Nov 9, 2007 TA: Murat Koyuncu

ECON 502 INTRODUCTION TO MATLAB Nov 9, 2007 TA: Murat Koyuncu ECON 502 INTRODUCTION TO MATLAB Nov 9, 2007 TA: Murat Koyuncu 0. What is MATLAB? 1 MATLAB stands for matrix laboratory and is one of the most popular software for numerical computation. MATLAB s basic

More information

These are notes for the third lecture; if statements and loops.

These are notes for the third lecture; if statements and loops. These are notes for the third lecture; if statements and loops. 1 Yeah, this is going to be the second slide in a lot of lectures. 2 - Dominant language for desktop application development - Most modern

More information

Excel Basics: Working with Spreadsheets

Excel Basics: Working with Spreadsheets Excel Basics: Working with Spreadsheets E 890 / 1 Unravel the Mysteries of Cells, Rows, Ranges, Formulas and More Spreadsheets are all about numbers: they help us keep track of figures and make calculations.

More information

Numerical Methods in Scientific Computation

Numerical Methods in Scientific Computation Numerical Methods in Scientific Computation Programming and Software Introduction to error analysis 1 Packages vs. Programming Packages MATLAB Excel Mathematica Maple Packages do the work for you Most

More information

1 Overview of the standard Matlab syntax

1 Overview of the standard Matlab syntax 1 Overview of the standard Matlab syntax Matlab is based on computations with matrices. All variables are matrices. Matrices are indexed from 1 (and NOT from 0 as in C!). Avoid using variable names i and

More information

Controls Structure for Repetition

Controls Structure for Repetition Controls Structure for Repetition So far we have looked at the if statement, a control structure that allows us to execute different pieces of code based on certain conditions. However, the true power

More information

Getting ready for L A TEX. Alexis Dimitriadis. Version: March 28, 2013

Getting ready for L A TEX. Alexis Dimitriadis. Version: March 28, 2013 Getting ready for L A TEX Alexis Dimitriadis Version: March 28, 2013 LaTeX is a great system, but it takes some work to learn. Unfortunately, it also takes some work to set up the necessary software. This

More information

Typesetting Tips. Put your best type forward.

Typesetting Tips. Put your best type forward. Typesetting Tips Put your best type forward. Do you want your audience to read your document? Improve your chances by making your article easy to read. Make the document difficult to read and To learn

More information

Introduction to Linux Environment. Yun-Wen Chen

Introduction to Linux Environment. Yun-Wen Chen Introduction to Linux Environment Yun-Wen Chen 1 The Text (Command) Mode in Linux Environment 2 The Main Operating Systems We May Meet 1. Windows 2. Mac 3. Linux (Unix) 3 Windows Command Mode and DOS Type

More information

Performing Matrix Operations on the TI-83/84

Performing Matrix Operations on the TI-83/84 Page1 Performing Matrix Operations on the TI-83/84 While the layout of most TI-83/84 models are basically the same, of the things that can be different, one of those is the location of the Matrix key.

More information

(Refer Slide Time: 00:26)

(Refer Slide Time: 00:26) Programming, Data Structures and Algorithms Prof. Shankar Balachandran Department of Computer Science and Engineering Indian Institute Technology, Madras Module 07 Lecture 07 Contents Repetitive statements

More information

Lab # 2. For today s lab:

Lab # 2. For today s lab: 1 ITI 1120 Lab # 2 Contributors: G. Arbez, M. Eid, D. Inkpen, A. Williams, D. Amyot 1 For today s lab: Go the course webpage Follow the links to the lab notes for Lab 2. Save all the java programs you

More information

CS450: Structure of Higher Level Languages Spring 2018 Assignment 7 Due: Wednesday, April 18, 2018

CS450: Structure of Higher Level Languages Spring 2018 Assignment 7 Due: Wednesday, April 18, 2018 CS450: Structure of Higher Level Languages Spring 2018 Assignment 7 Due: Wednesday, April 18, 2018 Taken from assignments by Profs. Carl Offner and Ethan Bolker Part 1 - Modifying The Metacircular Evaluator

More information

MAT 003 Brian Killough s Instructor Notes Saint Leo University

MAT 003 Brian Killough s Instructor Notes Saint Leo University MAT 003 Brian Killough s Instructor Notes Saint Leo University Success in online courses requires self-motivation and discipline. It is anticipated that students will read the textbook and complete sample

More information