Download presentation

Presentation is loading. Please wait.

Published byBrandon Culwell Modified over 2 years ago

1
Engr 0012 (04-1) LecNotes 13-01

2
Engr 0012 (04-1) LecNotes 13-02 Functional analysis y = f(x) things to do 1. sketch graph 2. find roots (zeros) 3. find minima 4. find maxima 5. find area “under” curve 6. show f(x) dx 7. show d[f(x)]/dx

3
Engr 0012 (04-1) LecNotes 13-03 Declaring/using a function for evaluation two methods string declaration fcn_name = 'function definition'; myfcn = ' 2*cos(3*x)./exp(x) ' myfcn = 2*cos(3*x)./exp(x) creates a string variable for function string use - use eval function yvalues = eval(fcn_name); >> x = linspace(0,pi,8); creates 8 points in (0, ) required!! a vector or variable with same name as variable used in fucntion >> y1 = eval(myfcn) y1 = 2.0000 0.2841 -0.7344 -0.3244 0.2071 0.1911 -0.0301 -0.0864 evaluates fcn at those 8 points

4
Engr 0012 (04-1) LecNotes 13-04 Declaring/using a function for evaluation string use >> clear x >> xpts = linspace(0,pi,8); >> y1 = eval(myfcn) ??? Undefined function or variable 'x'. no longer have a vector or variable “x” in the workspace potential problem: if eval is working, is it working on the data set you intended to use - or some prior definition of x?

5
Engr 0012 (04-1) LecNotes 13-05 Declaring/using a function for evaluation string declaration/use advantages easy to use in MATLAB command window good for one-time evaluations disadvantages hard-wired - cannot change without effort can’t use in general purpose script or function must have vector with same variable name as used in function declaration

6
Engr 0012 (04-1) LecNotes 13-06 Declaring/using a function for evaluation m-file declaration function [y] = fcn_name(x) needs results function [y] = f13a(x) y = 2*cos(3*x)./exp(x); create function, save to current directory m-file use - use feval function >> fname = input( 'Enter function file name ==> ', 's' ) Enter function file name ==> f13a fname = f13a ask for function name - response does not need to have.m because it must be an m-file y_vec = feval(fcn_name,x_vec) “indirect” reference to the function

7
Engr 0012 (04-1) LecNotes 13-07 Declaring/using a function for evaluation m-file use - use feval function >> ypts = feval(fname,xpts) y2 = 2.0000 0.2841 -0.7344 -0.3244 0.2071 0.1911 -0.0301 -0.0864 >> xnew = 1:1:5 xnew = 1 2 3 4 5 >> ynew = feval(fname,xnew) ynew = -0.7284 0.2599 -0.0907 0.0309 -0.0102 feval works with any vector name - not just the one that was used in the function file

8
Engr 0012 (04-1) LecNotes 13-08 Declaring/using a function for evaluation m-file declaration/use advantages generic - can write scripts that ask for function name scripts can be used for multiple function evaluations without editing works with any independent vector name/set disadvantages have to create separate function with equation cumbersome to use in MATLAB command window

9
Engr 0012 (04-1) LecNotes 13-09 Quick plot of a function - fplot >> domain = [min(x),max(x)] domain = 0 3.1416 establish domain for plot >> fplot(fname,domain) m-file function >> fplot(myfcn,domain) string function can use either declaration form with fplot

10
Engr 0012 (04-1) LecNotes 13-10 Finding roots - fzero xzero = fzero(fcn_name,approximate location of root) >> xzero1 = fzero(fname,0.5) xzero1 = 0.5236 >> xzero2 = fzero(myfcn,1.5) xzero2 = 1.5708 can use either declaration form with fzero

11
Engr 0012 (04-1) LecNotes 13-11 Finding minima - fminbnd xmin = fminbnd(fcn_name,xlow,xhigh) >> xmin1 = fminbnd(fname,0.5,1.5) xmin1 = 0.9399 >> xmin2 = fminbnd(fname,2.5,max(x)) xmin2 = 3.0343 can use either declaration form with fminbnd

12
Engr 0012 (04-1) LecNotes 13-12 Finding maxima no fmaxbnd command can define new function string >> neg_myfcn = ['-1*(',myfcn,')']; call fminbnd with negative of function >> max1 = fminbnd(neg_myfcn,1.5,2.5) max1 = 1.9871 m-file function [y] = neg_f11a(x) y = -2*cos(3*x)./exp(x); need to create and save in current directory >> negf = input( 'neg fcn name? ==> ','s' ); neg fcn name? neg_f13a >> max2 = fminbnd(negf,1.5,2.5) max2 = 1.9871

13
Engr 0012 (04-1) LecNotes 13-13 Finding areas neg area pos area easiest: use quad area = quad(fcn_name,xmin,xmax) >> area1 = quad(myfcn,1.5,2.5) area1 = 0.1620 >> area2 = quad(fname,min(x),max(x)) area2 = 0.2086 can use either declaration form with quad

14
Engr 0012 (04-1) LecNotes 13-14 Finding areas more complex and not as accurate!!! use trapz area = trapz(xtrap,ytrap) need to define x & y vectors of points numtraps = 100; xtrap = xlow:(xhigh-xlow)/numtraps:xhigh; ytrap = feval(fcn_name,xtrap) area = trapz(xtrap,ytrap)

15
Engr 0012 (04-1) LecNotes 13-15 Finding f(x) dx over a range objective is to create a vector of cumulative area versus x value and then plot them on the graph (i.e. area(x) vs x % create xpts for plotting; xpts = xlow:(xhigh-xlow)/200:xhigh; for i = 1:1:length(xpts) cumarea(i) = quad(fcn_name,xpts(1),xpts(i)); end % plot cumulative area plot(xpts,cumarea,‘g-’)

16
Engr 0012 (04-1) LecNotes 13-16 Finding d[f(x)]/dx over a range objective is to create a vector of derivatives versus x value and then plot them on the graph (i.e. deriv(x) vs x similar to cumulative area see text, Section 4.15, for discussion

Similar presentations

OK

Engr 0012 (04-1) LecNotes 14-01 Declaring/using a function for evaluation String Function Declaration sfname = '2*x+2'; Calculating “y-values” x = linspace(-5,5,8);

Engr 0012 (04-1) LecNotes 14-01 Declaring/using a function for evaluation String Function Declaration sfname = '2*x+2'; Calculating “y-values” x = linspace(-5,5,8);

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on obesity management cat Ppt on water conservation in industries Ppt on chromosomes and genes video Free ppt on ozone layer depletion Free download ppt on web browser Ppt on second law of thermodynamics examples Ppt on mid point theorem for class 9 Ppt on obesity management images Ppt on weapons of mass destruction wow Ppt on water activity of foods