Heuristic evaluation: Comparing ways of ï¬nding and reporting
Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding -...
Transcript of Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding -...
![Page 2: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/2.jpg)
MATLAB1
1This script is based on a MATLAB course of Alexey Cherepnev and Tobias
Nagel at University of Mainz.
![Page 3: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/3.jpg)
Outline
I Root �nding and Optimization
I Integration and Interpolation
I Random numbers
I Ordinary di�erential equations
![Page 4: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/4.jpg)
Root �nding - Introduction
I Determination of roots of a function common problem, e.g.�nding local extrema
I Some problems can be referred as root �nding, e.g.f (x) = a ⇒ g(x) = 0, g(x) = f (x)− a
I In most cases, numerical methods will need an initial guessand will �nd the nearest root
I How to �nd an initial guess?I Graphical guess, using a plot of the functionI Plot function and select a guess using the mouse (�ginput�)
We need at least a continous function.
![Page 5: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/5.jpg)
roots
Finding roots of polynomials: �roots(c)�c is a vector containing the coe�cients of the polynomial
Example 1
f (x) = x2 − x − 6» c =[1 -1 -6];» roots(c)ans =3-2
Example 2
f (x) = 10x3 − 2x2 + 3» c = [10 -2 0 3];» roots(c)ans =0.4045 + 0.5736i0.4045 - 0.5736i-0.6090
![Page 6: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/6.jpg)
fzero
Let f be a continuous function of one variable.
I fzero(<fun>, x0) determines a root of the function<fun> near x0 (which can be either a scalar or a vector oflength two).
I According to x0, fzero tries to �nd a starting interval wherethe given function has a change in sign. Then this functionuses a combination of bisection and other algorithms
I Many options (input as well as output) ⇒ �help fzero�
Example:
We want to use our function eval_poly3 together with fzero
» a = [1 2 3 0];» fzero(@(x)eval_poly3(a,x),...0.5)ans =-6.9198e-020
Here we need an anonymousfunction handle @(x)since wehave an additional inputargument (vector a).
![Page 7: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/7.jpg)
fsolve
I We already discussed fsolve
I Solves F (x) = 0 (also multivariate functions possible)
Example
F (X ) =
(x2 + 1
25y2 − 1
4x3 + 5x2 + 6x − y − 1
)= 0, X =
(xy
)
![Page 8: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/8.jpg)
Solving systems of nonlinear equations
FunNonLin.m
function F = FunNonLin(X)%function-file%Input: X - 2-dim%col-vector%Output: F - 2-dim%vector, function valuesx = X(1); y = X(2);F = [xˆ2+(yˆ2)/25-1;4*xˆ3+5*xˆ2+6*x-y-1];
Command window» [x, fval] = fsolve(’FunNonLin’, [0.6 4])Optimization terminated: first-orderoptimality is less than options.TolFun.x =
0.5334 4.2294fval =1.0e-008 *
0.0125 0.1381
» fsolve(’FunNonLin’, [-0.6 -4])Optimization terminated: first-orderoptimality is less than options.TolFun.ans =
-0.6401 -3.8413
![Page 9: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/9.jpg)
Optimization with constraints
fmincon can handle
min f (x), s.t.
A · x ≤ bAeq · x = beqc(x) ≤ 0ceq(x) = 0lb ≤ x ≤ ub
x , b, beq, lb and ub are vectors, A,Aeq are matrices, c(x), ceq(x) arefunctions returning vectors and f (x) is a function that returns ascalar.
I x = fmincon(’fun’, x0, A, b)
I x = fmincon(’fun’, x0, A, b, Aeq, beq)
I x = fmincon(’fun’, x0, A, b, Aeq, beq, lb, ub)
I x = fmincon(’fun’, x0, A, b, Aeq, beq, lb, ub, ’nonlcon’)
⇒ If you have, e.g. only Aeq, beq you have to use the second optionand set A = [], b = [].
![Page 10: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/10.jpg)
fmincon cont.
fun and nonlcon are functions, so we need a tool to pass afunction to another function:⇒ �function handle�:
I Using the �@�: �fh=@functionName�
I Within a function-call: � ' �
Option 1: x = fmincon(@fun, x0, A, b)Option 2: x = fmincon(’fun’, x0, A, b)
In both cases fmincon will use the function �le fun.m.
![Page 11: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/11.jpg)
Example: Utility maximization
We would like to solve
max u(x , y , z)s.t.0 ≤ x + 2y + 2z ≤ 72.
In order to use fmincon, we look at
min−u(x , y , z)s.t.{−x − 2y − 2z ≤ 0x + 2y + 2z ≤ 72
}⇔ Ax ≤ b
Command window» A = [-1 -2 -2;1 2 2 ];» b = [0;72];» x0 = [10; 10; 10];» [x, fval]=fmincon(’fun’, x0,A, b)x =24.0000 12.0000 12.0000
fval =-3.4560e+003
fun.mfunction out = fun(x)out = -(x(1)*x(2)*x(3));
![Page 12: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/12.jpg)
Integration
I We want to compute the integral of a function f , i.e.I =
∫ ba f (x)dx .
I We cannot form the primitive of a function (this would beanalytical, not numerical).
I Focus on �classical approaches� based on quadrature formulas:
Quadrature formula
A quadrature formula is de�ned as
I [f ] =
∫ b
af (x)dx =
m∑i=1
wi f (xi ) =: Q[f ]
with weights wi and knots xi .
![Page 13: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/13.jpg)
Integration cont.
In MATLAB there are e.g.
I �quad(<fun>, a, b)�
I �quadgk(<fun>, a, b)�
Disadvantage:
I Functional form is needed, but often only data points areknown.⇒ Not a problem if implementation of Trapezium rule orSimpson's rule
![Page 14: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/14.jpg)
Curves of best �t
We want to �nd the best �tting curve for given data points.⇒ Need measure of �best�
Least Squares method: The least squares method takes itsoptimum, when the sum of squared residuals is a at minimum. Aresidual is de�ned as the di�erence of the predicted curve and thevalue of the data at this point.Let (xi , yi ) be data points and f (x ;β) the model function, then f isthe curve of best �t if
f (x ;β) = minf
∑i
r2i := mini
∑i
(f (xi ;β)− yi )2
![Page 15: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/15.jpg)
Line of best �t
As an example, we will determine a straight line, which �ts best agiven data set.Let f (x ;β) := f (x ;m, t) = mx + t be our model function. We haveto choose m, t in order to minimize r :=
∑ir2i . Therefore
di�erentiate:
∂r
∂m=
N∑i=1
2xi (mxi + t − yi ) = 0
∂r
∂t=
N∑i=1
2(mxi + t − yi ) = 0
⇔
mN∑i=1
x2i + tN∑i=1
xi =N∑i=1
xiyi
mN∑i=1
xi + tN =N∑i=1
yi
![Page 16: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/16.jpg)
Line of best �t cont.
I This system of equations can be transferred into matrix formAx = b and solved in MATLAB to get the unique line of best�t.
I Built-in function �polyfit� also does the job:
Command window» x = [0 2 4 8 10];» y = [1 1.5 0 -5 -4.8];» p = polyfit(x,y,1);» p_val = polyval(p,0:10);
![Page 17: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/17.jpg)
Curves of best �t cont.
polyfit can be used for higher order polynomials, too
You can implement a linear �twith 2 points, a quadratic �t with3 points, a cubic �t with 4points...If you choose a polynomial oforder higher than (# datapoints-1), this won't be unique.
![Page 18: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/18.jpg)
Statistical quantities
mean(x) Arithmetic meanmedian(x) Median valuevar(x) Variancestd(x) Standard deviationcov(x,y) Covariance between x and ycorrcoef(x,y) Correlation coe�cient between x and y...
![Page 19: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/19.jpg)
Random numbers
rand(m,n) returns a m× n matrix of random number between 0and 1 (uniformly distributed, i.e. ∼ U[0,1])
Example: A dice
roll.mfunction x = roll()x=ceil(rand*6);
Command window» x =[]; » for i=1:10000x = [roll() x];end» mean(x)ans =3.5331
» hist(x, 1:6);
![Page 20: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/20.jpg)
Random numbers cont.
randn(m,n) generates a m × n matrix of standard normallydistributed (pseudo) random numbers
More general command: random
random(’norm’,a,b,m,n) Normal distributionrandom(’unif’,a,b,m,n) Uniform distributionrandom(’unid’,a,m,n) Discrete uniform distributionrandom(’bino’,a,b,m,n) Binomial distributionrandom(’chi2’,a,m,n) Chisquare distributionrandom(’logn’,a,b,m,n) Lognormal distributionrandom(’exp’,a,m,n) Exponential distributionrandom(’poiss’,a,m,n) Poisson distribution...
![Page 21: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/21.jpg)
Random numbers cont.
I pdf(’name’,X,a,b)I Returns the probability for given matrix X according to
speci�ed distribution 'name' with paramter values a and b
I cdf(’name’,X,a,b)I Returns the density for given matrix X according to speci�ed
distribution 'name' with parameter values a and b
I Distributions (’name’)
norm Normal distributionunif Uniform distributionunid Discrete uniform distributionpoiss Poisson distributionbino Binomial distributionchi2 Chisquare distributionlogn Lognormal distribution...
![Page 22: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/22.jpg)
Random numbers cont.
Why �pseudo� random?
I The generation of random numbers is a di�cult task
I In MATLAB the sequence of numbers generated is determinedby the state of the generator. Unless this �state� is notchanged the sequence will be the same.
⇒ Pseudo-random numbers exhibits statistical randomness but aregenerated due to an deterministic process
![Page 23: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/23.jpg)
Random numbers cont.
In order to make your result replicable for others, you have to makeyour random numbers replicable:
Command window» s=randn(’state’);» r1=randn(2,2);» randn(’state’,s);» r2=randn(2,2);
These commands save the current state of the random numbergenerator, generate a 2× 2 matrix of random numbers, reset thestate and produces exactly the same matrix of random numbers.
![Page 24: Linear Algebra and MATLAB - Badarinzabadarinza.net/download/christian/slides5.pdf · Root nding - Introduction I Determination of roots of a function common problem, e.g. nding local](https://reader033.fdocuments.us/reader033/viewer/2022042313/5edc4ac8ad6a402d6666e617/html5/thumbnails/24.jpg)
Ordinary di�erential equations
Just an overview of the MATLAB built-in functions:There are several functions which solve the initial value problem(using di�erent methods):
I ode23, ode45, ode113
as well as solver for �sti�� equations (ODE for which the Eulermethod is unstable)
I ode15s, ode23s
All functions use the following syntax:[t,y] = odeXXX(’name’, [t0 T], y0)
name name of function-m-�le, de�ning the function (�rst argumenthas to be t, second argument has to be y)
t0,T start and end pointy0 initial value