(11.) Optimization and Numerical Differentiation
-
Upload
mohamed-deqsabriye -
Category
Documents
-
view
237 -
download
0
description
Transcript of (11.) Optimization and Numerical Differentiation
-
1
CHE338_Lecture#09
For reading
Reference Chapter Page
Chapra 13,23 351-366,653-668
Optimization and
Numerical differentiation
-
2
Objectives
To introduce numerical optimization.
To introduce numerical differentiation.
To introduce matlab functions, fminbnd, fminsearch,
diff, and gradient.
-
3
Optimization
x
f(x)
To determine the minima and maxima of a function
-
4
One-dimensional optimization
x
f(x) Global optima
Local optima
-
5
Golden-section search
x
f(x)
-
6
Parabolic interpolation
x
f(x) A parabolic function
x1
x2 x3
)]()()[()]()()[(
)]()([)()]()([)(
2
1
12323212
12
2
3232
2
1224
xfxfxxxfxfxx
xfxfxxxfxfxxxx
-
7
Matlab function: fminbnd
[xmin,fval]=fminbnd(fun,x1,x2);
To determine the minimum cost of the following bioreactor system
[A] [B]
= 1
1 2
0.6
+ 61
0.6
[A] [B]
[A]
-
8
Matlab function: fminsearch
[xmin,fval]=fminsearch(f,x1,x2)
f=@(x) 2+x(1)-x(2)+2*x(1)^2+2*x(1)*x(2)+x(2)^2
[xopt,optima]=fminsearch(f,[-0.5,0.5])
-
9
Matlab function: fmincon
[xmin,fval] = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
[xopt,optima]=fmincon('mainf',[1,1],[],[],[],[],[],[2;1],'tankdesign')
function f=mainf(x)
mass=8000*((x(1)*pi*((x(2)/2+0.03)^2-
(x(2)/2)^2)+2*pi*(x(2)/2+0.03)^2*0.03));
lw=4*pi*(x(2)+0.03);
f=4.5*mass+20*lw;
end
function [c,ceq]=tankdesign(x)
c=[];
ceq=pi*x(1)*x(2)^2/4-0.8;
end
To determine the dimensions of a cylindrical tank for a liquid with the
lowest cost.
-
10
)(2
)(3)(4)()(
)(2
)()(2)()()()(
)()()(2)(
)(
)(2
)()()()(
2
)()()()(
212
2
2
121
2
12
21
2
1
hOh
xfxfxfxif
hOhh
xfxfxf
h
xfxfxif
hOh
xfxfxfxf
hOhxf
h
xfxfxif
hxf
hxfxfxf
iii
iiiii
iiii
iii
iiii
Forward differentiation
High Accuracy Differentiation
-
11
Forward differentiation
-
12
Backward differentiation
-
13
Centered differentiation
-
14
To improve derivative estimates
Decrease the step size Use a higher-order formula Use Richardson extrapolation
Accurate approximation
Richardson extrapolation, uses two derivative
estimates to compute a third.
For centered difference approximations with O(h2). The application of this
formula yield a new derivative estimate of O(h4).
-
15
Example 9.1 (Example 23.1 and 23.2)
2.125.05.015.01.0)( 234 xxxxxf
-
16
For unequally spaced data
iiiiii
i
iiii
iii
iiii
iii
xxxx
xxxxf
xxxx
xxxxf
xxxx
xxxxfxf
111
11
11
11
111
11
2)(
2)(
2)()(
Use a second-order Lagrange interpolating polynomial
to estimate the first derivative.
x is the value at which you want to estimate the derivative.
One can estimate the derivative anywhere within the range prescribed
by three points
-
17
Example 9.2 (Example 23.3)
Heat flux on the surface
(z=0):
-
18
Matlab function: diff and gradient
From the matlab help,
diff(X), for a vector X
[FX,FY] = gradient(F) returns the numerical gradient of the matrix F. FX corresponds to dF/dx, the differences in x
(horizontal) direction. FY corresponds to dF/dy
[FX,FY] = gradient(F,H), where H is a scalar, uses H as
the spacing between points in each direction.
f =@(x) 0.2+25*x-200*x.^2+675*x.^3-900*x.^4+400*x.^5
From 0 to 1.