Introduction to Data Assimilation

Size: px
Start display at page:

Download "Introduction to Data Assimilation"

Transcription

1 Introduction to Data Assimilation Eric Kostelich and David Kuhl MSRI Climate Change Summer School July 21, 2008 Introduction The goal of these exercises is to familiarize you with LETKF data assimilation. We will first set-up the Lorenz 96 model. Then we will create some fake observations to assimilate. Finally we will set-up the LETKF and play with all of the variables and see what happens. The Lorenz 96 Model First we will setup the Lorenz 96 (Lorenz-40) model. Step 1. Download from the website: eric/ two MAT- LAB scripts: lorenz 96 initialize lorenz 96 cycle. Save them to your working MATLAB directory. Step 2. Open a new MATLAB window and clear all previous variables: clear all; Step 3. Type in the following settings for the model: modelresolution=40; ensemblesize=10; forcing=8.0; timestep=0.05; maxtime=51000; initial_model_perturbation=0.008; initial_ensemble_perturbation=0.01; 1

2 truth=ones(modelresolution,1)*forcing; ensemble=ones(modelresolution,ensemblesize)*forcing; Modelresolution is the number of points of the model around a sphere (kindof...). Ensemblesize is the number of ensembles we are using. forcing is the forcing term for the Lorenz 96 model. Timestep is set to represent 0.25 days each time interval. Maxtime is just a limit on this code for how long we can integrate the model. Initial model perturbation is the initial perturbation given to the true solution of the Lorenz 96 model. Initial ensemble perturbation is multiplied by a random gaussian number (mean of 0 and standard deviation of 1) and added to the perturbed model initial condition to produce an ensemble of initial perturbed states. The truth matrix holds the solutions for the current time-step of the model. The ensemble matrix holds the solutions for the current time-step for all of the initially perturbed ensembles. Step 4. Call the initialization script for the Lorenz model: lorenz_96_initialize Step 5. Set up the time-step cycle for the model as a for-loop: for t=1:maxtime figure(1); plot(truth(:), k- ); hold on for j=1:ensemblesize plot(ensemble(:,j), b-- ); hold off lorenz_96_cycle pause This step cycles through time t and plots the truth and the ensembles then cycles to the next time step. The pause is included to add user control to the time steps. Now run the model through 20 or so cycles. You will see the perturbations grow and expand along the x-axis for the truth as well as all of the ensembles. 2

3 You may add a counter to the screen which displays the time step in days with each time cycle equalling 0.25 day. Now fix the axis on the plot with the following code inserted before the hold off command: axis([ ]); In the above plots we see the differences in forecasts from an ensemble of initially perturbed conditions. If you like you can try playing around with any of the model parameters like the ensemble size, initial model perturbation or initial ensemble perturbation. LETKF data assimilation In this section we will apply the LETKF data assimilation sequentially to the Lorenz 96 model. The LETKF data assimilation technique is described in Hunt et. al (available on Eric s website) and we will follow the cookbook steps found in the Hunt et. al article starting on page 18. Above we plotted the model truth in black and the set of ensemble solutions in blue. From the truth we will create a set of observations at each of the model grid points. These observations will be randomly perturbed from the true state. The observations will need to be created each step of the model cycle. In this way we simulate a continuous collection of observations. Observations First we include at the top of the script the initialization of the observation variables: observation error, observation array, observation error covariance matrix and associated variables. obs_percent=100; number_observations=round(modelresolution*(obs_percent/100)); observation_error=0.5; observations=zeros(number_observations,1); plot_observations=zeros(modelresolution,1); R=zeros(number_observations,number_observations); I=eye(modelresolution); H=zeros(number_observations,modelresolution); 3

4 The obs percent variable sets the number of observations relative to the model resolution. We will start with 100% where we will have an observation at every model grid point. The number observations is set based upon the modelresolution and obs percent. The observation error variable sets the amount of error we will perturb the model truth by. The observation error variable is multiplied by a gaussian random number with mean 0 and standard deviation 1 and added to the model truth. The observations vector holds the observations. The plot observations vector holds the observations to plot on the figure. R is the observation error covariance matrix. I is simply an identity matrix the size of the model resolution. H is the observation operator matrix which will transform from the model space into the observation space. Next we create the observation error covariance matrix which we will assume is constant and diagonal. This can be thought of as the error of making a measurement, like the error of reading a thermometer. Since this matrix is diagonal we are assuming the error of one measurement is completely indepent of any other measurement. This is not always true however, like in satellite measurements or radar measurements where one measurement impacts another measurement. Also in this step we create the H-operator matrix which we will use to transform from the model space into the observation space. Insert the following code just after the initialization of the observation variables outside of the cycle. We insert this outside of the cycle since we assume the errors of the observations and the H-operator is constant over time. count=0; for j=1:modelresolution if mod(j,obs_count) == 0 count=count+1; R(count,count)=observation_error; H(count,:)=I(j,:); Finally we create the observations within the time cycle before plotting the figure. To do this we insert the following code: count=0; for j=1:modelresolution if mod(j,obs_count) == 0 count=count+1; 4

5 plot_observations(j)=truth(j)+observation_error*randn(1); observations(count)=truth(j)+observation_error*randn(1); else plot_observations(j)=nan; To check the code we plot the observations by inserting the following code before the hold off command: plot(plot_observations(:), r* ); Run the model out for 20 or so time-steps to see the observations dance around the model truth. You can try modifying the observation error to see the points move closer and farther from the truth. LETKF Algorithm Now we will follow a series of 9 steps as outlined in the Hunt et. al. paper. For this implementation we will not be using localization. This simplifies the implementation. I will quote the Hunt paper at each step and then I will follow the quote with the code to insert into MATLAB. Before we begin we need to initialize several variables which we will be using in the LETKF at the top of the script. Insert the following code after the initialization of the observation variables outside of the time cycle loop. xb_bar=zeros(modelresolution,1); Xb=zeros(modelresolution,ensemblesize); yb_bar=zeros(number_observations,1); Yb=zeros(number_observations,ensemblesize); C=zeros(ensemblesize,number_observations); rho=1.01; Pa_bar=zeros(ensemblesize,ensemblesize); Wa=zeros(ensemblesize,ensemblesize); xb bar is the sample mean of the background ensemble. Xb is the difference between the background ensemble and the mean of the background ensemble. yb bar is the mean of the background ensemble in observation space. Yb is the difference between the background ensemble and the mean of the background ensemble in observation space. C is an intermediate calculated quantity 5

6 for the LETKF. rho is the mutiplicitve inflation factor which can be tuned to the model (1.01 represents a 1% inflation factor, 1.10 would be a 10% inflation factor). Pa bar is the average analysis error covariance matrix. Wa is the weighting matrix. The nomenclature used in the Hunt et. al paper has m=modelresolution, k=ensemblesize and l =number of observations. In the Hunt et al paper the subscript g signfies the input reflecting the global model state and all available observations. Again, for this example we will not be performing the localization. If we were performing a localization then m=localization size and m =modelresolution. I suggest you first read the non-italicised text and insert the code for all of the steps to get your script running first. Then, with your working code, go back and look at Hunt et. al s explanation of each step carefully. Step 1: From Hunt et. al: Apply H to each x b(i) to form the global background observation ensemble y b(i), and average the latter vectors to get the l - dimensional column vector ȳ b. Subtract this vector from each yb(i) to form the columns of the l k matrix Y b. (This subtraction can be done in place, since the vectors yb(i) are no longer needed.) This requires k applications of H, plus 2kl (floatingpoint) operations. If H is an interpolation operator that requires only a few model variables to compute each observation variable, then the total number of operations for this step is proportional to kl times the average number of model variables required to compute each scalar observation. In this case our H linear so we can combine steps 1 and 2. See the note in step 2. Step 2: From Hunt et. al: Average the vectors x b(i) to get the m -dimensional vector x b, and subtract this vector from each xb(i) to form the columns of the m k matrix X b. (Again the subtraction can be done in place; the vectors xb(i) are no longer needed). This step requires a total of 2km operations. (If H is linear, one can equivalently perform Step 2 before Step 1, and obtain ȳ b and Y b by applying H to x b and X b.) Into the cycle, after the creation of the observations and observation operator, we insert the following code to calculate xb bar, Xb, yb bar and Yb: for j=1:modelresolution 6

7 xb_bar(j)=mean(ensemble(j,:)); for i=1:ensemblesize Xb(j,i)=ensemble(j,i)-xb_bar(j); yb_bar=h*xb_bar; Yb=H*Xb; Step 3: From Hunt et. al: This step selects the necessary data for a given grid point (whether it is better to form the local arrays described below explicitly or select them later as needed from the global arrays deps on ones implementation). Select the rows of average(x b ) and Xb corresponding to the given grid point, forming their local counterparts: the m-dimensional vector average(x b ) and the m k matrix X b, which will be used in Step 8. Likewise, select the rows of average(y b and Y b corresponding to the observations chosen for the analysis at the given grid point, forming the l dimensional vector average(y b ) and the l k matrix Y b. Select the corresponding rows of y o and rows and columns of R to form the l dimensional vector y o and the l l matrix R. (For a high-resolution model, it may be reasonable to use the same set of observations for multiple grid points, in which case one should select here the rows of X b and ( xb corresponding to all of these grid points.) This is the localization step so for our implementation this step is skipped since we will be a local region of size 40 (or the entire grid). Step 4: From Hunt et. al: Compute the k l matrix C = (Y b ) T R 1. If desired, one can multiply entries of R 1 or C corresponding to a given observation by a factor less than one to decrease (or greater than one to increase) its influence on the analysis. (For example, one can use a multiplier that deps on distance from the analysis grid point to discount observations near the edge of the local region from which they are selected; this will smooth the spatial influence of observations, as described in Section 2.3 under Local Implementation.) Since this is the only step in which R is used, it may be most efficient to compute C by solving the linear system RC T = Y b rather than inverting R. In some applications, R may be diagonal, but in others R will be block diagonal with each block representing a group of correlated observations. As long as the size of each block is relatively small, inverting R or solving the linear system above will not be computationally expen- 7

8 sive. Furthermore, many or all of the blocks that make up R may be unchanged from one analysis time to the next, so that their inverses need not be recomputed each time. Based on these considerations, the number of operations required (at each grid point) for this step in a typical application should be proportional to kl, multiplied by a factor related to the typical block size of R. Into the cycle, after Step 2, we insert the following code to calculate the intermediate calculated variable C: C=Yb *R^-1; Step 5: From Hunt et. al: Compute the k k matrix P a = [(k 1)I/ρ +CY b ] 1, as in (21). Here rho 1 is a multiplicative covariance inflation factor, as described at the of the previous section. Though trying some of the other approaches described there may be fruitful, a reasonable general approach is to start with ρ > 1 and increase it gradually until one finds a value that is optimal according to some measure of analysis quality. Multiplying C and Yb requires less than 2k 2 l operations,while the number of operations needed to invert the k k matrix is proportional to k 3. Into the cycle, after Step 4, we insert the following code to calculate the average analysis error covariance matrix: Pa_bar=(((ensemblesize-1)*eye(ensemblesize))/rho+C*Yb)^-1; Step 6: From Hunt et. al: Compute the k k matrix W a = [(k 1) P a ] 1/2, as in (24). Again the number of operations required is proportional to k 3 ; it may be most efficient to compute the eigenvalues and eigen- vectors of (k 1)I/ρ +CY b in the previous step and then use them to compute both P a ) and W a. Into the cycle, after Step 5, we insert the following code to calculate the weighting matrix: Wa=((ensemblesize-1)*Pa_bar)^0.5; Step 7: From Hunt et. al: Compute the k-dimensional vector w a = Pa C (y o ȳ b ), as in (20), and add it to each column of W a, forming a k k matrix whose columns are the analysis vectors w a(i). Computing the formula for w a from right-to-left, the total number of operations required for this step is less than 3k(l + k). Into the cycle, after Step 6, we insert the average weighting matrix and the local weight matrix: 8

9 wa_bar=pa_bar*c*(observations-yb_bar); for j=1:ensemblesize wai(:,j)=wa(:,j)+wa_bar; Step 8: From Hunt et. al: Multiply X b by each w a(i) and add x b to get the analysis ensemble members x a(i) at the analysis grid point, as in (25). This requires 2k 2 m operations. Into the cycle, after Step 7, we insert the following code to calculate our analysis result for each ensemble. This calculates the LETKF analysis result: temp=xb*wai; for j=1:ensemblesize xai(:,j)=xb_bar+temp(:,j); Step 9: From Hunt et. al: After performing Steps 38 for each grid point, the outputs of Step 8 form the global analysis ensemble x a(i). In this case, since we are operating without localization, this step is skipped. This step simply stitches back together all our results from all of the local regions into a global result. Now after adding in all of the LETKF steps into our forecast cycle we now need to update our background. To do this insert the following code after Step 9 to update the background ensemble. ensemble(:,:)=xai(:,:); Cross your fingers and run the code 20 or so steps to see what the affect of assimilating the data has on the analysis. You should see the background ensemble now tracks the truth. Feel free to manipulate different variables like the observation error and the covariance inflation factor (ρ). What happens to the results? Now modify the inital ensemble perturbation and see how quickly the ensemble tracks back to the truth. Go back and look at the Hunt et. al explanation of each step. Playing with the model: 9

10 Try cutting back on the number of observation points by modifying the obs percent variable. Try 50%, 25% and 10%. How many observations do we need. Inflate the error of our observations by modifying the observation error variable. How bad can the observations and the analysis still tracks the truth? Try modifying the number of ensembles used. How many ensembles are necessary to have the analysis still track the truth? Remember that it costs a lot of computational time to calculate each of the ensembles. For take home problems you can also track the RMS error between the ensemble mean of the analysis and the truth. Then quantify the effects from making the above changes to the code. For calculating the RMS errors you should throw out the first several steps of the analysis as the model is spinning up. Another take home suggestion is to modify the the truth used to calculate the observations and insert a bias to the observations. Finally, if you are very ambitious, you can modify the code to perform the localization steps of the LETKF. 10

Introduction to LETKF Data Assimilation

Introduction to LETKF Data Assimilation Introduction to LETKF Data Assimilation David Kuhl and Eric Kostelich AOSC614 November 12, 2008 Introduction The goal of these exercises is to familiarize you with LETKF data assimilation. We will first

More information

Matrices. A Matrix (This one has 2 Rows and 3 Columns) To add two matrices: add the numbers in the matching positions:

Matrices. A Matrix (This one has 2 Rows and 3 Columns) To add two matrices: add the numbers in the matching positions: Matrices A Matrix is an array of numbers: We talk about one matrix, or several matrices. There are many things we can do with them... Adding A Matrix (This one has 2 Rows and 3 Columns) To add two matrices:

More information

LAB 2 VECTORS AND MATRICES

LAB 2 VECTORS AND MATRICES EN001-4: Intro to Computational Design Tufts University, Department of Computer Science Prof. Soha Hassoun LAB 2 VECTORS AND MATRICES 1.1 Background Overview of data types Programming languages distinguish

More information

Figure 1. Figure 2. The BOOTSTRAP

Figure 1. Figure 2. The BOOTSTRAP The BOOTSTRAP Normal Errors The definition of error of a fitted variable from the variance-covariance method relies on one assumption- that the source of the error is such that the noise measured has a

More information

An Introduction to MATLAB II

An Introduction to MATLAB II Lab of COMP 319 An Introduction to MATLAB II Lab tutor : Gene Yu Zhao Mailbox: csyuzhao@comp.polyu.edu.hk or genexinvivian@gmail.com Lab 2: 16th Sep, 2013 1 Outline of Lab 2 Review of Lab 1 Matrix in Matlab

More information

CS1114: Matlab Introduction

CS1114: Matlab Introduction CS1114: Matlab Introduction 1 Introduction The purpose of this introduction is to provide you a brief introduction to the features of Matlab that will be most relevant to your work in this course. Even

More information

Here is the probability distribution of the errors (i.e. the magnitude of the errorbars):

Here is the probability distribution of the errors (i.e. the magnitude of the errorbars): The BOOTSTRAP Normal Errors The definition of error of a fitted variable from the variance-covariance method relies on one assumption- that the source of the error is such that the noise measured has a

More information

Levenberg-Marquardt minimisation in ROPP

Levenberg-Marquardt minimisation in ROPP Ref: SAF/GRAS/METO/REP/GSR/006 Web: www.grassaf.org Date: 4 February 2008 GRAS SAF Report 06 Levenberg-Marquardt minimisation in ROPP Huw Lewis Met Office, UK Lewis:Levenberg-Marquardt in ROPP GRAS SAF

More information

Learning from Data Introduction to Matlab

Learning from Data Introduction to Matlab Learning from Data Introduction to Matlab Amos Storkey, David Barber and Chris Williams a.storkey@ed.ac.uk Course page : http://www.anc.ed.ac.uk/ amos/lfd/ This is a modified version of a text written

More information

CS1114: Matlab Introduction

CS1114: Matlab Introduction CS1114: Matlab Introduction 1 Introduction The purpose of this introduction is to provide you a brief introduction to the features of Matlab that will be most relevant to your work in this course. Even

More information

Matrix Inverse 2 ( 2) 1 = 2 1 2

Matrix Inverse 2 ( 2) 1 = 2 1 2 Name: Matrix Inverse For Scalars, we have what is called a multiplicative identity. This means that if we have a scalar number, call it r, then r multiplied by the multiplicative identity equals r. Without

More information

University of Alberta

University of Alberta A Brief Introduction to MATLAB University of Alberta M.G. Lipsett 2008 MATLAB is an interactive program for numerical computation and data visualization, used extensively by engineers for analysis of systems.

More information

MAT Math Processing Software

MAT Math Processing Software MAT Math Processing Software Software of the KLIPPEL R&D SYSTEM FEATURES Implement your own ideas Write flexible, powerful scripts Exploit MatLab / Scilab Hide math in a container Create tools usable for

More information

Introduction to MATLAB

Introduction to MATLAB Introduction to MATLAB Contents 1.1 Objectives... 1 1.2 Lab Requirement... 1 1.3 Background of MATLAB... 1 1.4 The MATLAB System... 1 1.5 Start of MATLAB... 3 1.6 Working Modes of MATLAB... 4 1.7 Basic

More information

Lab # 2 - ACS I Part I - DATA COMPRESSION in IMAGE PROCESSING using SVD

Lab # 2 - ACS I Part I - DATA COMPRESSION in IMAGE PROCESSING using SVD Lab # 2 - ACS I Part I - DATA COMPRESSION in IMAGE PROCESSING using SVD Goals. The goal of the first part of this lab is to demonstrate how the SVD can be used to remove redundancies in data; in this example

More information

A Survey of Ensemble Filtering in the Data Assimilation Research Testbed

A Survey of Ensemble Filtering in the Data Assimilation Research Testbed 1 A Survey of Ensemble Filtering in the Data Assimilation Research Testbed (Note: In the following, input that students need to enter are in bold, underlined text. Text that will be output to a workstation

More information

Chapter 1. Math review. 1.1 Some sets

Chapter 1. Math review. 1.1 Some sets Chapter 1 Math review This book assumes that you understood precalculus when you took it. So you used to know how to do things like factoring polynomials, solving high school geometry problems, using trigonometric

More information

Matlab notes Matlab is a matrix-based, high-performance language for technical computing It integrates computation, visualisation and programming usin

Matlab notes Matlab is a matrix-based, high-performance language for technical computing It integrates computation, visualisation and programming usin Matlab notes Matlab is a matrix-based, high-performance language for technical computing It integrates computation, visualisation and programming using familiar mathematical notation The name Matlab stands

More information

Principal Component Analysis (PCA) is a most practicable. statistical technique. Its application plays a major role in many

Principal Component Analysis (PCA) is a most practicable. statistical technique. Its application plays a major role in many CHAPTER 3 PRINCIPAL COMPONENT ANALYSIS ON EIGENFACES 2D AND 3D MODEL 3.1 INTRODUCTION Principal Component Analysis (PCA) is a most practicable statistical technique. Its application plays a major role

More information

Programming Exercise 1: Linear Regression

Programming Exercise 1: Linear Regression Programming Exercise 1: Linear Regression Machine Learning Introduction In this exercise, you will implement linear regression and get to see it work on data. Before starting on this programming exercise,

More information

MATLAB GUIDE UMD PHYS401 SPRING 2012

MATLAB GUIDE UMD PHYS401 SPRING 2012 MATLAB GUIDE UMD PHYS40 SPRING 202 We will be using Matlab (or, equivalently, the free clone GNU/Octave) this semester to perform calculations involving matrices and vectors. This guide gives a brief introduction

More information

GRAD6/8104; INES 8090 Spatial Statistic Spring 2017

GRAD6/8104; INES 8090 Spatial Statistic Spring 2017 Lab #1 Basics in Spatial Statistics (Due Date: 01/30/2017) PURPOSES 1. Get familiar with statistics and GIS 2. Learn to use open-source software R for statistical analysis Before starting your lab, create

More information

Introduction to Matlab

Introduction to Matlab Introduction to Matlab Enrique Muñoz Ballester Dipartimento di Informatica via Bramante 65, 26013 Crema (CR), Italy enrique.munoz@unimi.it Contact Email: enrique.munoz@unimi.it Office: Room BT-43 Industrial,

More information

Chapter 4. The Classification of Species and Colors of Finished Wooden Parts Using RBFNs

Chapter 4. The Classification of Species and Colors of Finished Wooden Parts Using RBFNs Chapter 4. The Classification of Species and Colors of Finished Wooden Parts Using RBFNs 4.1 Introduction In Chapter 1, an introduction was given to the species and color classification problem of kitchen

More information

DADiSP / MATLINK. MATLAB Code Execution Module. DSP Development Corporation KEY FEATURES

DADiSP / MATLINK. MATLAB Code Execution Module. DSP Development Corporation KEY FEATURES DADiSP / MATLINK MATLAB Code Execution Module MATLINK provides a simple interface for executing MATLAB (1) code directly from DADiSP. Any MATLAB function or script can be processed just as if it were a

More information

Spatial Data Models. Raster uses individual cells in a matrix, or grid, format to represent real world entities

Spatial Data Models. Raster uses individual cells in a matrix, or grid, format to represent real world entities Spatial Data Models Raster uses individual cells in a matrix, or grid, format to represent real world entities Vector uses coordinates to store the shape of spatial data objects David Tenenbaum GEOG 7

More information

(1) Generate 1000 samples of length 1000 drawn from the uniform distribution on the interval [0, 1].

(1) Generate 1000 samples of length 1000 drawn from the uniform distribution on the interval [0, 1]. PRACTICAL EXAMPLES: SET 1 (1) Generate 1000 samples of length 1000 drawn from the uniform distribution on the interval [0, 1]. >> T=rand(1000,1000); The command above generates a matrix, whose columns

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

Calibrate your model!

Calibrate your model! Calibrate your model! Jonathan Rougier Department of Mathematics University of Bristol mailto:j.c.rougier@bristol.ac.uk BRISK/Cabot/CREDIBLE Summer School: Uncertainty and risk in natural hazards 7-11

More information

Graphing with Microsoft Excel

Graphing with Microsoft Excel Graphing with Microsoft Excel As an AP Physics 1 student, you must be prepared to interpret and construct relationships found in physical laws and experimental data. This exercise is meant to familiarize

More information

Thoughts on Representing Spatial Objects. William A. Huber Quantitative Decisions Rosemont, PA

Thoughts on Representing Spatial Objects. William A. Huber Quantitative Decisions Rosemont, PA Thoughts on Representing Spatial Objects William A. Huber Quantitative Decisions Rosemont, PA Overview 1. Some Ways to Structure Space 2. What to Put into a Grid 3. Objects and Fields 4. Hybrid Structures

More information

Introduction to Matlab. CSE555 Introduction to Pattern Recognition Spring 2011 recitation

Introduction to Matlab. CSE555 Introduction to Pattern Recognition Spring 2011 recitation CSE555 Introduction to Pattern Recognition Spring 2011 recitation Matlab stands for Matrix Laboratory. It was originally designed for solving linear algebra problems using matrices. Matlab is also a programming

More information

3. Data Structures for Image Analysis L AK S H M O U. E D U

3. Data Structures for Image Analysis L AK S H M O U. E D U 3. Data Structures for Image Analysis L AK S H M AN @ O U. E D U Different formulations Can be advantageous to treat a spatial grid as a: Levelset Matrix Markov chain Topographic map Relational structure

More information

PA Core Standards For Mathematics Curriculum Framework Grade Level 5

PA Core Standards For Mathematics Curriculum Framework Grade Level 5 PA Core Standards For Mathematics Grade Level How is mathematics used to quantify, Place Value Demonstrate an understanding CC.2.1..B.1 M0.A-T.1.1.1 among numbers can be compare, represent, and model and

More information

ECE 3793 Matlab Project 1

ECE 3793 Matlab Project 1 ECE 3793 Matlab Project 1 Spring 2017 Dr. Havlicek DUE: 02/04/2017, 11:59 PM Introduction: You will need to use Matlab to complete this assignment. So the first thing you need to do is figure out how you

More information

A/D Converter. Sampling. Figure 1.1: Block Diagram of a DSP System

A/D Converter. Sampling. Figure 1.1: Block Diagram of a DSP System CHAPTER 1 INTRODUCTION Digital signal processing (DSP) technology has expanded at a rapid rate to include such diverse applications as CDs, DVDs, MP3 players, ipods, digital cameras, digital light processing

More information

Practical 4: The Integrate & Fire neuron

Practical 4: The Integrate & Fire neuron Practical 4: The Integrate & Fire neuron 2014 version by Mark van Rossum 2018 version by Matthias Hennig and Theoklitos Amvrosiadis 16th October 2018 1 Introduction to MATLAB basics You can start MATLAB

More information

Day 15: Science Code in Python

Day 15: Science Code in Python Day 15: Science Code in Python 1 Turn In Homework 2 Homework Review 3 Science Code in Python? 4 Custom Code vs. Off-the-Shelf Trade-offs Costs (your time vs. your $$$) Your time (coding vs. learning) Control

More information

Introduction to Objective Analysis

Introduction to Objective Analysis Chapter 4 Introduction to Objective Analysis Atmospheric data are routinely collected around the world but observation sites are located rather randomly from a spatial perspective. On the other hand, most

More information

Physics 326G Winter Class 2. In this class you will learn how to define and work with arrays or vectors.

Physics 326G Winter Class 2. In this class you will learn how to define and work with arrays or vectors. Physics 326G Winter 2008 Class 2 In this class you will learn how to define and work with arrays or vectors. Matlab is designed to work with arrays. An array is a list of numbers (or other things) arranged

More information

What is MATLAB? What is MATLAB? Programming Environment MATLAB PROGRAMMING. Stands for MATrix LABoratory. A programming environment

What is MATLAB? What is MATLAB? Programming Environment MATLAB PROGRAMMING. Stands for MATrix LABoratory. A programming environment What is MATLAB? MATLAB PROGRAMMING Stands for MATrix LABoratory A software built around vectors and matrices A great tool for numerical computation of mathematical problems, such as Calculus Has powerful

More information

Essentials for the TI-83+

Essentials for the TI-83+ Essentials for the TI-83+ Special Keys. O S O O Press and release, then press the appropriate key to access the 2nd (yellow) operation. Press and release to access characters and letters indicated above

More information

Notes on efficient Matlab programming

Notes on efficient Matlab programming Notes on efficient Matlab programming Dag Lindbo dag@csc.kth.se June 11, 2010 1 Introduction - is Matlab slow? It is a common view that Matlab is slow. This is a very crude statement that holds both some

More information

MATLAB Basics. Configure a MATLAB Package 6/7/2017. Stanley Liang, PhD York University. Get a MATLAB Student License on Matworks

MATLAB Basics. Configure a MATLAB Package 6/7/2017. Stanley Liang, PhD York University. Get a MATLAB Student License on Matworks MATLAB Basics Stanley Liang, PhD York University Configure a MATLAB Package Get a MATLAB Student License on Matworks Visit MathWorks at https://www.mathworks.com/ It is recommended signing up with a student

More information

MATLAB SUMMARY FOR MATH2070/2970

MATLAB SUMMARY FOR MATH2070/2970 MATLAB SUMMARY FOR MATH2070/2970 DUNCAN SUTHERLAND 1. Introduction The following is inted as a guide containing all relevant Matlab commands and concepts for MATH2070 and 2970. All code fragments should

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

About the SPEEDY model (from Miyoshi PhD Thesis):

About the SPEEDY model (from Miyoshi PhD Thesis): SPEEDY EXPERIMENTS. About the SPEEDY model (from Miyoshi PhD Thesis): The SPEEDY model (Molteni 2003) is a recently developed atmospheric general circulation model (AGCM) with a spectral primitive-equation

More information

MATLAB Fundamentals. Berlin Chen Department of Computer Science & Information Engineering National Taiwan Normal University

MATLAB Fundamentals. Berlin Chen Department of Computer Science & Information Engineering National Taiwan Normal University MATLAB Fundamentals Berlin Chen Department of Computer Science & Information Engineering National Taiwan Normal University Reference: 1. Applied Numerical Methods with MATLAB for Engineers, Chapter 2 &

More information

Geostatistics 3D GMS 7.0 TUTORIALS. 1 Introduction. 1.1 Contents

Geostatistics 3D GMS 7.0 TUTORIALS. 1 Introduction. 1.1 Contents GMS 7.0 TUTORIALS Geostatistics 3D 1 Introduction Three-dimensional geostatistics (interpolation) can be performed in GMS using the 3D Scatter Point module. The module is used to interpolate from sets

More information

Spatial Distributions of Precipitation Events from Regional Climate Models

Spatial Distributions of Precipitation Events from Regional Climate Models Spatial Distributions of Precipitation Events from Regional Climate Models N. Lenssen September 2, 2010 1 Scientific Reason The Institute of Mathematics Applied to Geosciences (IMAGe) and the National

More information

(Creating Arrays & Matrices) Applied Linear Algebra in Geoscience Using MATLAB

(Creating Arrays & Matrices) Applied Linear Algebra in Geoscience Using MATLAB Applied Linear Algebra in Geoscience Using MATLAB (Creating Arrays & Matrices) Contents Getting Started Creating Arrays Mathematical Operations with Arrays Using Script Files and Managing Data Two-Dimensional

More information

Tutorial: Using Tina Vision s Quantitative Pattern Recognition Tool.

Tutorial: Using Tina Vision s Quantitative Pattern Recognition Tool. Tina Memo No. 2014-004 Internal Report Tutorial: Using Tina Vision s Quantitative Pattern Recognition Tool. P.D.Tar. Last updated 07 / 06 / 2014 ISBE, Medical School, University of Manchester, Stopford

More information

Table of Contents. Introduction.*.. 7. Part /: Getting Started With MATLAB 5. Chapter 1: Introducing MATLAB and Its Many Uses 7

Table of Contents. Introduction.*.. 7. Part /: Getting Started With MATLAB 5. Chapter 1: Introducing MATLAB and Its Many Uses 7 MATLAB Table of Contents Introduction.*.. 7 About This Book 1 Foolish Assumptions 2 Icons Used in This Book 3 Beyond the Book 3 Where to Go from Here 4 Part /: Getting Started With MATLAB 5 Chapter 1:

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

Least-Squares Fitting of Data with B-Spline Curves

Least-Squares Fitting of Data with B-Spline Curves Least-Squares Fitting of Data with B-Spline Curves David Eberly, Geometric Tools, Redmond WA 98052 https://www.geometrictools.com/ This work is licensed under the Creative Commons Attribution 4.0 International

More information

Sergey Stavisky Sep clear % Good practice is to start with a clean workspace for a given analysis

Sergey Stavisky Sep clear % Good practice is to start with a clean workspace for a given analysis Table of Contents NENS 230: Assignment #2 Solution... 1 1) The Compound Action Potential... 1 2) The Strength-Duration curve... 2 3) Conduction Velocity... 3 4) Smoothing a Noisy Trace... 4 NENS 230: Assignment

More information

Dr Richard Greenaway

Dr Richard Greenaway SCHOOL OF PHYSICS, ASTRONOMY & MATHEMATICS 4PAM1008 MATLAB 3 Creating, Organising & Processing Data Dr Richard Greenaway 3 Creating, Organising & Processing Data In this Workshop the matrix type is introduced

More information

Points Lines Connected points X-Y Scatter. X-Y Matrix Star Plot Histogram Box Plot. Bar Group Bar Stacked H-Bar Grouped H-Bar Stacked

Points Lines Connected points X-Y Scatter. X-Y Matrix Star Plot Histogram Box Plot. Bar Group Bar Stacked H-Bar Grouped H-Bar Stacked Plotting Menu: QCExpert Plotting Module graphs offers various tools for visualization of uni- and multivariate data. Settings and options in different types of graphs allow for modifications and customizations

More information

Introduction to MatLab. Introduction to MatLab K. Craig 1

Introduction to MatLab. Introduction to MatLab K. Craig 1 Introduction to MatLab Introduction to MatLab K. Craig 1 MatLab Introduction MatLab and the MatLab Environment Numerical Calculations Basic Plotting and Graphics Matrix Computations and Solving Equations

More information

DH2323 DGI13. Lab 2 Raytracing

DH2323 DGI13. Lab 2 Raytracing DH2323 DGI13 Lab 2 Raytracing In this lab you will implement a Raytracer, which draws images of 3D scenes by tracing the light rays reaching the simulated camera. The lab is divided into several steps.

More information

Chapter 1 Introduction to MATLAB

Chapter 1 Introduction to MATLAB Chapter 1 Introduction to MATLAB 1.1 What is MATLAB? MATLAB = MATrix LABoratory, the language of technical computing, modeling and simulation, data analysis and processing, visualization and graphics,

More information

Part 6b: The effect of scale on raster calculations mean local relief and slope

Part 6b: The effect of scale on raster calculations mean local relief and slope Part 6b: The effect of scale on raster calculations mean local relief and slope Due: Be done with this section by class on Monday 10 Oct. Tasks: Calculate slope for three rasters and produce a decent looking

More information

Numerical Methods in Engineering Sciences

Numerical Methods in Engineering Sciences Numerical Methods in Engineering Sciences Lecture 1: Brief introduction to MATLAB Pablo Antolin pablo.antolinsanchez@unipv.it October 29th 2013 How many of you have used MATLAB before? How many of you

More information

PC-MATLAB PRIMER. This is intended as a guided tour through PCMATLAB. Type as you go and watch what happens.

PC-MATLAB PRIMER. This is intended as a guided tour through PCMATLAB. Type as you go and watch what happens. PC-MATLAB PRIMER This is intended as a guided tour through PCMATLAB. Type as you go and watch what happens. >> 2*3 ans = 6 PCMATLAB uses several lines for the answer, but I ve edited this to save space.

More information

Lab 12: Sampling and Interpolation

Lab 12: Sampling and Interpolation Lab 12: Sampling and Interpolation What You ll Learn: -Systematic and random sampling -Majority filtering -Stratified sampling -A few basic interpolation methods Videos that show how to copy/paste data

More information

CS143 Introduction to Computer Vision Homework assignment 1.

CS143 Introduction to Computer Vision Homework assignment 1. CS143 Introduction to Computer Vision Homework assignment 1. Due: Problem 1 & 2 September 23 before Class Assignment 1 is worth 15% of your total grade. It is graded out of a total of 100 (plus 15 possible

More information

Section 4.3. Graphing Exponential Functions

Section 4.3. Graphing Exponential Functions Graphing Exponential Functions Graphing Exponential Functions with b > 1 Graph f x = ( ) 2 x Graphing Exponential Functions by hand. List input output pairs (see table) Input increases by 1 and output

More information

Getting Started with MATLAB

Getting Started with MATLAB APPENDIX B Getting Started with MATLAB MATLAB software is a computer program that provides the user with a convenient environment for many types of calculations in particular, those that are related to

More information

Histograms. h(r k ) = n k. p(r k )= n k /NM. Histogram: number of times intensity level rk appears in the image

Histograms. h(r k ) = n k. p(r k )= n k /NM. Histogram: number of times intensity level rk appears in the image Histograms h(r k ) = n k Histogram: number of times intensity level rk appears in the image p(r k )= n k /NM normalized histogram also a probability of occurence 1 Histogram of Image Intensities Create

More information

Inf2B assignment 2. Natural images classification. Hiroshi Shimodaira and Pol Moreno. Submission due: 4pm, Wednesday 30 March 2016.

Inf2B assignment 2. Natural images classification. Hiroshi Shimodaira and Pol Moreno. Submission due: 4pm, Wednesday 30 March 2016. Inf2B assignment 2 (Ver. 1.2) Natural images classification Submission due: 4pm, Wednesday 30 March 2016 Hiroshi Shimodaira and Pol Moreno This assignment is out of 100 marks and forms 12.5% of your final

More information

Introduction to Matlab. By: Dr. Maher O. EL-Ghossain

Introduction to Matlab. By: Dr. Maher O. EL-Ghossain Introduction to Matlab By: Dr. Maher O. EL-Ghossain Outline: q What is Matlab? Matlab Screen Variables, array, matrix, indexing Operators (Arithmetic, relational, logical ) Display Facilities Flow Control

More information

Introduction to Machine Learning Prof. Anirban Santara Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Introduction to Machine Learning Prof. Anirban Santara Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Introduction to Machine Learning Prof. Anirban Santara Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture 14 Python Exercise on knn and PCA Hello everyone,

More information

Programming Exercise 4: Neural Networks Learning

Programming Exercise 4: Neural Networks Learning Programming Exercise 4: Neural Networks Learning Machine Learning Introduction In this exercise, you will implement the backpropagation algorithm for neural networks and apply it to the task of hand-written

More information

SML: Specialized Matrix Language White Paper

SML: Specialized Matrix Language White Paper SML: Specialized Matrix Language White Paper Patty Ho pph2103@columbia.edu COMS W4115 Spring 2005 Columbia University Introduction Special mathematical functions and calculations can be quite difficult

More information

Data Association for SLAM

Data Association for SLAM CALIFORNIA INSTITUTE OF TECHNOLOGY ME/CS 132a, Winter 2011 Lab #2 Due: Mar 10th, 2011 Part I Data Association for SLAM 1 Introduction For this part, you will experiment with a simulation of an EKF SLAM

More information

EE 350. Continuous-Time Linear Systems. Recitation 1. 1

EE 350. Continuous-Time Linear Systems. Recitation 1. 1 EE 350 Continuous-Time Linear Systems Recitation 1 Recitation 1. 1 Recitation 1 Topics MATLAB Programming Basic Operations, Built-In Functions, and Variables m-files Graphics: 2D plots EE 210 Review Branch

More information

Face Detection and Recognition in an Image Sequence using Eigenedginess

Face Detection and Recognition in an Image Sequence using Eigenedginess Face Detection and Recognition in an Image Sequence using Eigenedginess B S Venkatesh, S Palanivel and B Yegnanarayana Department of Computer Science and Engineering. Indian Institute of Technology, Madras

More information

ENGR 253 LAB #1 - MATLAB Introduction

ENGR 253 LAB #1 - MATLAB Introduction ENGR 253 LAB #1 - MATLAB Introduction Objective Understanding and hands on experience with MATLAB with focus on Signal Processing. Resources Signals & Systems textbook by Oppenheim and Willsky Windows

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

LESSON: Working with line graphs questions

LESSON: Working with line graphs questions LESSON: Working with line graphs questions FOCUS QUESTION: How do I display trends in data? Contents EXAMPLE 1: Load NYC contagious disease data set (load.mat files) EXAMPLE 2: Define variables for analysis

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

Biometrics Technology: Image Processing & Pattern Recognition (by Dr. Dickson Tong)

Biometrics Technology: Image Processing & Pattern Recognition (by Dr. Dickson Tong) Biometrics Technology: Image Processing & Pattern Recognition (by Dr. Dickson Tong) References: [1] http://homepages.inf.ed.ac.uk/rbf/hipr2/index.htm [2] http://www.cs.wisc.edu/~dyer/cs540/notes/vision.html

More information

Modeling Plant Succession with Markov Matrices

Modeling Plant Succession with Markov Matrices Modeling Plant Succession with Markov Matrices 1 Modeling Plant Succession with Markov Matrices Concluding Paper Undergraduate Biology and Math Training Program New Jersey Institute of Technology Catherine

More information

Post-Processing Radial Basis Function Approximations: A Hybrid Method

Post-Processing Radial Basis Function Approximations: A Hybrid Method Post-Processing Radial Basis Function Approximations: A Hybrid Method Muhammad Shams Dept. of Mathematics UMass Dartmouth Dartmouth MA 02747 Email: mshams@umassd.edu August 4th 2011 Abstract With the use

More information

Clustering K-means. Machine Learning CSEP546 Carlos Guestrin University of Washington February 18, Carlos Guestrin

Clustering K-means. Machine Learning CSEP546 Carlos Guestrin University of Washington February 18, Carlos Guestrin Clustering K-means Machine Learning CSEP546 Carlos Guestrin University of Washington February 18, 2014 Carlos Guestrin 2005-2014 1 Clustering images Set of Images [Goldberger et al.] Carlos Guestrin 2005-2014

More information

Matlab and Coordinate Systems

Matlab and Coordinate Systems Matlab and Coordinate Systems Math 45 Linear Algebra David Arnold David-Arnold@Eureka.redwoods.cc.ca.us Abstract In this exercise we will introduce the concept of a coordinate system for a vector space.

More information

Neuro-Fuzzy Computing

Neuro-Fuzzy Computing CSE53 Neuro-Fuzzy Computing Tutorial/Assignment 3: Unsupervised Learning About this tutorial The objective of this tutorial is to study unsupervised learning, in particular: (Generalized) Hebbian learning.

More information

Assignment 6: Ray Tracing

Assignment 6: Ray Tracing Assignment 6: Ray Tracing Programming Lab Due: Monday, April 20 (midnight) 1 Introduction Throughout this semester you have written code that manipulated shapes and cameras to prepare a scene for rendering.

More information

Machine Learning for Pre-emptive Identification of Performance Problems in UNIX Servers Helen Cunningham

Machine Learning for Pre-emptive Identification of Performance Problems in UNIX Servers Helen Cunningham Final Report for cs229: Machine Learning for Pre-emptive Identification of Performance Problems in UNIX Servers Helen Cunningham Abstract. The goal of this work is to use machine learning to understand

More information

Introduction to MATLAB LAB 1

Introduction to MATLAB LAB 1 Introduction to MATLAB LAB 1 1 Basics of MATLAB MATrix LABoratory A super-powerful graphing calculator Matrix based numeric computation Embedded Functions Also a programming language User defined functions

More information

In this chapter we explain the structure and use of BestDose, with examples.

In this chapter we explain the structure and use of BestDose, with examples. Using BestDose In this chapter we explain the structure and use of BestDose, with examples. General description The image below shows the view you get when you start BestDose. The actual view is called

More information

Fourier transforms and convolution

Fourier transforms and convolution Fourier transforms and convolution (without the agonizing pain) CS/CME/BioE/Biophys/BMI 279 Oct. 26, 2017 Ron Dror 1 Why do we care? Fourier transforms Outline Writing functions as sums of sinusoids The

More information

Rotation and Scaling Image Using PCA

Rotation and Scaling Image Using PCA wwwccsenetorg/cis Computer and Information Science Vol 5, No 1; January 12 Rotation and Scaling Image Using PCA Hawrra Hassan Abass Electrical & Electronics Dept, Engineering College Kerbela University,

More information

Maths for Signals and Systems Linear Algebra in Engineering. Some problems by Gilbert Strang

Maths for Signals and Systems Linear Algebra in Engineering. Some problems by Gilbert Strang Maths for Signals and Systems Linear Algebra in Engineering Some problems by Gilbert Strang Problems. Consider u, v, w to be non-zero vectors in R 7. These vectors span a vector space. What are the possible

More information

A Tutorial on Matlab Ch. 3 Programming in Matlab

A Tutorial on Matlab Ch. 3 Programming in Matlab Department of Electrical Engineering University of Arkansas A Tutorial on Matlab Ch. 3 Programming in Matlab Dr. Jingxian Wu wuj@uark.edu OUTLINE 2 Plotting M-file Scripts Functions Control Flows Exercises

More information

Paralleliza(on Challenges for Ensemble Data Assimila(on

Paralleliza(on Challenges for Ensemble Data Assimila(on Paralleliza(on Challenges for Ensemble Data Assimila(on Helen Kershaw Institute for Mathematics Applied to Geophysics, National Center for Atmospheric Research Email: hkershaw@ucar.edu What am I going

More information

Eric W. Hansen. The basic data type is a matrix This is the basic paradigm for computation with MATLAB, and the key to its power. Here s an example:

Eric W. Hansen. The basic data type is a matrix This is the basic paradigm for computation with MATLAB, and the key to its power. Here s an example: Using MATLAB for Stochastic Simulation. Eric W. Hansen. Matlab Basics Introduction MATLAB (MATrix LABoratory) is a software package designed for efficient, reliable numerical computing. Using MATLAB greatly

More information

x = 12 x = 12 1x = 16

x = 12 x = 12 1x = 16 2.2 - The Inverse of a Matrix We've seen how to add matrices, multiply them by scalars, subtract them, and multiply one matrix by another. The question naturally arises: Can we divide one matrix by another?

More information

Variability in Annual Temperature Profiles

Variability in Annual Temperature Profiles Variability in Annual Temperature Profiles A Multivariate Spatial Analysis of Regional Climate Model Output Tamara Greasby, Stephan Sain Institute for Mathematics Applied to Geosciences, National Center

More information

Originally written by Tom Minka, and modified by Yuan Qi and Ashish Kapoor, Bo Morgan Sept. 2006

Originally written by Tom Minka, and modified by Yuan Qi and Ashish Kapoor, Bo Morgan Sept. 2006 mas.622j Matlab Help Originally written by Tom Minka, and modified by Yuan Qi and Ashish Kapoor, Bo Morgan Sept. 2006 Getting started. Matlab variables. Matlab language. Plotting Examples. Useful Subroutines

More information