PRACTICA 4
SESIONES LABORATORIO: 5 - 6
15;
h;
(feval(f, x+h) - feval(f, x-h)) / (2 * h);
0;
0;
for n = 1:2
h = h / 10;
H(n+1) = h;
D(n+1) = (feval(f, x+h) - feval(f, x-h)) / (2*h);
E(n+1) = abs(D(n+1) - D(n));
R(n+1) = 2*E(n+1) * (abs(D(n+1)) + abs(D(n)) + eps);
end
n = 2;
while ((E(n) > E(n+1)) & (R(n) > toler)) & n < max1
h = h / 10;
H(n+2) = h;
D(n+2) = (feval(f, x+h) - feval(f, x-h)) / (2*h);
E(n+2) = abs(D(n+2) - D(n+1));
R(n+2) = 2 * E(n+2) * (abs(D(n+2)) + abs(D(n+1)) + eps);
n = n + 1;
end
n = length(D) - 1;
L = [H', D', E'];
% Entrada % caracteres
%
%
%
% Salida
%
%
%
-
err = 1;
relerr = 1;
h = 1;
j = 1;
D(1, 1) = (feval(f, x+h) - feval(f, x-h)) / (2*h);
while relerr > toler & err > delta & j < 12
h = h / 2;
D(j+1, 1) = (feval(f, x+h) - feval(f, x-h)) / (2 * h);
for k = 1:j
D(j+1, k+1) = D(j+1, k) + (D(j+1, k) - D(j, k)) / ((4^k)-1);
end
err = abs(D(j+1, j+1) - D(j, j));
relerr = 2 * err / (abs(D(j+1, j+1)) + abs(D(j, j)) + eps);
j = j + 1;
end
[n, n] = size(D);
% Entrada
- X es el vector de abscisas 1
%
- Y es el vector de ordenadas 1
% Salida
- A es el vector 1 x n, vector
% los coeficientes del
%
polinomio de Newton de grado
%
- df es la derivada aproximada
x n
x n
conteniendo
N
A = Y;
N = length(X);
for j = 2:N
for k = N:-1:j
A(k) = (A(k) - A(k-1)) / (X(k) - X(k-j+1));
end
end
x0 =
df =
prod
n1 =
X(1);
A(2);
= 1;
length(A) - 1;
for k = 2:n1
prod = prod * (x0 - X(k));
df = df + prod * A(k+1);
end
s = traprl (f, a, b, M)
% Entrada % caracteres
%
%
% Salida
-
h = (b - a) / M;
s = 0;
for k = 1:(M-1)
x = a + h * k;
s = s + feval(f, x);
end
s = h *(feval(f, a) + feval(f, b)) / 2 + h * s;
s = simprl (f, a, b, M)
% Entrada % caracteres
%
%
% Salida
-
h = (b - a) / (2 * M);
s1 = 0;
s2 = 0;
for k = 1:M
x = a + h * (2 * k - 1);
s1 = s1 + feval(f, x);
end
for k = 1:(M-1)
x = a + h * 2 * k;
s2 = s2 + feval(f, x);
end
s = h * (feval(f, a) + feval(f, b) + 4 * s1 + 2 * s2) / 3;
T = rctrap (f, a, b, n)
% Entrada % caracteres
%
%
%
% Salida
%
%
%
-
M = 1;
h = b - a;
err = 1;
J = 0;
R = zeros(4, 4);
R(1, 1) = h * (feval(f, a) + feval(f, b)) / 2;
while ((err > tol) & (J
J = J + 1;
h = h / 2;
s = 0;
for p = 1:M
x = a + h * (2 * p s = s + feval(f, x);
end
R(J+1, 1) = R(J, 1) / 2
M = 2 * M;
for K = 1:J
R(J+1, K+1) = R(J+1,
< n))
(J < 4)
1);
+ h * s;
end
err = abs(R(J, J) - R(J+1, K+1));
end
quad = R(J+1, J+1);
% Entrada % caracteres
%
integracion
%
% Salida
-
h = (b0 - a0) / 2;
C = zeros(1, 3);
C = feval(f, [a0, (a0+b0)/2, b0]);
S = h * (C(1) + 4 * C(2) + C(3)) / 3;
S2 = S;
tol1 = tol0;
err = tol0;
Z = [a0, b0, S, S2, err, tol1];
% Entrada
% cadena de
%
%
%
% Salida
N = length(A);
T = zeros(1, N);
T = ((a + b) / 2) + ((b - a) / 2) * A;
quad = ((b - a) / 2) * sum(W .* feval(f, T));
q = dblquad('f',xmin,xmax,ymin,ymax,tol,method)
funcin MATLAB de integracin bidimensional del integrando f en un rectngulo de
lmites [xmin,xmax] e [ymin,ymax].
C. EJERCICIOS
1. Calclese f'(x) en x = 1 numricamente, aplicando los mtodo de derivacin mediante
lmites y derivacin usando extrapolacin. Mostrar el error relativo cometido.
f ( x) x
2. Calclese numricamente las derivadas de las funciones siguientes, aplicando los
mtodos de derivacin mediante lmites y derivacin usando extrapolacin:
f ( x) 50 x 35 18 x 2 6
en x=1
1 2 x sin 2 3x
g ( x)
1 x2
en x = 2
dI
RI (t ) , donde R
dt
es la resistencia, L la inductancia e I es la intensidad de corriente. Consideremos
L=0.05H (henrios), R=2 y los valores de I(t), en Amperios se relacionan en la tabla
siguiente.
3. El voltaje en un circuito elctrico obedece la ecuacin V (t ) L
t
I(t)
1.0
1.1
1.2
1.3
1.4
8.2277 7.2428 5.9908 4.5260 2.9122
Ayudas:
- Definir el eje de abscisas con un paso de 0.01 (es decir, t=0:0.01:3)
-Aplicar la funcin MATLAB diff para aplicar la frmula de derivacin siguiente:
f ( x h) f ( x)
f ' ( x)
h
- Los puntos crticos pueden determinarse numricamente a partir del cambio de signo
de y'(t), entre dos puntos consecutivos. Es conveniente dibujar los puntos sobre la
funcin original para ver si son mximos o mnimos.
- Puede ser til usar el comando find (para encontrar los puntos crticos y para
clasificarlos)
5. Aproxima las integrales siguientes utilizando la regla compuestas del trapecio y de
Simpson. Comparar el resultado con el que proporciona la funcin MATLAB (quad).
Cuntos intervalos son necesarios en cada mtodo para alcanzar una precisin de 5
cifras decimales?
x
dx
x 4
/4
e3 x sin 2 x dx
x ln x dx
x 3e x dx
6. Aproximar las integrales del problema anterior con una precisin de 7 cifras
decimales considerando el mtodo de integracin de Romberg y el mtodo adaptativo
con regla de Simpson.
7.
a) Aproximar la integral
8. Estimar
datos experimentales
x
f(x)
0
-1
1
-0.5
2
0
3
1
4
3
5
1
6
0
h
f1 2 f 2 2 f3 ... 2 f n 1 2 f n f n 1
2
b
h
Simpson: f ( x)dx f1 4 f 2 2 f 3 4 f 4 2 f 5 ... 2 f n 1 4 f n f n 1
a
3
b
Trapecio: f ( x)dx
a
9. Sin hacer llamadas a rutinas externas, hacer un programa para obtener el rea bajo la
sin( x)
curva exp
en [0,1] utilizando la regla compuesta de Simpson con 6
x
subintervalos.
Ayuda: para evitar la singularidad en x=0, usar crear la funcin sinnx.m
function y =sinxx(x)
% calcula y=sin(x)/x
n=length(x);
for k=1:n
if x(k) ==0
y(k)=1;
else
y(k)=sin(x(k))/x(k);
end
end
1 2x
dx utilizando el mtodo de integracin de Gauss1 x2
Legendre, para 2, 3 o 7 nodos, respectivamente (considerar los respectivos nodos y
pesos en la siguiente tabla).
Nodos
0.5773502692
0.7745966692
0.00000000000
0.9491079123
0.7415311856
0.4058451514
0.00000000000
N
2
3
7
Pesos
1.00000000000
0.55555555556
0.88888888888
0.1294849662
0.2797053915
0.3818300505
0.4179591837
dx dy y 2 sin( x ) x 2 cos( y )
0
1
0
dx dy e xy sin( xy )
1