计算机专业外文翻译
PADE APPROXIMATION BY RATIONAL FUNCTION 129We can apply this formula to get the polynomial approximation directly fora given function f (x), without having to resort to the Lagrange or Newtonpolynomial. Given a function, the degree of the approximate polynomial, and theleft/right boundary points of the interval, the above MATLAB routine “cheby()”uses this formula to make the Chebyshev polynomial approximation.The following example illustrates that this formula gives the same approximatepolynomial function as could be obtained by applying the Newton polynomialwith the Chebyshev nodes.Example 3.1. Approximation by Chebyshev Polynomial. Consider the problemof finding the second-degree (N = 2) polynomial to approximate the function. We make the following program “do_cheby.m”, which uses2( )1/(1 8)f xxthe MATLAB routine “cheby()” for this job and uses Lagrange/Newton polynomialwith the Chebyshev nodes to do the same job. Readers can run this programto check if the results are the same.3.4 PADE APPROXIMATION BY RATIONAL FUNCTIONPade approximation tries to approximate a function f (x) around a point xo by arational function(3.4.1)0 0 ,00020 012 0020 12()()()()()() 1()()()M M N NM M N NQxxpxxDxxqq xxqxxqxx d xxdxxxx dwhere are known.00(2)0()0(),(),(),()MNf xfxfxfxHow do we find such a rational function? We write the Taylor series expansionof f (x) up to degree M + N at x = xo as130 INTERPOLATION AND CURVE FITTING(2)0()0 00000200020 012()()( )()()()()()()2()!()()()(3.4.2)MN MN MNMN MNfxfxf xTxxf xfxxxxxxxMNaa xxaxxaxx Assuming 0for simplicity, we get the coefficients of 0x( )( )NMDx andQxsuch that( )( )0( )M MN NQxTxDx011011()(1)()01MNNN MNNN N Naa xaxd xd xqq xq x d xd x (3.4.3)01101()(1)()MNNN MNNNaa xaxd xd xqq xq x by solving the following equations:(3.4.4a) (3.4.4b)00101121102211221112121122120 00MMMMNNMMMMMNNMMMMNNMNMNMNMNaq aa dq aa da dqaadadadq aa dadad aada dadaadada d Here, we must first solve Eq. (3.4.4b) for and then substitute disNddd,21into Eq. (3.4.4a) to obtain Mqqq,10The MATLAB routine “padeap()” implements this scheme to find the coefficientvectors of the numerator/denominator polynomial of the)(/ )(xDxQNMPade approximation for a given function f (x). Note the following things: The derivatives up to order (M + N) are(2)() 000(),(),()MNfxfxfxcomputed numerically by using the routine “difapx()”, that will be introducedin Section 5.3. In order to compute the values of the Pade approximate function, we substitutefor x in which has been obtained with the assumption0xx ,( )M Npxthat 0.0xPADE APPROXIMATION BY RATIONAL FUNCTION 131Example 3.2. Pade Approximation for . Lets find the Pade approximation( )xf xefor around 0. We make the3,232( )( )/( )pxQ xD x( )xf xe0xMATLAB program “do_pade.m”, which uses the routine “padeap()” for thisjob and uses it again with no output argument to see the graphic results asdepicted in Fig. 3.6.To confirm and support this result from the analytical point of view and to helpthe readers understand the internal mechanism, we perform the hand-calculation132 INTERPOLATION AND CURVE FITTINGFigure 3.6 Pade approximation and Taylor series expansion for f(x) = ex(Example 3.2.).procedure. First, we write the Taylor series expansion at x = 0 up to degreeM + N = 5 for the given function as( )xf xe(E3.2.1)() 230( )11( )1!23!KMN k y kfxT xxxxxk whose coefficients are(E3.2.2)0123111,1,26aaaaWe put this into Eq. (3.4.4b) with M = 3,N = 2 and solve it for dis to get(E3.2.3)2 212431223211211221( )10,02/51/61/21/24,/201/241/61/120D xd xd xaa da daa da ddd dda Substituting this to Eq. (3.4.4a) yields(E3.2.4)00110122110233211211 1 ( 2/5)3/51/2 1 ( 2/5) 1 (1/20)3/201/6(1/2) ( 2/5) 1 (1/20)1/60qaqaa dqaa da dqaa da d INTERPOLATION BY CUBIC SPLINE 133With these coefficients, we write the Pade approximate function as(E3.2.5)23 3 3,22 2322( )1 (3/5)(3/20)(1/60)( )( )1 ( 2/5)(1/20)(1/3)31220 820Q xxxxpxD xxxxxx xx 3.5 INTERPOLATION BY CUBIC SPLINEIf we use the Lagrange/Newton polynomial to interpolate a given set of N + 1data points, the polynomial is usually of degree N and so has N 1 local extrema(maxima/minima). Thus, it will show a wild swing/oscillation (called polynomialwiggle), particularly near the ends of the whole interval as the number of datapoints increases and so the degree of the polynomial gets higher, as illustratedin Fig. 3.2. Then, how about a piecewise-linear approach, like assigning theindividual approximate polynomial to every subinterval between data points?How about just a linear interpolationthat is, connecting the data points bya straight line? It is so simple, but too short of smoothness. Even with thesecond-degree polynomial, the piecewise-quadratic curve