Solving biological problems with MATLAB Lecturer: Chen Keasar, e-mail:...
-
Upload
martina-bailey -
Category
Documents
-
view
217 -
download
0
Transcript of Solving biological problems with MATLAB Lecturer: Chen Keasar, e-mail:...
Solving biological problems with MATLAB
Lecturer: Chen Keasar, e-mail: [email protected] hours: 37/102 Sunday, 14:00-16:00
Tutors: Mor Ben-Tov (Life Sciences) E-mail: [email protected]
Office hours: 40/310 Wednesday 15:00-16:00
Yonatan Natan (Sde-Boker) E-mail: [email protected] Office hours: Sunday 15:00-16:00
• Web page URL:http://lhttp://moodle.bgu.ac.il/moodle/
What will you learn in the course?
• Algorithms
• Building blocks for writing a MATLAB program
• Using MATLAB for mathematical applications
• Handling graphics in MATLAB
The rules of this course
• No formal pre-requisite
• Math course ( מערכות של or equivalent) is מתמטיקהassumed
• lecture notes on web - print and bring
• Tutorials – central role in the course
• Start in class, complete at home, submit every week (through the web site)
• Each student submits own independent work
• The use of the Forum of course is allowed, but no code
• Missing tutorials (e.g., Miluim), can be exempt but it’s your interest to submit even if later3
The rules of the game (cont.)
• Students from Sede Boqer campus will have tutorial there
• The tutors will instruct you exactly how tom submit tutorial – MUST follow instructions
• Tutorials not submitted accordingly – will not be accepted !
• Final project – selected from a list - or request your own project (no tater than week 5 of the semenster).
• After project submission – an oral exam in front of computer on the project
• Final grade – 35% tutorials, 65% final exam
What do I do with MATLAB?
CLUSTERING
Generation of energy function
What is MATLAB• MATLAB is a language
• MATLAB is an interpreter
• MATLAB is an integrated environment
• MATLAB is a product of MathWorks
What is MATLAB• MATLAB is a language
popSize=23
is a statement in this language.
It means:
1. Allocate some space in the computer memory.
2. Tag this space “popSize”.
3. Store the number 23 in that space.
• MATLAB is an interpreter
• MATLAB is an integrated environment
What is MATLAB• MATLAB is a language
popSize=23
• MATLAB is an interpreter
A program that:
1. reads MATLAB statements
2. Translates them to machine language
3. Executes them.
• MATLAB is an integrated environment
What is MATLAB• MATLAB is a language
popSize=23
• MATLAB is an interpreter (command window)
>>
popSize =
23
• MATLAB is an integrated environment
popSize=23
What is MATLAB• MATLAB is a language
popSize=23
• MATLAB is an interpreter (command window)
• MATLAB is an integrated environment
What is MATLAB• MATLAB is an integrated environment
Programming with MATLAB
Basic components in computer program
takes input -> operates on it -> gets output
Various Input/Output methods – later
simplest input:
Allocating a value to a variable, e.g.,:
a=2
popSize=23
Variable Names• Variables start with a letter
• Can continue with more letters, digits etc.
• Not longer than 31 characters
• Make names easy to remember
• make sure no typos
• MATLAB is case sensitive
• popSize is different from PopSize or popSize1
Non-recommended variable names a
b1
gc
initialpopulationsize
Functions extend the language
Specific Syntax:
function output=functionName(input)…. the function itself …end
Words of MATLAB language
function output=functionName(input)…. the function itself …end
Any word you want. Becomes a new word in the language
function output=functionName(input)…. the function itself …end
Any word you want. Known only within the function
function output=functionName(input)…. the function itself …end
MATLAB code (may include function calls)
Our first functionMotivation: populations parthenogenetic aphids
Our first functionfunction popSize2 = popDynam(popSize1)
birthRate = 0.2
deathRate = 0.1
birth = popSize1 * birthRate
death = popSize1 * deathRate
change = birth - death
popSize2 = popSize1 + change
end
We will save it in a file popDynam.m
What had happened?The MATLAB interpreter replaced popSize1 by 23 and executed the lines one by one.
function popSize2 = popDynam(popSize1)
birthRate = 0.2
deathRate = 0.1
birth = popSize1 * birthRate
death = popSize1 * deathRate
change = birth - death
popSize2 = popSize1 + change
end
23
23
23
23
This is a bit too verbose
Our first function (fixed)
function popSize2 = popDynam(popSize1)
birthRate = 0.2;
deathRate = 0.1;
birth = popSize1 * birthRate;
death = popSize1 * deathRate;
change = birth – death;
popSize2 = popSize1 + change;
end Is this the shortest way I could write the function?
The function’s value may be assigned to a variable
(actually it is always assigned)
Variables defined in the command window are kept in memory.
You can see them all in the “Workspace” window
The function’s variable are recognized only within the function
Some other aphids may have different birth and death rates.
function popSize2=popDynam(popSize1, birthRate, deathRate)
birth = popSize1 * birthRate;
death = popSize1 * deathRate;
change = birth - death;
popSize2 = popSize1 + change;
end
We may want to know the number of births and deaths
function pop = popDynam(popSize1, birthRate, deathRate)
birth = popSize1 * birthRate;
death = popSize1 * deathRate;
change = birth - death;
popSize2 = popSize1 + change;
pop = [popSize2 birth death];end
Row vector
A row vector may be transposed to a column vector
From vectors to matrices
>> popParam= [24 0.2 0.1; 38 0.25 0.05]popParam = 24.0000 0.2000 0.1000 38.0000 0.2500 0.0500
Indexing an array/matrixpopParam(1,1) popParam(1,2) popParam(1,3)popParam(2,1) popParam(2,2) popParam(2,3)
popParam = 24.0000 0.2000 0.1000 38.0000 0.2500 0.0500
>> popParam(1,1)ans = 24
>> popParam(2,2)ans = 0.2500
popParam = 24.0000 0.2000 0.1000 38.0000 0.2500 0.0500
>> popParam(1,2:3)ans = 0.2000 0.1000
Note the colon! Here, it represents “to”Note, this is a vector>> ans(1)ans = 0.2000
popParam = 24.0000 0.2000 0.1000 38.0000 0.2500 0.0500
>> popParam(1,:)ans = 24.0000 0.2000 0.1000
Note the colon! Here, it represents “all”