deber_no6
Post on 04-Nov-2015
230 Views
Preview:
DESCRIPTION
TRANSCRIPT
-
DEPARTAMENTO DE CIENCIAS EXACTAS
CARRERA INGENIERIA MECANICA.
ASIGNATURA:Metodos Numericos.
NRC: 1827
TEMA: DEBER N 6
PROFESOR: Ing.Patricio Pugarn
ALUMNO: Jonathan Changoluisa
PARALELO: G 301
FECHA DE ENTREGA: 22 de Febrero del 2015
SANGOLQUI-ECUADOR
SEP 14 - FEB 15
1
-
1. EJERCICIO: Construir una tabla de derivadas primeras de la fun-cion g(x) definida por la siguiente tabla en los puntos xi con la mayorprecision posible mediante formulas de tres puntos (Programa).
xi g(x)
1.0 1.000000
1.2 0.997502
1.4 0.990025
1.8 0.960398
2.0 0.940678
%PROGRAMA TABLA DE DERIVADAS
%ingreso de vectores x y gx
for i=1:5
%Para vector x
fprintf(Ingrese el elemento x%d: ,i-1);
x(i)=input();
%Para vector gx
fprintf(Ingrese el elemento g%d: ,i-1);
gx(i)=input();
end
cont=interpolLagrange(x,gx);
R=polyval(cont,1.6);
z=-10:0.1:10;
Graf=polyval(cont,z);
grid on
plot(z,Graf)
x=1:0.2:2.4;
gx=polyval(cont,x);
for i=1:6 %va hasta 6 xke ahora ia hay 6 puntos
gxp(i)=(-3*gx(i)+4*gx(i+1)-gx(i+2))/(2*0.2);
end
%para imprimir respuestas
fprintf(\n TABLA DE DERIVADAS \n)
2
-
fprintf(x(i)\t \t \t g(x) \t \t \t gA^(x) \n);
for i=1:6
fprintf(%4.6f \t \t %4.6f \t \t %4.6f \n,x(i),gx(i),gxp(i));
end
CORRIDA DEL PROGRAMA
Ingrese el elemento x0: 1.0
Ingrese el elemento g0: 1.000000
Ingrese el elemento x1: 1.2
Ingrese el elemento g1: 0.997502
Ingrese el elemento x2: 1.4
Ingrese el elemento g2: 0.990025
Ingrese el elemento x3: 1.8
Ingrese el elemento g3: 0.960398
Ingrese el elemento x4: 2.0
Ingrese el elemento g4: 0.940678
TABLA DE DERIVADAS
x(i) g(x) gA^(x)
1.000000 1.000000 -0.000042
1.200000 0.997502 -0.024528
1.400000 0.990025 -0.052130
1.600000 0.977405 -0.078254
1.800000 0.960398 -0.098302
2.000000 0.940678 -0.107680
>>
3
-
4
-
2. EJERCICIO: Se conocen los valores de la funcion de Bessel Jo(x)en los puntos Jo(0, 0) = 1,0000000, Jo(0, 1) = 0,99750156, Jo(0, 2) =0,99002497, Jo(0, 3) = 0,97762625, Jo(0, 4) = 0,96039823, Jo(0, 5) =0,93846981. Construir una tabla de derivadas en esos puntos con lamayor precision posible usando las formulas de tres puntos mas apro-piadas (Programa).
Programa en Matlab
%ingreso de vectores x y J0
for i=1:6
fprintf(Ingrese el elemento x%d: ,i-1);
x(i)=input();
fprintf(Ingrese el elemento Jo(0,%d): ,i-1);
Jo(i)=input();
end
cont=Polino_Inter_Lagrange(x,Jo);
z=-10:0.1:10;
Graf=polyval(cont,z);
plot(z,Graf)
x=0:1:9;
Jo=polyval(cont,x);
%Primera derivada
for i=1:6
Jop1(i)=(-3*Jo(i)+4*Jo(i+1)-Jo(i+2))/(2*1);
end
for i=1:6
Jop2(i)=(2*Jo(i)-5*Jo(i+1)+4*Jo(i+2)-Jo(i+3))/(1^2);
end
fprintf(\n TABLA DE DERIVADAS \n)
fprintf(x(i)\t \t \t Jo(0,x) \t \t \t JoA^(0,x) \t \t \t Jo
A^A^(0,x) \n);
for i=1:6
fprintf(%d \t \t \t %4.8f \t \t \t %4.8f \t \t \t \t
5
-
%4.8f \n,x(i),Jo(i),Jop1(i),Jop2(i));
end
Corrida del Programa
Ingrese el elemento x0: 0
Ingrese el elemento Jo(0,0): 1
Ingrese el elemento x1: 1
Ingrese el elemento Jo(0,1): 0.99750156
Ingrese el elemento x2: 2
Ingrese el elemento Jo(0,2): 0.99002497
Ingrese el elemento x3: 3
Ingrese el elemento Jo(0,3): 0.97762625
Ingrese el elemento x4: 4
Ingrese el elemento Jo(0,4): 0.96039823
Ingrese el elemento x5: 5
Ingrese el elemento Jo(0,5): 0.93846981
TABLA DE DERIVADAS
x(i) Jo(0,x) JoA^(0,x) JoA^A^(0,x)
0 1.00000000 -0.00000936 -0.00503417
1 0.99750156 -0.00501552 -0.00501496
2 0.99002497 -0.00998407 -0.00495820
3 0.97762625 -0.01487782 -0.00486463
4 0.96039823 -0.01966034 -0.00473499
5 0.93846981 -0.02429592 -0.00457002
6
-
7
-
3. EJERCICIO: Considerese la funcion:
f(x) =
0 , 1 < x < 4/5
ex2
, 4/5 < x < 1
Para calcular f (4/5) Asera mejor usar una formula adelantada o unacentrada? Explique.
SOLUCION
Obtendriamos en primer lugar la grafica de la funcion planteada alinicio
MATLAB
>> x=-1:0.01:1;
>> y=((x>-1)&(x=(4/5))&(x> plot(x,y,r*)
Podemos ver que la grafica no es una funcion continua en el punto45 , y si queremos obtener la derivada en el punto
45 , necesitamos los
puntos que estan delante de este debido a que la grafica no es continuo
8
-
como le habia demostrado anteriormente con la grafica es decir nopodemos obtener su derivada con las formulas de derivadas centradas,por tanto, Trabajemos con la formula de derivadas numericasadelantadas.
f i =fi+1 fi
h
f x =fx+h fx
hUtilizaremos un dezplazamiento constante de 0.1 es decir, h = 0,1.Entonces los puntos ha ser utilizados seran:xi+1 = 0,9 y xi = 0,8.
f x =f(0,8 + 0,1) f(0,8)
h
f x =f(0,9) f(0,8)
0,1
Resolviendo
f x =e(0,9)
2 e(0,8)20,1
f x = 0,824344La pendiente en x = 45 es
f x = 0,824344
9
-
4. EJERCICIO: Considerese las siguientes funciones:
f(x) = x3 para 0 x 1f(x) = sin(X) para 0 x pi/4f(x) = ex para 0 x 1
Teniendo presente que:
Longitud de una curva. La longitud de una curva y = f(x) definidasobre un intervalo [a, b] es:
longitud = ba
1 + (f (x))2dx
Area de una superficie de revolucion. El area de la superficie delsolido de revolucion que se obtiene al girar alrededor del eje OXla region limitada por la curva y = f(x) y el intervalo [a, b], vienedada por:
area = 2pi ba f(x)
1 + (f (x))2dx
Calcular la longitud de curva y la superficie de revolucion de las curvasdadas, tuilizando los programas para los metodos: trapecio, 3/8 desimposon y Boole. Comente los resultados.
a) f(x) = x3 para 0 x 1Para obtener la longitud primero deberemos derivar la funcion:
f(x) = x3
f (x) = 3x2
Reemplazamos en la formula de la longitud de la curva:
L =
ba
1 + (3x2)2dx
L =
10
1 + (9x4)dx
Codigo en Mtalab Para todos los Metodos PROGRAMA
function Ejercicio_4Unido(f,a,b)
%trapecio
n=300;
10
-
%valor h
h=(b-a)/n;
fx=diff(f);
%FUNCIONES
fx1=(1+(fx)^2)^(1/2);
fx2=int(fx)*fx1;
fx1=inline(fx1);
fx2=inline(fx2);
%TRAPECIO
%LONGITUD
for i=1:n+1
x(i)=a+(i-1)*h;
end
sum2=0;
sum1=(fx1(x(1))+fx1(x(n+1)));
for i=2:n
sum2=sum2+(fx1(x(i)));
end
sum=sum1+2*sum2;
trap=(h/2)*sum;
fprintf(\nLongitud por el Metodo TRAPECIO: %.10f,trap);
%AREA
for i=1:n+1
x(i)=a+(i-1)*h;
end
sum2=0;
sum1=(fx2(x(1))+fx2(x(n+1)));
for i=2:n
sum2=sum2+(fx2(x(i)));
end
sum=sum1+2*sum2;
trap=(h/2)*sum;
area=2*pi*trap;
fprintf(\nArea por el Metodo TRAPECIO: %.10f,area);
11
-
%3/8 simpson
%LONGITUD
for i=1:n+1
x(i)=a+(i-1)*h;
end
sum1=fx1(x(1))+fx1(x(n+1));
sum2=0;
for i=2:3:n-1
sum2=sum2+(fx1(x(i)));
end
sum3=0;
for i=3:3:n
sum3=sum3+(fx1(x(i)));
end
sum4=0;
for i=4:3:n-2
sum4=sum4+(fx1(x(i)));
end
sum=sum1+3*sum2+3*sum3+2*sum4;
simp=(3*h/8)*sum;
fprintf(\n\nLongitud por el Metodo 3/8 SIMPSON: %.10f,simp);
%area
for i=1:n+1
x(i)=a+(i-1)*h;
end
sum1=fx2(x(1))+fx2(x(n+1));
sum2=0;
12
-
for i=2:3:n-1
sum2=sum2+(fx2(x(i)));
end
sum3=0;
for i=3:3:n
sum3=sum3+(fx2(x(i)));
end
sum4=0;
for i=4:3:n-2
sum4=sum4+(fx2(x(i)));
end
sum=sum1+3*sum2+3*sum3+2*sum4;
simp=(3*h/8)*sum;
area=2*pi*simp;
fprintf(\nArea por el Metodo 3/8 SIMPSON: %.10f,area);
%boole
%LONGITUD
sum2=0;
sum3=0;
sum4=0;
for i=1:n+1
x(i)=a+(i-1)*h;
end
sum1=fx1(x(1))+fx1(x(n+1));
for i=2:2:n
sum2=sum2+fx1(x(i));
end
for i=3:4:n-1
sum3=sum3+fx1(x(i));
end
for i=5:4:n-3
sum4=sum4+fx1(x(i));
13
-
end
sum=7*sum1+32*sum2+12*sum3+14*sum4;
boole=(2*h/45)*sum;
fprintf(\n\nLongitud por el Metodo BOOLE: %.10f,boole);
%AREA
sum2=0;
sum3=0;
sum4=0;
for i=1:n+1
x(i)=a+(i-1)*h;
end
sum1=fx2(x(1))+fx2(x(n+1));
for i=2:2:n
sum2=sum2+fx2(x(i));
end
for i=3:4:n-1
sum3=sum3+fx2(x(i));
end
for i=5:4:n-3
sum4=sum4+fx2(x(i));
end
sum=7*sum1+32*sum2+12*sum3+14*sum4;
boole=(2*h/45)*sum;
area=2*pi*boole;
fprintf(\nArea por el Metodo BOOLE: %.10f\n,area);
end
14
-
Ejecucion del programa
>> Ejercicio_4Unido(x^3,0,1)
Longitud por el Metodo TRAPECIO: 1.5478709251
Area por el Metodo TRAPECIO: 3.5632101593
Longitud por el Metodo 3/8 SIMPSON: 1.5478656547
Area por el Metodo 3/8 SIMPSON: 3.5631218537
Longitud por el Metodo BOOLE: 1.5478656547
Area por el Metodo BOOLE: 3.5631218520
Los resultados obtenidos son bastantes parecidos si compara-mos la longitud de:TRAPECIO con SIMPSON su valor es exacto hasta su cuarta cifraTRAPECIO con BOOLE su valor es exacto hsta la cuarta cifraSIMPSON con BOOLE su valor exacto es diez cifras decimalesEs decir los resultados son my favorables y cada metodos es confiablede tener una resultado aceptable.Los resultados con las areas obtenemos:TRAPECIO con SIMPSON su valor es exacto hasta su tercera cifradecimalTRAPECION con BOOLE su valor exacto es hasta su tercera cifradecimalSIMPSON con BOOLE su valor exacto es hasta su sexta cifra deciaml.Es decir los Metodos que mas se aproximan es el de SIMPSON y deBOOLE dando confiabilidad para utilizarlos
15
-
5. EJERCICIO: Calcule un valor aproximado de ln(2) aplicando laformula del trapecio compuesta a: 1
0
dx
x+ 1
De una estimacion del error.
Corrida del programa
16
-
6. EJERCICIO: La funcion
(x) = x
0 sen(t2)dt
es conocida como la integral de Fresnel. Haga un grafico de la funcionen el intervalo [0,10], aplicando la formula del punto medio compuesta.
Corrida del Programa
17
-
18
-
7. EJERCICIO: Use el metodo de las diferencias finitas para aproximarla solucion de las siguientes EDO, tomando un paso h = 0,01:
x = 2x x+ t2 1 en [0,1] con x80) = 5 y x(1) = 10 grafique lasolucion aproximada y compare con la grafica de la solucion exactax(t) = t2 + 4t+ 5
SOLUCION
x = 2x x+ t2 1x 2x + x = t2Discretizamos el intervalo
h =1 0n
0,01 =1 0n
n = 100
Para un punto xk, k = 2, 3, ..., 7
xtk 2x
tk + xtk = t
2k 1
Si xk = x(tk) entonces
xk 2x
k + xk = t
2k 1(1)
Sabemos que la formula en diferencias divididas centrada ordenOh2 para la segunda derivada es:
xk =xk+1 2xk + xk1
h2(2)
Sabemos que la formula en diferencias divididas centrada ordenOh para la primera derivada es:
xk =xk+1 xk1
2h(3)
(2)y(3)en(1)
19
-
xk+1 2xk + xk1h2
2xk+1 xk12h
+ xk = t2k 1
xk+1 2xk + xk1h2
xk+1 xk1h
+ xk = t2k 1
xk+1 2xk + xk1 hxk+1 + hxk1 + h2xkh2
= t2k 1xk+1 2xk + xk1 hxk+1 + hxk1 + h2xk = h2(t2k 1)xk+1(1 + h) + xk(h
2 2) + xk1(1 h) = h2(t2k 1)k = 2
x3(1 h) + x2(h2 2) = h2((0,01)2 1)k = 3
x4(1 h) + x3(h2 2) + x2(1 + h) = h2((0,02)2 1)k = 4
x5(1 h) + x4(h2 2) + x3(1 + h) = h2((0,03)2 1)k = 5
x6(1 h) + x5(h2 2) + x4(1 + h) = h2((0,04)2 1)k = 6
x7(1 h) + x6(h2 2) + x5(1 + h) = h2((0,05)2 1)k = 7
x8(1 h) + x7(h2 2) + x6(1 + h) = h2((0,06)2 1)k = 100
x100(h2 2) + x99(1 + h) = h2((0,99)2 1)
Formamos la matriz para saber el patron de la matriz tridiagonalFormamos la matriz A:
A =
(h2 2) 1 + h 0 0 0 0 0 0 01 h (h2 2) 1 + h 0 0 0 0 0 00 1 h (h2 2) 1 + h 0 0 0 0 00 0 1 h (h2 2) 1 + h 0 0 0 00 0 0 1 h (h2 2) 1 + h 0 0 00 0 0 0 1 h (h2 2) 1 + h 0 00 0 0 0 0 1 h (h2 2) 1 + h 0: : : : : : : : :0 0 0 0 0 0 0 1 h (h2 2)
20
-
X =
x2x3x4x5x6x7x8:
x100
Formamos la matriz B:
B =
h2((0,01)2 1)h2((0,02)2 1)h2((0,03)2 1)h2((0,04)2 1)h2((0,05)2 1)h2((0,06)2 1)h2((0,07)2 1)
:h2((0,99)2 1)
Formamos la matriz tridiagonal
PROGRAMA
Por problemas de espacio debido que la matriz es de 99x99 para poder visualizarla seha puesto una de 8x8 solo con fines de demostracion que el programa TRIDIAGONALsi corre perfectamente. para la solucion obviamente ya se ha utilizado la matriz de99x99.Corrida del Programa
21
-
A=Tridiagonal(1+0.01,0.01^2-2,1-0.01,99);
h=0.01;
for i=1:99
W(i)=(h^2)*(((0.01*i)^2)-1);
end
W;
B=W
x=inv(A)*B;
X1=[5;x;10];
t=[0:0.01:1];
>> cont= Polino_Inter_Lagrange(t,X1);
z=0:0.1:1;
X2=polyval(cont,z);
plot(z,X2)
GRAFICA
Union con la exacta y la aproximada
22
-
x + (1/t)x + (1 1/(4t2))x = 0 en [1,6] con x(1) = 1 y x(6) = 6 grafique la solucionaproximada y compare con la grafica de la solucion exacta:
x(t) =0, 2913843206cos(t) + 1, 001299385sen(t)
t
SOLUCION
x + (1t )x + (1 14t2 ) = 0
x 2x + x = t2Discretizamos el intervalo
h =6 1n
0,01 =6 1n
n = 500
Para un punto xk, k = 2, 3, ..., 7, ...
xtk + (1
tk)xtk + (1
1
4t2k)xtk = 0
Si xk = x(tk) entonces
xk + (1
tk)xk + (1
1
4t2k)xk = 0(1)
23
-
Sabemos que la formula en diferencias divididas centrada orden Oh2
para la segunda derivada es:
xk =xk+1 2xk + xk1
h2(2)
Sabemos que la formula en diferencias divididas centrada orden Ohpara la primera derivada es:
xk =xk+1 xk1
2h(3)
(2)y(3)en(1)
xk+1 2xk + xk1h2
+1
tk(xk+1 xk1
2h) + (1 1
4t2k)xk = 0
xk1(4t2k 2htk) + xk(8t2k + 4t2kh2 h2) + xk+1(4t2k + 2htk) = 0k = 2
x1(4t22 2ht2) + x2(8t22 + 4t22h2 h2) + x3(4t22 + 2ht2) = 0
k = 3
x2(4t23 2ht3) + x3(8t23 + 4t23h2 h2) + x4(4t23 + 2ht3) = 0
k = 4
x3(4t24 2ht4) + x4(8t24 + 4t24h2 h2) + x5(4t24 + 2ht4) = 0
k = 5
x4(4t25 2ht5) + x5(8t25 + 4t25h2 h2) + x6(4t25 + 2ht5) = 0
k = 6
x5(4t26 2ht6) + x6(8t26 + 4t26h2 h2) + x7(4t26 + 2ht6) = 0
k = 7
x6(4t27 2ht7) + x7(8t27 + 4t27h2 h2) + x8(4t27 + 2ht7) = 0
24
-
k = 500
x499(4t25002ht500)+x500(8t2500+4t2500h2h2)+x501(4t2500+2ht500) = 0
Formamos la matriz para saber el patron de la matriz tridiagonalFormamos la matriz A:
A =
8t22 + 4t22h2 h2 4t22 + 2ht2 0 0 0
4t23 + 2ht3 8t23 + 4t22h2 h2 4t23 + 2ht3 0 00 4t24 + 2ht4 8t22 + 4t24h2 h2 4t24 + 2ht4 00 0 4t25 + 2ht5 8t25 + 4t25h2 h2 4t25 + 2ht5: : : : :
PROGRAMA EN MATLAB
function Tridiagonal_Irregular(n,a,b)
h=(b-a)/n;
for i=1:n-1
for j=1:n-1
if(i-j == -1)
A(i,j)=4*(i*h+a)^2+2*h*(i*h+a);%diagonal arriba
else
if (i-j==1)
A(i,j)=4*(i*h+a)^2-2*h*(i*h+a);%diagonal abajo
else
if i-j==0
A(i,j)=4*(i*h+a)^2*h^2-8*(i*h+a)^2-h^2;%diagonal medio
end
end
end
end
end
V(1)=-(4*(h+a)^2-2*h*(h+a))*1;
V(n-1)=-(4*((n-1)*h+a)^2+2*h*((n-1)*h+a))*0;
for i=2:n-2
V(i)=0;
end
y=inv(A)*V;
y1=[1 y 0];
x=a:h:b;
f=Polino_Inter_Lagrange(x,y1);
z=a:0.01:b;
f1=polyval(f,z);
plot(z,f1)
end
GRAFICA
25
-
GRAFICA DE LA ECUACION EXACTA y LA CALCULADARojo=ExactaAzul=Calculada
26
top related