Introduction to LETKF Data Assimilation

Size: px
Start display at page:

Download "Introduction to LETKF Data Assimilation"

Transcription

1 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 set-up the Lorenz 96 model. Then we will create some fake observations to assimilate. Finally we will set-up a modified version the LETKF and play with all of the variables and see what happens. For these exercises you will need to write a MATLAB script. So you will need to open up a MATLAB script window, save it to a name, then run the script by typing that name into the MATLAB command prompt window. Set-up the Lorenz 96 Model Step 1. Create a working Matlab directory in your account. mkdir matlab cd matlab Step 2. Download from the website: dkuhl/ two MATLAB scripts: lorenz 96 initialize lorenz 96 cycle and save them in your newly created matlab directory. The files can be found on the left-hand side under AOSC614. You will not be modifying these scripts for this exercise, simply calling them. You of course are welcome to look at them. Step 3. Start Matlab by typing matlab at the command prompt. Then open an editor window (file new M-file). All the following commands will be written and saved to this M-file. Start the script by clearing all previous variables: 1

2 clear all; Step 4. Type in the following settings for the model: % Initialization of Model Variables modelresolution=40; ensemblesize=10; forcing=8.0; timestep=0.05; maxtime=51000; initial_model_perturbation=0.008; initial_ensemble_perturbation=0.01; truth=ones(modelresolution,1)*forcing; ensemble=ones(modelresolution,ensemblesize)*forcing; Modelresolution is the number of points of the model. The model may be thought of as a wave traveling around the globe along a longitude line. 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 5. Call the initialization script for the Lorenz model: % Lorenz 96 initialization script lorenz_96_initialize Step 6. Set up the time-step cycle for the model as a for-loop: % Begin time cycle portion of the code for t=1:maxtime % Begin plotting portion of the code figure(1); plot(truth(:), k- ); 2

3 hold on for j=1:ensemblesize plot(ensemble(:,j), b-- ); % Lorenz 96 cycle advance script lorenz_96_cycle pause hold off 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. Step 7. Now run the model through 20 or so cycles. To do this write the name of your script into the MATLAB command prompt window and press return. To continue to the next time-step you will press return again. Each cycle is equivalent to a quarter of a day. You will see the perturbations grow and expand along the x-axis for the truth as well as all of the ensembles. You may add a counter to the screen which displays the time step in days. For more information on this model see the Lorenz-96 link the to reference on my website under AOSC614- References. Step 8. 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 my website under AOSC614-References) and we will follow the cookbook steps found in the Hunt et. al article starting on page 18. 3

4 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. % Initialization of Observation 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); 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 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 for examble in satellite measurements or radar measurements where one measurement impacts another measurement. 4

5 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. % Create Observation Error Covariance count=0; for j=1:modelresolution if mod(j,(obs_percent/100)^-1) == 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: % Create Observations count=0; for j=1:modelresolution if mod(j,(obs_percent/100)^-1) == 0 count=count+1; 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. 5

6 Set-up a Modified LETKF Algorithm Now we will follow a series of 9 steps as outlined in the Hunt et. al. paper. For coding symplicity we will not be using localization. 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. % Initialization of LETKF Variables 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.10; 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 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 6

7 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: % LETKF Steps 1 and 2 for j=1:modelresolution 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 7

8 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 expensive. 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: % LETKF Step 4 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 8

9 ρ > 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: % LETKF Step 5 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: % LETKF Step 6 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: % LETKF Step 7 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. 9

10 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: % LETKF Step 8 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. % LETKF Step 9 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: Try cutting back on the number of observation points by modifying the obs percent variable. Try 50%, 25% and 10% (note only evenly devisable percentages of 40). 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 be while still tracking 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. 10

11 Run the model out for long time period. What happens to the observations influence on the ensemble? Try modifying the inflation factor rho to 1.01, 1.05, 1.25 (1%, 5% and 25% inflation factors). What happens to ensemble? 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. Also you should run the model out for a long period of time, i.e. months or years. 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. 11

Introduction to Data Assimilation

Introduction to Data Assimilation 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.

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

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

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

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

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

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

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

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

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

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

To see what directory your work is stored in, and the directory in which Matlab will look for files, type

To see what directory your work is stored in, and the directory in which Matlab will look for files, type Matlab Tutorial For Machine Dynamics, here s what you ll need to do: 1. Solve n equations in n unknowns (as in analytical velocity and acceleration calculations) - in Matlab, this is done using matrix

More information

Creates a 1 X 1 matrix (scalar) with a value of 1 in the column 1, row 1 position and prints the matrix aaa in the command window.

Creates a 1 X 1 matrix (scalar) with a value of 1 in the column 1, row 1 position and prints the matrix aaa in the command window. EE 350L: Signals and Transforms Lab Spring 2007 Lab #1 - Introduction to MATLAB Lab Handout Matlab Software: Matlab will be the analytical tool used in the signals lab. The laboratory has network licenses

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

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

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

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

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

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

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

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

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

Introduction to MATLAB Practical 1

Introduction to MATLAB Practical 1 Introduction to MATLAB Practical 1 Daniel Carrera November 2016 1 Introduction I believe that the best way to learn Matlab is hands on, and I tried to design this practical that way. I assume no prior

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

Math 227 EXCEL / MEGASTAT Guide

Math 227 EXCEL / MEGASTAT Guide Math 227 EXCEL / MEGASTAT Guide Introduction Introduction: Ch2: Frequency Distributions and Graphs Construct Frequency Distributions and various types of graphs: Histograms, Polygons, Pie Charts, Stem-and-Leaf

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

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

Handout 1: Viewing an Animation

Handout 1: Viewing an Animation Handout 1: Viewing an Animation Answer the following questions about the animation your teacher shows in class. 1. Choose one character to focus on. Describe this character s range of motion and emotions,

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

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

(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

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

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

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

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

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

Computational Modelling 102 (Scientific Programming) Tutorials

Computational Modelling 102 (Scientific Programming) Tutorials COMO 102 : Scientific Programming, Tutorials 2003 1 Computational Modelling 102 (Scientific Programming) Tutorials Dr J. D. Enlow Last modified August 18, 2003. Contents Tutorial 1 : Introduction 3 Tutorial

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

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

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

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

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

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

A = [1, 6; 78, 9] Note: everything is case-sensitive, so a and A are different. One enters the above matrix as

A = [1, 6; 78, 9] Note: everything is case-sensitive, so a and A are different. One enters the above matrix as 1 Matlab Primer The purpose of these notes is a step-by-step guide to solving simple optimization and root-finding problems in Matlab To begin, the basic object in Matlab is an array; in two dimensions,

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

AN INTRODUCTION TO MATLAB

AN INTRODUCTION TO MATLAB AN INTRODUCTION TO MATLAB 1 Introduction MATLAB is a powerful mathematical tool used for a number of engineering applications such as communication engineering, digital signal processing, control engineering,

More information

Descriptive Statistics, Standard Deviation and Standard Error

Descriptive Statistics, Standard Deviation and Standard Error AP Biology Calculations: Descriptive Statistics, Standard Deviation and Standard Error SBI4UP The Scientific Method & Experimental Design Scientific method is used to explore observations and answer questions.

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

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

MATLAB. Miran H. S. Mohammed. Lecture 1

MATLAB. Miran H. S. Mohammed. Lecture 1 MATLAB Miran H. S. Mohammed 1 Lecture 1 OUTLINES Introduction Why using MATLAB Installing MATLAB Activate your installation Getting started Some useful command Using MATLAB as a calculator 2 INTRODUCTION

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

CS100R: Matlab Introduction

CS100R: Matlab Introduction CS100R: Matlab Introduction August 25, 2007 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

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

MATLAB Introductory Course Computer Exercise Session

MATLAB Introductory Course Computer Exercise Session MATLAB Introductory Course Computer Exercise Session This course is a basic introduction for students that did not use MATLAB before. The solutions will not be collected. Work through the course within

More information

A Basic Guide to Using Matlab in Econ 201FS

A Basic Guide to Using Matlab in Econ 201FS A Basic Guide to Using Matlab in Econ 201FS Matthew Rognlie February 1, 2010 Contents 1 Finding Matlab 2 2 Getting Started 2 3 Basic Data Manipulation 3 4 Plotting and Finding Returns 4 4.1 Basic Price

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

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 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

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

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

Getting started with MATLAB

Getting started with MATLAB Sapienza University of Rome Department of economics and law Advanced Monetary Theory and Policy EPOS 2013/14 Getting started with MATLAB Giovanni Di Bartolomeo giovanni.dibartolomeo@uniroma1.it Outline

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

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

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

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

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

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

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

KaleidaGraph Quick Start Guide

KaleidaGraph Quick Start Guide KaleidaGraph Quick Start Guide This document is a hands-on guide that walks you through the use of KaleidaGraph. You will probably want to print this guide and then start your exploration of the product.

More information

A Very Brief Introduction to Matlab

A Very Brief Introduction to Matlab A Very Brief Introduction to Matlab by John MacLaren Walsh, Ph.D. for ECES 63 Fall 26 October 3, 26 Introduction To MATLAB You can type normal mathematical operations into MATLAB as you would in an electronic

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

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

Data Analysis and Solver Plugins for KSpread USER S MANUAL. Tomasz Maliszewski

Data Analysis and Solver Plugins for KSpread USER S MANUAL. Tomasz Maliszewski Data Analysis and Solver Plugins for KSpread USER S MANUAL Tomasz Maliszewski tmaliszewski@wp.pl Table of Content CHAPTER 1: INTRODUCTION... 3 1.1. ABOUT DATA ANALYSIS PLUGIN... 3 1.3. ABOUT SOLVER PLUGIN...

More information

Importing and processing a DGGE gel image

Importing and processing a DGGE gel image BioNumerics Tutorial: Importing and processing a DGGE gel image 1 Aim Comprehensive tools for the processing of electrophoresis fingerprints, both from slab gels and capillary sequencers are incorporated

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

SAS Visual Analytics 8.2: Getting Started with Reports

SAS Visual Analytics 8.2: Getting Started with Reports SAS Visual Analytics 8.2: Getting Started with Reports Introduction Reporting The SAS Visual Analytics tools give you everything you need to produce and distribute clear and compelling reports. SAS Visual

More information

Desktop Command window

Desktop Command window Chapter 1 Matlab Overview EGR1302 Desktop Command window Current Directory window Tb Tabs to toggle between Current Directory & Workspace Windows Command History window 1 Desktop Default appearance Command

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

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

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

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

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

ME 365 EXPERIMENT 3 INTRODUCTION TO LABVIEW

ME 365 EXPERIMENT 3 INTRODUCTION TO LABVIEW ME 365 EXPERIMENT 3 INTRODUCTION TO LABVIEW Objectives: The goal of this exercise is to introduce the Laboratory Virtual Instrument Engineering Workbench, or LabVIEW software. LabVIEW is the primary software

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

EF5 Overview. University of Oklahoma/HyDROS Module 1.3

EF5 Overview. University of Oklahoma/HyDROS Module 1.3 EF5 Overview University of Oklahoma/HyDROS Module 1.3 Outline Day 1 WELCOME INTRODUCTION TO HYDROLOGICAL MODELS EF5 OVERVIEW Features of EF5 Model structure Control file options Warm-up and model states

More information

HOUR 12. Adding a Chart

HOUR 12. Adding a Chart HOUR 12 Adding a Chart The highlights of this hour are as follows: Reasons for using a chart The chart elements The chart types How to create charts with the Chart Wizard How to work with charts How to

More information

Matlab Tutorial: Basics

Matlab Tutorial: Basics Matlab Tutorial: Basics Topics: opening matlab m-files general syntax plotting function files loops GETTING HELP Matlab is a program which allows you to manipulate, analyze and visualize data. MATLAB allows

More information

OUTLINES. Variable names in MATLAB. Matrices, Vectors and Scalar. Entering a vector Colon operator ( : ) Mathematical operations on vectors.

OUTLINES. Variable names in MATLAB. Matrices, Vectors and Scalar. Entering a vector Colon operator ( : ) Mathematical operations on vectors. 1 LECTURE 3 OUTLINES Variable names in MATLAB Examples Matrices, Vectors and Scalar Scalar Vectors Entering a vector Colon operator ( : ) Mathematical operations on vectors examples 2 VARIABLE NAMES IN

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

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

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 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

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

The inverse of a matrix

The inverse of a matrix The inverse of a matrix A matrix that has an inverse is called invertible. A matrix that does not have an inverse is called singular. Most matrices don't have an inverse. The only kind of matrix that has

More information

Chapter 4: Programming with MATLAB

Chapter 4: Programming with MATLAB Chapter 4: Programming with MATLAB Topics Covered: Programming Overview Relational Operators and Logical Variables Logical Operators and Functions Conditional Statements For Loops While Loops Debugging

More information

The MathWorks - MATLAB Digest June Exporting Figures for Publication

The MathWorks - MATLAB Digest June Exporting Figures for Publication Page 1 of 5 Exporting Figures for Publication by Ben Hinkle This article describes how to turn figures into publication-ready Encapsulated Postscript (EPS) files using a new MATLAB script called exportfig.m.

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

Chapter 2. MathScript

Chapter 2. MathScript Chapter 2. MathScript 2.1 What is MathScript MathScript is math-oriented, text-based computing language to address tasks mathematic calculation: Most suitable for Mathematic calculation. Matrix based data

More information

Lab 4 - Missing data estimation and multiple realizations

Lab 4 - Missing data estimation and multiple realizations Due Date: 17:00, Friday, October 23, 2009 TA: Yunyue (Elita) Li (yunyue.li@sep.stanford.edu) Lab 4 - Missing data estimation and multiple realizations De Zhu 1 ABSTRACT Geostatistics has gained much recent

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