Está en la página 1de 10

UNIVERSIDAD NACIONAL DEL CALLAO

FACULTAD DE C IENCIAS N ATURALES Y M ATEMÁTICAS

E SCUELA DE M ATEMÁTICA

MÉTODOS NUMÉRICOS II

Autor:
Juan Carlos G IRÓN R OJAS
Profesor:
Gabriel DOMINGO P ÉREZ
Dr. M ONTORO
Linda Chrisly L ÓPEZ R AMOS
Jesús A. G ARCÍA G ONZALES
Aproximación de la función racional de Chebyshev

1 APROXIMACIÓN DE CHEBYSHEV
Para obtener aproximaciones de función racional precisa de forma más uniforme, usamos los
polinomios de Chebyshev. El método general de aproximación de función racional de Chebyshev
procede de la misma forma que la aproximación de Padé, excepto que cada término x k en la
aproximación de Padé se reemplaza por el polinomio de k− ésimo grado de Chebyshev Tk ( x ).

Suponga que queremos aproximar la función f mediante una función racional r de enésimo
grado escrita en la forma.
n
∑ pk Tk (x)
k =0
r(x) = m donde N = n+m y q0 = 1
∑ qk Tk (x)
k =0

Al escribir f ( x ) en una serie relacionada con los polinomios de Chebyshev como



f (x) = ∑ ak Tk (x)
k =0
da
n

∞ ∑ pk Tk (x)
∑ ak Tk (x) −
k =0
f (x) − r(x) = m
k =0
∑ qk Tk (x)
k =0
o
∞ m k =0
∑ ak Tk (x) ∑ qk Tk (x) − ∑ pk Tk (x)
k =0 k =0 n
f (x) − r(x) = m
∑ qk Tk (x)
k =0
Los coficientes q1 , q2 , ..., qm y p0 , p1 , ..., pn se seleccionan de tal forma que el numerador en el lado
derecho de está ecuación para Tk ( x ) cuando k = 0; 1; ...; N Esto implica que la serie

( a0 T0 ( x ) + a1 T1 ( x ) + ...)( T0 ( x ) + q1 T1 ( x ) + ... + qm Tm ( x )) − ( p0 T0 ( x ) + p1 T1 ( x ) + ... + pn Tn ( x ))

no tiene términos de grado menor o igual a N.

1
Con el procedimiento de Chebyshev surgen dos problemas que lo hacen más difícil de im-
plementar que el método de Padé. Uno se presenta porque el producto del polinomio q( x ) y la
serie para f ( x ) implican productos de los polinomios de Chebyshev. Este problema se resuelve al
utilizar la relación
1h i
Ti ( x ) Tj ( x ) = Ti+ j ( x ) − T|i− j| ( x )
2
El otro problema es más difícil de resolver e implica el cálculo de la serie de Chebyshev para f ( x ).
En teoría, esto no es difícil, si

f (x) = ∑ ak Tk (x)
k =0
entonces la ortogonalidad de los polinomios de Chebyshev implica que
Z 1 Z 1
1 f (x) 2 f ( x ) Tk ( x )
a0 = √ dx y √ ak = dx donde k ≥ 1
π 1 − x2
−1 −1 1 − x2 π
Prácticamente, sin embargo, estas integrales rara vez se pueden evaluar de forma cerrada y se
requiere una técnica de integración numérica para cada evaluación.

1.1 EJEMPLO-1
Los primeros cinco términos de la expansión de Chebyshev para e− x son

P̃5 ( x ) = 1, 266066T0 ( x ) − 1, 130318T1 ( x ) + 0, 271495T2 ( x )


− 0, 044337T3 ( x ) + 0, 005474T4 ( x ) − 0, 000543T5 ( x )

Determine la aproximación racional de Chebyshev de grado 5 con n = 3 y m = 2.

SOLUCIÓN

Encontrar esta aproximación requiere seleccionar p0 , p1 , p2 , p3 , q1 y q2 y de tal forma que


k = 0, 1, 2, 3, 4 y 5, los coeficientes de Tk ( x ) son 0 en la expansión.

P̃5 ( x ) [ T0 ( x ) + q1 T1 ( x ) + q2 T2 ( x )] − [ p0 T0 ( x ) + p1 T1 ( x ) + p2 T2 ( x ) + p3 T3 ( x )]
Usando la relación y agrupando términos se obtienen las ecuaciones

T0 : 1, 266066 − 0, 565159q1 ( x ) + 0, 1357485q2 ( x ) = p0


T1 : − 1, 130318 + 1, 401814q1 ( x ) − 0, 587328q2 ( x ) = p1
T2 :0, 271495 − 0, 587328q1 ( x ) + 1, 268803q2 ( x ) = p2
T3 : − 0, 044337 + 0, 138485q1 ( x ) − 0, 565431q2 ( x ) = p3
T4 :0, 005474 − 0, 0022440q1 ( x ) + 0, 135748q2 ( x ) = p4
T5 : − 0, 000543 − 0, 0002737q1 ( x ) − 0, 022169q2 ( x ) = p5
2005/06

La solución de este sistema produce la función racional

2
1, 055265T0 ( x ) − 0, 613016T1 ( x ) + 0, 077478T2 ( x ) − 0, 004506T3 ( x )
rT (x) =
T0 ( x ) + 0, 378331T1 ( x ) + 0, 022216T2 ( x )
Al inicio de la sección encontramos que

T0 ( x ) = 1, T1 ( x ) = x, T2 ( x ) = 2x2 − 1, y T3 ( x ) = 4x3 − 3x

Al utilizarlas para convertir una expresión relacionada con potencias de x obtenemos

0, 977787 − 0, 599499x + 0, 154956x2 − 0, 018022x3


rT (x) =
0, 977784 + 0, 378331x + 0, 044432x2

1 % Aproximacion de la funcion racional de Chebyshev


2 %GRUPO_METODOSNUMERICOS_II
3 clear
4 clc
5 disp('Aprox. racional de Chebyshev')
6 disp(' ')
7 f=input('Ingrese funcion a aproximar: ');
8 fun=inline(f);
9 n=input('Ingrese primer entero no negativo (n): ');
10 m=input('Ingrese segundo entero no negativo (m): ');
11

12 N=m+n;
13 Y=N+m;
14 A=zeros(1,N+1);
15

16 %subrutina para calcular la integral que da


17 %el valor de a0
18

19 R=zeros(2,10);
20 R(1,1)=(pi/2)*(feval(fun,1)+feval(fun,−1));
21 h=pi;
22

23 i=2;
24 while i ≤ 10
25 sum=0;
26 for k=1:2^(i−2)
27 x=0+(k−0.5)*h;
28 z=cos(x);
29 sum=sum+feval(fun,z);
30 endfor
31 R(2,1)=(1/2)*(R(1,1)+h*sum);
32 j=2;
33 while j ≤ i
34 R(2,j)=R(2,j−1)+(R(2,j−1)−R(1,j−1))/(4^(j−1)−1);
35 j=j+1;
36 endwhile
37 h=h/2;
38 j=1;
39 while j ≤ i
40 R(1,j)=R(2,j);
41 j=j+1;
42 endwhile
43 i=i+1;
44 endwhile

3
45

46 A(1,1)=(2/pi)*R(2,10);
47

48 %subrutina para calcular las integrales que dan


49 %los valores de a1,...,a(N+m)
50

51 for s=1:Y
52 R=zeros(2,10);
53 R(1,1)=(pi/2)*(feval(fun,1)+feval(fun,−1)*cos(s*pi));
54 h=pi;
55

56 i=2;
57 while i ≤ 10
58 sum=0;
59 for k=1:2^(i−2)
60 x=0+(k−0.5)*h;
61 z=cos(x);
62 y=cos(s*x);
63 sum=sum+feval(fun,z)*y;
64 endfor
65 R(2,1)=(1/2)*(R(1,1)+h*sum);
66 j=2;
67 while j ≤ i
68 R(2,j)=R(2,j−1)+(R(2,j−1)−R(1,j−1))/(4^(j−1)−1);
69 j=j+1;
70 endwhile
71 h=h/2;
72 j=1;
73 while j ≤ i
74 R(1,j)=R(2,j);
75 j=j+1;
76 endwhile
77 i=i+1;
78 endwhile
79

80 A(1,s+1)=(2/pi)*R(2,10);
81

82 endfor
83

84 %Regresando al algoritmo principal


85

86 B=zeros(N+1,N+2);
87

88 for i=0:N
89 if i ≤ n
90 B(i+1,i+1)=1;
91 endif
92 for j=n+1:N
93 if i 6= 0
94 w=i+1;
95 z=j+1;
96 B(w,z)=−0.5*(A(1,w+z−n−1)+A(1,abs(w−z+n)+1));
97 else
98 B(i+1,j+1)=−0.5*A(1,j−n+1);
99 endif
100 endfor
101 if i 6= 0
102 B(i+1,N+2)=A(1,i+1);

4
103 else
104 B(i+1,N+2)=0.5*A(1,i+1);
105 endif
106 endfor
107

108 disp(' ')


109 disp('Matriz del sistema:')
110 disp(' ')
111 disp(B)
112 disp(' ')
113

114 C=zeros(1,2);
115

116 for i=n+1:N−1


117 k=i;
118 while k ≤ N
119 j=i;
120 while j ≤ N
121 M=abs(B(k+1,i+1));
122 if abs(B(j+1,i+1)) ≤ M
123 j=j+1;
124 else
125 M=abs(B(j+1,i+1));
126 j=N+1;
127 disp(M)
128 endif
129 endwhile
130 if M==abs(B(k+1,i+1))
131 C(1,1)=k+1;
132 C(1,2)=i+1;
133 k=N+1;
134 else
135 k=k+1;
136 endif
137 endwhile
138 if M==0
139 disp('Se produce un sistema singular')
140 break
141 endif
142 a=C(1,1);
143 b=C(1,2);
144 if a 6= b
145 for j=b:N+2
146 c=B(b,j);
147 B(b,j)=B(a,j);
148 B(a,j)=c;
149 endfor
150 endif
151

152 for j=i+1:N


153 xm=B(j+1,i+1)/B(i+1,i+1);
154 for k=i+1:N+1
155 B(j+1,k+1)=B(j+1,k+1)−xm*B(i+1,k+1);
156 endfor
157 B(j+1,i+1)=0;
158 endfor
159 endfor
160

5
161 if B(N+1,N+1)==0
162 disp('Se produce un sistema singular')
163 else
164 Q=zeros(1,m+1);
165 Q(1,1)=1;
166 Q(1,m+1)=B(N+1,N+2)/B(N+1,N+1);
167 for k=n+1:N−1
168 i=N+n−k;
169 sum=0;
170 for j=i+1:N
171 sum=sum+B(i+1,j+1)*Q(1,j−n+1);
172 endfor
173 Q(1,i−n+1)=(B(i+1,N+2)−sum)/B(i+1,i+1);
174 endfor
175 P=zeros(1,n+1);
176 for k=0:n
177 i=n−k;
178 s=0;
179 for j=n+1:N
180 s=s+B(i+1,j+1)*Q(1,j−n+1);
181 endfor
182 P(1,i+1)=B(i+1,N+2)−s;
183 endfor
184 disp('Coeficientes del numerador: ')
185 disp(' ')
186 disp('i p_i ');
187 fprintf('0 %7.7f\n',P(1,1))
188 for j=2:n+1
189 fprintf('%i %7.7f\n',j−1,P(1,j))
190 endfor
191 disp(' ')
192 disp('Coeficientes del denominador: ')
193 disp(' ')
194 disp('i q_i ');
195 fprintf('0 %7.7f\n',Q(1,1))
196 for j=2:m+1
197 fprintf('%i %7.7f\n',j−1,Q(1,j))
198 endfor
199 disp(' ')
200 endif

6
1.2 EJEMPLO-1
Los primeros cinco términos de la expansión de Chebyshev para e− x son

P̃5 ( x ) = 1, 266066T0 ( x ) − 1, 130318T1 ( x ) + 0, 271495T2 ( x )


− 0, 044337T3 ( x ) + 0, 005474T4 ( x ) − 0, 000543T5 ( x )

Determine la aproximación racional de Chebyshev de grado 5 con n = 3 y m = 2.

SOLUCIÓN
Solución con el código hecho en laboratorio.

1 %Aprox. racional de Chebyshev


2

3 Ingrese funcion a aproximar: 'exp(−x)'


4 Ingrese primer entero no negativo (n): 3
5 Ingrese segundo entero no negativo (m): 2
6

7 Matriz del sistema:


8

9 1.00000 0.00000 0.00000 0.00000 0.56516 −0.13575 1.26607


10 0.00000 1.00000 0.00000 0.00000 −1.40181 0.58733 −1.13032
11 0.00000 0.00000 1.00000 0.00000 0.58733 −1.26880 0.27150
12 0.00000 0.00000 0.00000 1.00000 −0.13848 0.56543 −0.04434
13 0.00000 0.00000 0.00000 0.00000 0.02244 −0.13577 0.00547
14 0.00000 0.00000 0.00000 0.00000 −0.00276 0.02217 −0.00054
15

16 Coeficientes del numerador:


17

18 i p_i
19 0 1.0500312
20 1 −0.6004342
21 2 0.0738307
22 3 −0.0040679
23

24 Coeficientes del denominador:


25

26 i q_i
27 0 1.0000000
28 1 0.3879720
29 2 0.0238035

7
1.3 EJEMPLO-2
Para sin( x ) la aproximación racional de Chebyshev de grado 4 con n = 2 y m = 2.

SOLUCIÓN
Solución con el código hecho en laboratorio.

1 Aprox. racional de Chebyshev


2

3 Ingrese funcion a aproximar: 'sin(x)'


4 Ingrese primer entero no negativo (n): 2
5 Ingrese segundo entero no negativo (m): 2
6

7 Matriz del sistema:


8

9 1.00000 0.00000 0.00000 −0.44005 −0.00000 0.00000


10 0.00000 1.00000 0.00000 −0.00000 −0.42049 0.88010
11 0.00000 0.00000 1.00000 −0.42049 −0.00000 0.00000
12 0.00000 0.00000 0.00000 −0.00000 −0.44030 −0.03913
13 0.00000 0.00000 0.00000 0.01931 −0.00000 0.00000
14

15 0.019314
16 Coeficientes del numerador:
17

18 i p_i
19 0 0.0000000
20 1 0.9174672
21 2 0.0000000
22

23 Coeficientes del denominador:


24

25 i q_i
26 0 1.0000000
27 1 0.0000000
28 2 0.0888637

8
1.4 EJEMPLO-3
Para x.ln( x ) la aproximación racional de Chebyshev de grado 3 con n = 2 y m = 2

SOLUCIÓN
Solución con el código hecho en laboratorio.

1 Aprox. racional de Chebyshev


2

3 Ingrese funcion a aproximar: 'x*log(x)'


4 Ingrese primer entero no negativo (n): 2
5 Ingrese segundo entero no negativo (m): 2
6

7 Matriz del sistema:


8

9 Columns 1 through 4:
10

11 1.00000 + 0.00000i 0.00000 + 0.00000i 0.00000 + 0.00000i 0.09657 − ...


0.78540i
12 0.00000 + 0.00000i 1.00000 + 0.00000i 0.00000 + 0.00000i 0.00000 + ...
1.33333i
13 0.00000 + 0.00000i 0.00000 + 0.00000i 1.00000 + 0.00000i −0.02843 − ...
0.78540i
14 0.00000 + 0.00000i 0.00000 + 0.00000i 0.00000 + 0.00000i 0.00000 + ...
0.26667i
15 0.00000 + 0.00000i 0.00000 + 0.00000i 0.00000 + 0.00000i −0.08333 + ...
0.00000i
16

17 Columns 5 and 6:
18

19 −0.00000 + 0.33333i −0.00000 − 1.00000i


20 −0.02843 − 0.78540i −0.19315 + 1.57080i
21 0.00000 + 0.93333i 0.00000 − 0.66667i
22 0.13824 − 0.78540i 0.25000 − 0.00000i
23 −0.00000 + 0.36190i −0.00000 + 0.13333i
24

25 Coeficientes del numerador:


26

27 i p_i
28 0 0.8227103
29 1 −1.6279737
30 2 0.8179251
31

32 Coeficientes del denominador:


33

34 i q_i
35 0 1.0000000
36 1 0.3636717
37 2 0.1087383

También podría gustarte