APPLIED NUMERICAL METHODS USING MATLAB phần 5 pptx

51 482 0
APPLIED NUMERICAL METHODS USING MATLAB phần 5 pptx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

198 NONLINEAR EQUATIONS 6 5 4 3 2 1 0 02 y = xy = x y = g a ( x ) = ( x 2 + 1) x o1 x o1 x o2 x o2 46 −1 1 3 y = g b ( x ) = 3 − 1 x (a) x k + 1 = g a ( x k ) = ( x k 2 + 1) 1 3 3 2.5 2 1.5 1 0.5 0 0123 −0.5 (b) x k + 1 = g b ( x k ) = 3 − 1 x k Figure P4.1 Iterative method based on the fixed-point theorem. Noting that the first derivative of this iterative function g a (x) is g  a (x) = 2 3 x(P4.1.4) determine which solution attracts this iteration and certify it in Fig. P4.1a. In addition, run the MATLAB routine “ fixpt()” to perform the iteration (P4.1.3) with the initial points x 0 = 0, x 0 = 2, and x 0 = 3. What does the routine yield for each initial point? (b) Now consider the following iterative formula: x k+1 = g b (x k ) = 3 − 1 x k (P4.1.5) Noting that the first derivative of this iterative function g b (x) is g  b (x) =− 1 x 2 (P4.1.6) determine which solution attracts this iteration and certify it in Fig. P4.1b. In addition, run the MATLAB routine “ fixpt()” to carry out the itera- tion (P4.1.5) with the initial points x 0 = 0.2,x 0 = 1, and x 0 = 3. What does the routine yield for each initial point? (cf) This illustrates that the outcome of an algorithm may depend on the start- ing point. PROBLEMS 199 4.2 Bisection Method and Fixed-Point Iteration Consider the nonlinear equation treated in Example 4.2. f(x)= tan(π − x) − x = 0 (P4.2.1) Two graphical solutions of this equation are depicted in Fig. P4.2, which can be obtained by typing the following statements into the MATLAB command window: >>ezplot(’tan(pi-x)’,-pi/2,3*pi/2) >>hold on, ezplot(’x+0’,-pi/2,3*pi/2) (a) In order to use the bisection method for finding the solution between 1.5 and 3, Charley typed the statements shown below. Could he get the right solution? If not, explain him why he failed and suggest him how to make it. >>fp42 = inline(’tan(pi-x)-x’,’x’); >>TolX = 1e-4; MaxIter = 50; >>x = bisct(fp42,1.5,3,TolX,MaxIter) (b) In order to find some interval to which the bisection method is applica- ble, Jessica used the MATLAB command “ find()” as shown below. >>x = [0: 0.5: pi]; y = tan(pi-x) - x; >>k = find(y(1:end-1).*y(2:end) < 0); >>[x(k) x(k + 1); y(k) y(k + 1)] ans = 1.5000 2.0000 2.0000 2.5000 -15.6014 0.1850 0.1850 -1.7530 This shows that the sign of f(x) changes between x = 1.5 and 2.0 and also between x = 2.0 and 2.5. Noting this, Jessica thought that she might use the bisection method to find a solution between 1.5 and 2.0 by typing the following command. >>x=bisct(fp42,1.5,2,TolX,MaxIter) Check the validity of the solution—that is, check if f(x) = 0 or not—by typing >>fp42(x) If her solution is not good, explain the reason. If you are not sure about it, you can try plotting the graph in Fig. P4.2 by typing the following statements into the MATLAB command window. >>x = [-pi/2+0.05:0.05:3*pi/2 - 0.05]; >>plot(x,tan(pi - x),x,x) 200 NONLINEAR EQUATIONS 0−1 −5 0 5 1234 y = x y = tan (p − x ) Figure P4.2 The graphical solutions of tan(π − x) −x = 0ortan(π −x) = x. (cf) This helps us understand why fzero(fp42,1.8) leads to the wrong solu- tion even without any warning message as mentioned in Example 4.2. (c) In order to find the solution around x = 2.0 by using the fixed-point iteration with the initial point x 0 = 2.0, Vania defined the iterative func- tion as >>gp421 = inline(’tan(pi - x)’,’x’); % x = g 1 (x ) = tan (π − x ) and typed the following statement into the MATLAB command window. >>x = fixpt(gp421,2,TolX,MaxIter) Could she reach the solution near 2? Will it be better if you start the routine with any different initial point? What is wrong? (d) Itha, seeing what Vania did, decided to try with another iterative formula tan −1 x = π, x = g 2 (x) = π − tan −1 x(P4.2.2) So she defined the iterative function as >>gp422 = inline(’pi-atan(x)’, ’x’); % x = g(x ) = π − tan −1 (x ) and typed the following statement into the MATLAB command window: >>x = fixpt(gp422,2,TolX,MaxIter) What could she get? Is it the right solution? Does this command work with different initial value, like 0 or 6, which are far from the solution we want to find? Describe the difference between Vania’s approach and Itha’s. PROBLEMS 201 4.3 Recursive (Self-Calling) Routine for Bisection Method As stated in Section 1.3, MATLAB allows us to make nested (recursive) rou- tines which call itself. Modify the MATLAB routine “ bisct()” (in Section 4.2) into a nested routine “ bisct_r()” and run it to solve Eq. (P4.2.1). 4.4 Newton Method and Secant Method As can be seen in Fig. 4.5, the secant method introduced in Section 4.5 was devised to remove the necessity of the derivative/gradient and improve the convergence. But, it sometimes turns out to be worse than the Newton method. Apply the routines “ newton()”and“secant()” to solve f p44 (x) = x 3 − x 2 − x + 1 = 0 (P4.4) starting with the initial point x 0 =−0.2 one time and x 0 =−0.3 for another shot. 4.5 Acceleration of Aitken–Steffensen Method A sequence converging to a limit x o can be described as x o − x k+1 = e k+1 ≈ Ae k = A(x o − x k ) with lim k→∞ x o − x k+1 x o − x k = A(|A| < 1) (P4.5.1) In order to think about how to improve the convergence speed of this sequence, we define a new sequence p k as x o − x k+1 x o − x k ≈ A ≈ x o − x k x o − x k−1 ; (x o − x k+1 )(x o − x k−1 ) ≈ (x o − x k ) 2 (x o ) 2 − x k+1 x o − x k−1 x o + x k+1 x k−1 ≈ (x o ) 2 − 2x o x k + x 2 k x o ≈ x k+1 x k−1 − x 2 k x k+1 − 2x k + x k−1 = p k (P4.5.2) (a) Check that the error of this sequence p k is as follows. x o − p k = x o − x k+1 x k−1 − x 2 k x k+1 − 2x k + x k−1 = x o − x k−1 (x k+1 − 2x k + x k−1 ) − x 2 k−1 + 2x k−1 x k − x 2 k x k+1 − 2x k + x k−1 = x o − x k−1 + (x k − x k−1 ) 2 x k+1 − 2x k + x k−1 = x o − x k−1 + (−(x o − x k ) + (x o − x k−1 )) 2 −(x o − x k+1 ) + 2(x o − x k ) − (x o − x k−1 ) = x o − x k−1 + (−A + 1) 2 (x o − x k−1 ) 2 (−A 2 + 2A − 1)(x o − x k−1 ) = 0 (P4.5.3) 202 NONLINEAR EQUATIONS Table P4.5 Comparison of Various Methods Applied for Solving Nonlinear Equations Newton Secant Steffensen Schroder fzero() fsolve() x 0 = 1.6 x 2.0288 f 42 f(x) 1.19e-8 1.72e-9 Flops 158 112 273 167 986 1454 x 0 = 0 x 1.0000 f p44 f(x) Flops 53 30 63 31 391 364 x 0 = 0 x 5.0000 NaN f p45 f(x) NaN Flops 536 434 42 19 3683 1978 (cf) Since the flops() command is no longer available in MATLAB 6.x version, the numbers of floating-point operations are obtained from MATLAB 5.x version so that the readers can compare the various algorithms in terms of their computational loads. (b) Modify the routine “newton()” into a routine “stfns()” that generates the sequence (P4.5.2) and run it to solve f 42 (x) = tan(π − x) − x = 0 (with x 0 = 1.6) (P4.5.4) f p44 (x) = x 3 − x 2 − x + 1 = 0 (with x 0 = 0) (P4.5.5) f p45 (x) = (x − 5) 4 = 0 (with x 0 = 0) (P4.5.6) Fill in Table P4.5 with the results and those obtained by using the routines “ newton()”, “secant()” (with the error tolerance TolX = 10 −5 ), “fzero()”, and “fsolve()”. 4.6 Acceleration of Newton Method for Multiple Roots: Schroder Method In order to improve the convergence speed, Schroder modifies the Newton iterative algorithm (4.4.2) as x k+1 = x k − M f(x k ) f  (x k ) (P4.6.1) with M : the order of multiplicity of the root we want to find Based on this idea, modify the routine “ newton()” into a routine “ schroder()” and run it to solve Eqs. (P4.5.4.6). Fill in the corresponding blanks of Table P4.5 with the results. PROBLEMS 203 4.7 Newton Method for Systems of Nonlinear Equations Apply the routine “ newtons()” (Section 4.6) and the MATLAB built-in routine “ fsolve()” (with [x0 y0] = [1 0.5]) to solve the following systems of equations. Fill in Table P4.7 with the results. (a) x 2 + y 2 = 1 x 2 − y = 0 (P4.7.1) (b) 5cosθ 1 + 6cos(θ 1 + θ 2 ) = 10 5sinθ 1 + 6sin(θ 1 + θ 2 ) = 4 (P4.7.2) (c) 3x 2 + 4y 2 = 3 x 2 + y 2 = √ 3/2 (P4.7.3) (d) x 3 1 + 10x 1 − x 2 = 5 x 1 + x 3 2 − 10x 2 =−1 (P4.7.4) (e) x 2 − √ 3xy + 2y 2 = 10 4x 2 + 3 √ 3xy + y = 22 (P4.7.5) (f) x 3 y − y − 2x 3 =−16 x − y 2 =−1 (P4.7.6) (g) x 2 + 4y 2 = 16 xy 2 = 4 (P4.7.7) (h) xe y − x 5 + y = 3 x + y +tan x − sin y = 0 (P4.7.8) (i) 2logy − x = 0 xy − y = 1 (P4.7.9) (j) 12xy − 6x =−1 60x 2 − 180x 2 y − 30xy = 1 (P4.7.10) 4.8 Newton Method for Systems of Nonlinear Equations Apply the routine “ newtons()” (Section 4.6) and the MATLAB built-in routine “ fsolve()”(with[x0y0z0]= [1 1 1]) to solve the following systems of equations. Fill in Table P4.8 with the results. (a) xyz =−1 x 2 + 2y 2 + 4z 2 = 7 2x 2 + y 3 + 6z = 7 (P4.8.1) (b) xyz = 1 x 2 + 2y 3 + z 2 = 4 x + 2y 2 − z 3 = 2 (P4.8.2) (c) x 2 + 4y 2 + 9z 2 = 34 x 2 + 9y 2 − 5z = 40 x 2 z − y = 7 (P4.8.3) (d) x 2 + 2sin(yπ/2) + z 2 = 0 −2xy + z = 3 e x+y − z 2 = 0 (P4.8.4) 204 NONLINEAR EQUATIONS Table P4.7 Applying newtons()/fsolve() for Systems of Nonlinear Equations newtons() fsolve() x 0 = [1 0.5] x (P4.7.1) ||f(x)|| Flops 1043 1393 x 0 = [1 0.5] x [0.1560 0.4111] (P4.7.2) ||f(x)|| 3.97e-15 (3.66e-15) Flops 2489 3028 x 0 = [1 0.5] x (P4.7.3) ||f(x)|| Flops 1476 3821 x 0 = [1 0.5] x [0.5024 0.1506] (P4.7.4) ||f(x)|| 8.88e-16 (1.18e-6) Flops 1127 1932 x 0 = [1 0.5] x (P4.7.5) ||f(x)|| Flops 2884 3153 x 0 = [1 0.5] x [1.6922 -1.6408] (P4.7.6) ||f(x)|| 1.83e-15 Flops 9234 12896 x 0 = [1 0.5] x (P4.7.7) ||f(x)|| Flops 2125 2378 x 0 = [1 0.5] x [0.2321 1.5067] (P4.7.8) ||f(x)|| 1.07 (1.07) Flops 6516 6492 x 0 = [1 0.5] x (P4.7.9) ||f(x)|| Flops 1521 1680 x 0 = [1 0.5] x [0.2236 0.1273] (P4.7.10) ||f(x)|| 0 (1.11e-16) Flops 1278 2566 (cf) The numbers of floating-point operations and the residual (mismatching) errors in the parentheses are obtained from MATLAB 5.x version. PROBLEMS 205 Table P4.8 Applying newtons()fsolve() for Systems of Nonlinear Equations newtons() fsolve() x 0 = [1 1 1] x [1.0000 -1.0000 1.0000] (P4.8.1) ||f(x)|| 1.1102e-16 (1.1102e-16) Flops 8158 12964 x 0 = [1 1 1] x [111] (P4.8.2) ||f(x)|| 0 Flops 990 854 x 0 = [1 1 1] x (P4.8.3) ||f(x)|| Flops 6611 4735 x 0 = [1 1 1] x [1.0000 -1.0000 1.0000] (P4.8.4) ||f(x)|| 4.5506e-15 (4.6576e-15) Flops 18,273 21,935 x 0 = [1 1 1] x (P4.8.5) ||f(x)|| Flops 6811 5525 x 0 = [1 1 1] x [2.0000 1.0000 3.0000] (P4.8.6) ||f(x)|| 3.4659e-8 (2.6130e-8) Flops 6191 4884 x 0 = [1 1 1] x [1.0000 3.0000 2.0000] (P4.8.7) ||f(x)|| 1.0022e-13 (1.0437e-13) Flops 8055 6102 (e) x 2 + y 2 + z 2 = 14 x 2 + 2y 2 − z = 6 x − 3y 2 + z 2 =−2 (P4.8.5) (f) x 3 − 12y + z 2 = 5 3x 2 + y 3 − 2z = 7 x + 24y 2 − 2sin(πz/18) = 25 (P4.8.6) 206 NONLINEAR EQUATIONS (g) x 2 + y 2 − 2z = 6 x 2 − 2y + z 3 = 3 2xz −3y 2 − z 2 =−27 (P4.8.7) 4.9 Newton Method for a System of Nonlinear Equations with Varying Para- meter(s) In order to find the average modulation order x i foreachuserofanOFDM (orthogonal frequency division multiplex) system that has N (128) subcha- nnels to assign to each of the four users in the environment of noise power N 0 and the bit error rate (probability of bit error) P e , a communication system expert, Mi-hyun, formulated the problem into the system of five nonlinear equations as follows: f i (x) = (2 x i (x i ln 2 − 1) + 1) N 0 3 2(erfc −1 (P e /2)) 2 − λ = 0 (P4.9.1) for i = 1, 2, 3, 4 f 5 (x) = 4  i=1 a i x i − N = 0 (P4.9.2) where N = 128 and a i is the data rate of each user where erfc −1 (x) is the inverse function of the complementary error function erfc(x) = 2 √ π  ∞ x e −t 2 dt = 1 − 2 √ π  x 0 e −t 2 dt = 1 − erf(x) (P4.9.3) and defined as the MATLAB built-in function ‘ erfcinv()’. She defined the mismatching error (vector) function as below and save it in the M-file named “ fp_bits.m”. function y = fp_bits(x,a,Pe) %x(i),i = 1:4 correspond to the modulation order of each user %x(5) corresponds to the Lagrange multiplier (Lambda) if nargin < 3, Pe = 1e-4; if nargin < 2, a = [64 64 64 64]; end end N = 128; N0 = 1; x14 = x(1:4); y = (2.^x14.*(log(2)*x14 - 1)+1)*N0/3*2*erfcinv(Pe/2).^2 - x(5); y(5) = sum(a./x14) - N; Compose a program which solves the above system of nonlinear equations (with N 0 = 1andP e = 10 −4 ) to get the modulation order x i of each user PROBLEMS 207 for five different sets of data rates a = [32 32 32 32], [64323232], [128 32 32 32], [256 32 32 32], and [512 32 32 32] and plots a 1 /x 1 (the number of subchannels assigned to user 1) versus a 1 (the data rate of user 1). 4.10 Temperature Rising from Heat Flux in a Semi-infinite Slab Consider a semi-infinite slab whose temperature rises as a function of posi- tion x>0 and time t>0as T(x,t)= Qx k  e −s 2 √ πs − erfc(s)  with s 2 = x 2 /4at (P4.10.1) where the function erfc() is defined by Eq. (P4.9.3) and Q(heat flux) = 200 J/m 2 s,k(conductivity) = 0.015 J/m/s/ ◦ C, a(diffusivity) = 2.5 × 10 −5 m 2 /s In order to find the heat transfer speed, a heating system expert, Kyung- won, wants to solve the above equation to get the positions x(t) with a temperature rise of T = 30 ◦ Catt = 10:10:200 s. Compose the program which does this job and plots x(t) versus t. 4.11 Damped Newton Method for a Set of Nonlinear Equations Consider the routine “ newtons()”, which is made for solving a system of equations and introduced in Section 4.6. (a) Run the routine with the initial point (x 10 ,x 20 ) = (0.5, 0.2) to solve Eq. (4.6.5) and certify that it does not yield the right solution as depicted in Fig. 4.6c. (b) In order to keep the step size adjusted in the case where the norm of the vector function f(x k+1 ) at iteration k + 1 is larger than that of f(x k ) at iteration k, insert (activate) the statements numbered from 1 to 6 of the routine “ newtons()” (Section 4.6) by deleting the comment mark (%)at the beginning of each line to make a modified routine “ newtonds()”, which implements the damped Newton method. Run it with the initial point (x 10 ,x 20 ) = (0.5, 0.2) to solve Eq. (4.6.5) and certify that it yields the right solution as depicted in Fig. 4.6d. (c) Run the MATLAB built-in routine “ fsolve()” with the initial point (x 10 ,x 20 ) = (0.5, 0.2) to solve Eq. (4.6.5). Does it present you a right solution? [...]... 0.0003183147 −0.0000 353 5 652 h4 = 0.0001000000 0.7071032 456 0.0000318210 −0.00000 353 554 h5 = 0.0000100000 0.7071064277 0.0000031821 −0.000000 353 44 h6 = 0.0000010000 0.7071067 454 0.0000003176 −0.0000000 358 1 h7 = 0.0000001000 0.7071067842 0.0000000389 0.000000003 05 h8 = 0.0000000100∗ ∗ h9 = 0.0000000010 0.70710681 75 0.0000000333 0.00000003636 0.7071077 057 0.0000008882 0.00000092 454 h10 = 0.0000000001... (2) (xmk ) 3 × 23 h5 f (4) (xmk ) + · · · 5 × 4 × 3 × 25 h3 (2) h5 (4) f (xmk ) + f (xmk ) + · · · = O(h3 ) 24 1920 (5. 5.9) 2 25 NUMERICAL INTEGRATION AND QUADRATURE This, together with Eq (5. 5.2), implies that the error of integration over one segment by the midpoint rule is proportional to h3 Second, for the error analysis of the trapezoidal rule, we subtract Eq (5. 5.3) from Eq (5. 5.7) to write xk+1... -5/ 2 4/3 -1/12 %Eq. (5. 3.2) Example 5. 1 Numerical/ Symbolic Differentiation for Taylor Series Expansion Consider how to use MATLAB to get the Taylor series expansion of a function—say, e−x about x = 0—which we already know is 1 1 1 1 e−x = 1 − x + x 2 − x 3 + x 4 − x 5 + · · · 2 3! 4! 5! (E5.1.1) As a numerical method, we can use the MATLAB routine “difapx()” On the other hand, we can also use the MATLAB. .. INTEGRATION Table 5. 1 The Forward Difference Approximation (5. 1.4) for the First Derivative of f(x) = sin x and Its Error from the True Value (cos π/4 = 0.7071067812) Depending on the Step Size h hk = 10−k D1k|x=π/4 D1k − D1(k−1) D1k|x=π/4 − cos(π/4) h1 = 0.1000000000 0.6706029729 −0.03 650 380828 0.70 355 94917 0.032 956 5188 −0.00 354 728 950 h2 = 0.0100000000 0.706 753 1100 0.0031936183 −0.000 353 67121 h3 = 0.0010000000... ≈ 15 |ES (h)| ≈ 15 ES 16 h 2 h 2 (5. 5.12) This suggests the error estimate of numerical integration by Simpson’s rule as ES h 2 ≈ 24 h 1 IS (xk−1 , xk+1 , h) − IS xk−1 , xk+1 , −1 2 (5. 5.13) Also for the trapezoidal rule, similar result can be derived: ET 5. 6 h 2 ≈ 1 IT (xk−1 , xk+1 , h) − IT 22 − 1 xk−1 , xk+1 , h 2 (5. 5.14) TRAPEZOIDAL METHOD AND SIMPSON METHOD In order to get the formulas for numerical. .. size) (5. 1.2) How far away is this approximation from the true value of (5. 1.1)? In order to do the error analysis, we take the Taylor series expansion of f (x + h) about x as f (x + h) = f (x) + hf (x) + h2 (2) h3 f (x) + f (3) (x) + · · · 2 3! (5. 1.3) Applied Numerical Methods Using MATLAB , by Yang, Cao, Chung, and Morris Copyright  20 05 John Wiley & Sons, Inc., ISBN 0-471-69833-4 209 210 NUMERICAL. .. use the MATLAB command “sym2poly()” if he wants to extract the coefficients from the Taylor series expansion obtained as a symbolic expression The following MATLAB program “nm5e01” finds us the coefficients of fifthorder Taylor series expansion of e−x about x = 0 by using the two methods %nm5e01:Nth-order Taylor series expansion for e^-x about xo in Ex 5. 1 f=inline(’exp(-x)’,’x’); N = 5; xo = 0; %Numerical. .. see the results >>nm540 dfx( 0.7 854 0) = 0.689072 (error: -0.0180 35) %with x = [1:3]*pi/8 dfx( 0.7 854 0) = 0.70 655 6 (error: -0.00 055 0) %with x = [0:4]*pi/8 dfx( 0.7 854 0) = 0.707072 (error: -0.0000 35) %with x = [2:6]*pi/16 This illustrates that if we have more points that are distributed closer to the target point, we may get better result %nm540 % to interpolate by Lagrange polynomial and get the derivative... = 10 5 h=1 f (x ) = sin x 0.8 0.6 0.6 0.4 0.4 0.2 h = 10−16 0.2 x 2 0 0 .5 1 1 .5 (a) Forward difference approximation by Eq (5. 1.4) Figure 5. 2 x 2 0 0 .5 1 1 .5 (b) Central difference approximation by Eq (5. 1.8) Forward/central difference approximation of first derivative of f(x) = sin x 216 NUMERICAL DIFFERENTIATION/ INTEGRATION 5. 3 DIFFERENCE APPROXIMATION FOR SECOND AND HIGHER DERIVATIVE In order to... subtract the Taylor series expansion of Eq (5. 5.4) h (f (xk−1 ) + 4f (xk ) + f (xk+1 )) 3 2h2 (2) 2h4 (4) h = f (xk ) + 4f (xk ) + f (xk ) + f (xk ) + f (xk ) + · · · 3 2 4! = 2hf (xk ) + h3 (2) h5 f (xk ) + f (4) (xk ) + · · · 3 36 from Eq (5. 5.8) to write xk+1 xk−1 f (x) dx − h h5 (f (xk−1 ) + 4f (xk ) + f (xk+1 )) = − f (4) (xk ) + O(h7 ) 3 90 = O(h5 ) (5. 5.11) This implies that the error of integration . −0.03 650 380828 h 2 = 0.0100000000 0.70 355 94917 0.032 956 5188 −0.00 354 728 950 h 3 = 0.0010000000 0.706 753 1100 0.0031936183 −0.000 353 67121 h 4 = 0.0001000000 0.7070714247 0.0003183147 −0.0000 353 5 652 h 5 =. + h 3 3! f (3) (x) +··· (5. 1.3) Applied Numerical Methods Using MATLAB  , by Yang, Cao, Chung, and Morris Copyr ight  20 05 John Wiley & Sons, I nc., ISBN 0-471-69833-4 209 210 NUMERICAL DIFFERENTIATION/. 12896 x 0 = [1 0 .5] x (P4.7.7) ||f(x)|| Flops 21 25 2378 x 0 = [1 0 .5] x [0.2321 1 .50 67] (P4.7.8) ||f(x)|| 1.07 (1.07) Flops 651 6 6492 x 0 = [1 0 .5] x (P4.7.9) ||f(x)|| Flops 152 1 1680 x 0 = [1 0 .5] x [0.2236

Ngày đăng: 09/08/2014, 12:22

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan