Book Image

GNU Octave Beginner's Guide

By : Jesper Schmidt Hansen
Book Image

GNU Octave Beginner's Guide

By: Jesper Schmidt Hansen

Overview of this book

Today, scientific computing and data analysis play an integral part in most scientific disciplines ranging from mathematics and biology to imaging processing and finance. With GNU Octave you have a highly flexible tool that can solve a vast number of such different problems as complex statistical analysis and dynamical system studies.The GNU Octave Beginner's Guide gives you an introduction that enables you to solve and analyze complicated numerical problems. The book is based on numerous concrete examples and at the end of each chapter you will find exercises to test your knowledge. It's easy to learn GNU Octave, with the GNU Octave Beginner's Guide to hand.Using real-world examples the GNU Octave Beginner's Guide will take you through the most important aspects of GNU Octave. This practical guide takes you from the basics where you are introduced to the interpreter to a more advanced level where you will learn how to build your own specialized and highly optimized GNU Octave toolbox package. The book starts by introducing you to work variables like vectors and matrices, demonstrating how to perform simple arithmetic operations on these objects before explaining how to use some of the simple functionality that comes with GNU Octave, including plotting. It then goes on to show you how to write new functionality into GNU Octave and how to make a toolbox package to solve your specific problem. Finally, it demonstrates how to optimize your code and link GNU Octave with C and C++ code enabling you to solve even the most computationally demanding tasks. After reading GNU Octave Beginner's Guide you will be able to use and tailor GNU Octave to solve most numerical problems and perform complicated data analysis with ease.
Table of Contents (15 chapters)
GNU Octave
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface

Time for action - analysing the exchange rate


  1. 1. Assume that we have loaded the currency exchange rate data into a variable curr and that we have 230 data points. The month index is given by:

octave:39> m_index = [0:229];
  1. 2. The increasing trend is given by the end-points in the data:

octave:40> a = (curr(230)-curr(1))/229; b = curr(1);
  1. 3. Subtracting the trend from the data:

octave:41> curr1 = curr a*m_index b;
  1. 4. To ensure a data set with zero-mean, we use:

octave:42> curr2 = curr1-mean(curr1);
  1. 5. We can then perform a Fourier analysis on the "trend-free" data using the ordinary frequency f = ω / 2π:

octave:43> N=230; n=[-N/2:N/2]; n(N+1) = []; freq = n./N;
octave:44> acurr = abs( fftshift( fft(curr2) ) );
  1. 6. To plot the result, we use:

octave:45> plot(freq, acurr)
  • The result is shown below for positive frequencies. Note that we may have an aliasing problem!

  1. 7. Now the ordinary frequency of the main mode is:

octave:46> i = find( acurr==max(accur) ); freq(i)
ans = 0.030434...