Example 6.12
Calculation of Derivatives Using Chebyshev Derivative Matrix Operator
Contents
Initialization
close all; clear N u j X U D j k N = 5; u = @(x) 4*x.^2.*(1-x.^2).*exp(-x/2); j = [0:N]'; X = cos(j*pi/N); U = u(X); D = zeros(N+1,N+1);
Creation of the matrix operator
for j = [1:N+1] for k = [1:N+1] if j==k switch j case 1 D(j,k) = (2*N^2+1)/6; case N+1 D(j,k) = -(2*N^2+1)/6; otherwise D(j,k) = -X(j)/(2*(1-X(j)^2)); end; else if or(j==1,j==N+1) cj = 2; else cj = 1; end; if or(k==1,k==N+1) ck = 2; else ck = 1; end; D(j,k) = cj*(-1)^(j+k)/(ck*(X(j)-X(k))); end; end; end;
Display the results
X U D D*U
X = 1.000000000000000 0.809016994374947 0.309016994374947 -0.309016994374947 -0.809016994374947 -1.000000000000000 U = 0 0.603582782590411 0.296029630345352 0.403217672421526 1.355465472313722 0 D = Columns 1 through 5 8.500000000000000 -10.472135954999581 2.894427190999916 -1.527864045000421 1.105572809000084 2.618033988749895 -1.170820393249937 -2.000000000000000 0.894427190999916 -0.618033988749895 -0.723606797749979 2.000000000000000 -0.170820393249937 -1.618033988749895 0.894427190999916 0.381966011250105 -0.894427190999916 1.618033988749895 0.170820393249937 -2.000000000000000 -0.276393202250021 0.618033988749895 -0.894427190999916 2.000000000000000 1.170820393249936 0.500000000000000 -1.105572809000084 1.527864045000421 -2.894427190999916 10.472135954999574 Column 6 -0.500000000000000 0.276393202250021 -0.381966011250105 0.723606797749979 -2.618033988749894 -8.500000000000000 ans = -4.581460762243603 -1.775821173923400 1.716542943367882 -2.702927992451481 2.501699686116691 12.812522829475302