270 likes | 436 Views
Lecture 11. Chap. 15. Outline-1. 15.1 Interpolation 15.1.1 Linear Interpolation 15.1.2 Cubic Spline Interpolation 15.1.3 Extrapolation 15.2 Curve Fitting 15.2.1 Linear Regression 15.2.2 Polynomial Regression. Outline-2. 15.3 Numerical Integration
E N D
Lecture 11 Chap. 15
Outline-1 • 15.1 Interpolation • 15.1.1 Linear Interpolation • 15.1.2 Cubic Spline Interpolation • 15.1.3 Extrapolation • 15.2 Curve Fitting • 15.2.1 Linear Regression • 15.2.2 Polynomial Regression
Outline-2 • 15.3 Numerical Integration • 15.3.1 Determination of the Complete Integral • 15.3.2 Continuous Integration Problems • 15.4 Numerical Differentiation • 15.4.1 Difference Expressions • 15.4.2 MATLAB Implementation
Interpolation • We have at least two points with independent (think, horizontal axis) and dependent (think, vertical axis) components. • We have another independent component,whose value is in between the smallest and the greatest of the previous independent components. • We would like to know the corresponding dependent component.
Methods of Estimating the Result of Interpolation • Linear • Piecewise-linear • Polynomial • Cubic Spline • Interpolation via Gaussian Processes • Other
Quality Considerations • Accuracy of interpolated value • Amount of work to obtain an interpolated value • Amount of initial data needed • …
Example Interpolation • From http://en.wikipedia.org/wiki/Interpolation
Linear Interpolation • If the initial points all lie on a line (y = mx + b) then use the equation of the line on newX. • If there are only two initial points, they define a line.
Piecewise Linear • Use adjacent pairs of initial points to define lines. • With the point whose value is to be estimated by interpolation, choose the relevant defined line. Y = m(i) x(i) + b(i).
Polynomial • If we had a polynomial for y in terms of x, • then, with an x to be interpolated, • we would evaluate the polynomial • So, what’s left is to obtain a polynomial • For n points, there is one polynomial of degree n-1 that touches all of the points • Can be computationally complex to find it
Spline • Piecewise – polynomial • Low degree polynomials for intervalsbetween furnished points • Connection from one interval to the next smooth • Smaller error than linear interpolation (if linear is not perfect) • Less work than perfect polynomial (if “real” polynomial is of higher degree than that of spline)
Cubic Spline • The curve between each pair of points is a third-degree polynomial. There is a parameter t that varies from 0 to 1, and the distance from the starting point to the ending point goes from 0 to 100%. • X = at 3 + b t 2 + c t + d • Y = et 3 + f t 2 + g t + h • So, need to know the values of a, b, …h
How to … Linear • X = [ the independent axis values] • Y = [the dependent axis values] • Only works when X, Y pairs are all on the same line. • answer_y = interp1(x,y, target_x)
How to…Piecewise Linear • X = [ the independent axis values] • Y = [the dependent axis values] • whichInterval = 0; • for i = 1:length(X) • if target_x > X(i) • whichInterval = whichInterval+1; • end • Interval_x = [ x(whichInterval) x(whichInterval+1)] • Interval_y = [ y(whichInterval) y(whichInterval+1)] • answer_y = interp1(Interval_x, Interval_y, target_x)
How to…Cubic Spline • answer_y = spline(x, y, target_x)
15.1.3 Extrapolation • This is where one tries to guess beyond the limits of the available data. • Be aware that error in this process can be significant. • Cannot use interp1 • Can use spline
15.2 Curve Fitting • In polynomial interpolation we observed that for n points there is a polynomial of degree n-1 that includes all of the points. • Suppose we believe that the points are not perfect, as in measured data. • Suppose we choose a degree of polynomial less than n, and then choose some coefficients for the polynomial, such that the difference between the measured data and the resulting polynomial is “minimized”.
Polynomial Curve Fitting-1 • Degree of polynomial is the largest exponent • Polynomial in x: • f(x) = ax n + bxn-1 + cxn-2 … dx + e • has degree n • has n+1 coefficients • so, with n+2 choices, the polynomial is determined • Choose/guess the degree from information about the problem.
Polynomial Curve Fitting -2 • What constitutes a “good” fit, for a particular choice of degree, n? • Least squares is one kind of measure of how good the fit is. If for each point x,y, we take the difference between the y of the point and the y of the polynomial curve, square the difference (yields a positive number) and add up all those squared differences, we get a measure of goodness of fit called least squares.
Linear Regression • If in curve fitting, we choose the degree n to be 1, we are fitting by linear regression. • To get MATLAB to determine the coefficients, we call polyfit with n=1, which looks like polyfit(x,y,1) • Polyfit returns the coefficients in linearly decreasing order of power of the variable in the polynomial. If n = 1, f(x)= ax+b, and the first coefficient returned is a, and the second is b.
Polynomial Regression • Suppose we choose a degree of polynomial, called n, > 1. • There will be more coefficients. • For example, n=3, the number of coefficients will be 4. • coef = polyfit (x, y, n) • Now that coef is set, it can be used. • New_y = polyval(coef, new_y)
More degrees of freedom yields closer fit function viewFits() x = 0:5; fine_x = 0:.1:5; y = [0 20 60 68 77 110]; for order = 2:5 y2=polyval(polyfit(x,y,order), fine_x); subplot(2,2,order-1) plot (x,y,'o', fine_x, y2) axis([-1 7 -20 120]) ttl = sprintf('Degree %d Polynomial Fit',... order); title(ttl) xlabel('Time (sec)') ylabel('Temperature (degrees F)') end
15.3 Numerical Integration • Using piecewise linear technique • Add areas from trapezoidal rule • KT = (b – a)/2n)(f(a) + 2f(x1) + 2f(x2)… + 2f(xn-1) + f(b)) • Using piecewise parabolic technique • Add areas from Simpson’s rule • KS= (b – a)/2n)(1/3)(f(a) + 4f(x1) + 2f(x2) + 4f(x3)+ … + 2f(xn-2) +4f(xn-1) +f(b))
Numerical Integration Code function K = trapezoid(v,a,b) %h = trapezoid(v,a,b) K=(b-a)*(v(1)+v(end)+... 2*sum(v(2:end-1)))/(2*(length(v)-1)); function K = simpson(v,a,b) %h = simpson(v,a,b) K=(b-a)*(v(1)+v(end)+… 4*sum(v(2:2:end-1))+… 2*sum(v(3:2:end-2)))/ (3*length(v)-1));
Numerical Differentiation • Forward difference: • f’(xk) = (f(x k ) – f( x k-1 ))/(x k – x k-1) • Backward difference: • f’(xk) = (f(x k+1) – f( x k))/(x k+1– x k) • Centered difference: • f’(xk) = (f(x k+1) – f( x k-1 ))/(xk+1– x k-1) • Both forward and backward differences are first-order. They take differences of adjacent terms.
MATLAB function diff • function diff returns a vector of differences between adjacent terms • v(2)-v(1), v(3)-v(2), … • Which of forward, backward is this? Could it be used for either one? • Suppose we wanted centered. Could we use diff? Would we need to prepare by a step?
Forward Difference Code x=-7:0.1:9; f = polyval([0.0333,-0.3,-1.3333,16,0,-187.2,0],x); plot(x,f) hold on df = diff(f)./diff(x) plot(x(2:end),df, ‘g’) grid legend({‘f(x)’,’f ‘’(x)’})