Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

DEBER1 Altamirano Ariel 2752

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 18

Departamento

CIENCIAS EXACTAS

Asignatura: MÉTODOS NUMÉRICOS


NRC: 2752

DEBER Nro. 1

Tutor
ING. PATRICIO PUGARIN

Estudiante
ARIEL ALTAMIRANO

Sangolquí, 26 de octubre del 2019


Métodos Numéricos Primer Parcial

Deber Nro. 1
Programación Matlab, Ecuaciones no Lineales.

1. Realizar un programa en Matlab que permita visualizar un círculo de radio 6,5 y


centro 3.

Código en Matlab
%% Realizar un programa en Matlab que permita
visualizar un círculo de radio 6,5 y centro 3.
close all;
clear all;
t=0:pi/30:2*pi;
R=6.5; % Variable R para modificar el valor del radio
cx=3; %variables para definir el centro del circulo
cy=0; %centro C(3,0)
x=R*(cos(t))+cx;
y=R*(sin(t))+cy;
plot(x,y,'r')
line(xlim,[0 0],'color','b');
line([0 0],ylim,'color','b');
grid on
axis square
axis([-4 10 -7 7])
title('Circulo')

Ejecución del Programa

1
Métodos Numéricos Primer Parcial
2. Graficar la siguiente función y sus derivadas, en un solo gráfico de manera
superpuesta, aplicando el comando “if”.

𝑒 −𝑥 𝑠𝑖 ∶ 𝑥 < −1
𝑓(𝑥) = { |𝑥| 𝑠𝑖 ∶ −1 < 𝑥 < 1
𝑥2 + 1 𝑠𝑖 ∶ 𝑥>1

Código en Matlab
%% Graficar la siguiente función y sus derivadas, en
un solo gráfico de manera superpuesta, aplicando el
comando “if”.
close all;
clear all;
x=-100:0.01:100;
f =(x<-1).*exp(-x)+((-1<x )&(x <1 ) ).* abs ( x )+(x
>1 ).*( x.^2+1 );
plot ( x ,f, 'b') ;
axis([-2 2 -5 5]);
grid on ;
hold on ;
d=(x<-1).*(-exp(-x))+((-
1<x)&(x<1)).*(1)+(x>1).*(2.*x);
plot(x,d,'k') ;
title('(azul) función paramétrica; (negro) derivada');

Ejecución del Programa

2
Métodos Numéricos Primer Parcial
2 2
3. Represente gráficamente la función 𝑓(𝑥1 , 𝑥2 ) = 𝑥1 ∙ 𝑒 −𝑥1 −𝑥2 en el mallado
[−2,2]𝑥[−2,2].

Código en Matlab
%% Represente gráficamente la función f(x1,x2) en el
mallado [-2,2]x[-2,2].
close all;
clear all;
hold on
ezplot('x.*exp(-x.^2-y.^2)',[-2,2,-2,2])

hold off
title('Función f(x1,x2)');
grid on

Ejecución del Programa

4. Tabla de conversión de temperatura. La relación de diversas escalas de


temperatura con la escala Celsius (C), es la siguiente:
9
𝐹 = 𝐶 + 32
5
𝐾 = 𝐶 + 273,15
8
𝑅= 𝐶
10
Construir un programa en Matlab que permita pasar de una escala a otra. El
programa debe solicita al usuario el ingreso de la información necesaria para su

3
Métodos Numéricos Primer Parcial
funcionamiento. Además, el programa siempre esperara información hasta que
se pulse la tecla s.

Código en Matlab
while true % permite volver al punto inicial
disp('Conversión de temperatura');
disp('Seleccione la escala a la que desea tranformar');
disp ( '"a" Celsius a Farenheit ' );
disp ( '"b" Celsius a Kelvin ' );
disp ( '"c" Celsius a Rankine ' );
disp ( '"s" Salir ' );
ops = input('Elija una opcion: ','s');
switch ops
case 'a'
while true
disp('Escala Celsius a Escala Farenheit')
C=input('Ingresar el valor en grados Celsius o "s" para salir: ','s');
if C=='s'
disp('Salio con exito del programa');
break;
else
f=eval(C);
F=(f*(9/5))+32;
disp('el valor en escala Farenheit es =');
disp(F);
end
end
case 'b'
while true
disp('Escala Celsius a Escala Kelvin')
C=input('Ingresar el valor en grados Celsius o "s" para salir: ','s');
if C=='s'
disp('Salio con exito del programa');
break;
else
k=eval(C);
K=k+273.15;
disp('el valor en escala Kelvin es = ');
disp(K);
end
end
case 'c'
while true
disp('Escala Celsius a Escala Rankine')
C=input('Ingresar el valor en grados Celsius o "s" para salir: ','s');
if C=='s'
disp('Salió con éxito del programa');
break;
else
r=eval(C);
R=r*(8/10);
disp('el valor en escala Rankine es = ');
disp(R);
end
end
case 's'
disp('Salió con éxito del programa');
break;
otherwise
disp('Ingrese una opción válida');
end
end

4
Métodos Numéricos Primer Parcial
Ejecución del Programa
metodos_1_4
Conversión de temperatura
Seleccione la escala a la que desea tranformar
"a" Celsius a Farenheit
"b" Celsius a Kelvin
"c" Celsius a Rankine
"s" Salir
Elija una opcion: a
Escala Celsius a Escala Farenheit
Ingresar el valor en grados Celsius o "s" para salir: 250
el valor en escala Farenheit es =
482
Escala Celsius a Escala Farenheit
Ingresar el valor en grados Celsius o "s" para salir: s
Salio con exito del programa
Conversión de temperatura
Seleccione la escala a la que desea tranformar
"a" Celsius a Farenheit
"b" Celsius a Kelvin
"c" Celsius a Rankine
"s" Salir
Elija una opcion: b
Escala Celsius a Escala Kelvin
Ingresar el valor en grados Celsius o "s" para salir: 22
el valor en escala Kelvin es =
295.1500
Escala Celsius a Escala Kelvin
Ingresar el valor en grados Celsius o "s" para salir: s
Salio con exito del programa
Conversión de temperatura
Seleccione la escala a la que desea tranformar
"a" Celsius a Farenheit
"b" Celsius a Kelvin
"c" Celsius a Rankine
"s" Salir
Elija una opcion: s
Salió con éxito del programa

5
Métodos Numéricos Primer Parcial
5. Crear una función m.file con la que se puede graficar la función paramentaría
siguiente:
𝑅+𝑟
𝑥(𝑡) = (𝑅 + 𝑟) ∙ 𝑐𝑜𝑠(𝑡) − 𝑟 ∙ 𝑐𝑜𝑠 ( ∙ 𝑡)
𝑧(𝑡) = { 𝑟
𝑅+𝑟
𝑦(𝑡) = (𝑅 + 𝑟) ∙ 𝑠𝑒𝑛(𝑡) − 𝑟 ∙ 𝑠𝑒𝑛 ( ∙ 𝑡)
𝑟
Los parámetros de entrada deben ser R, r, a, b y el numero n de puntos. 𝑡 ∈ [𝑎, 𝑏]
y 𝑎, 𝑏 ∈ 𝑅.

Código en Matlab
%% Ingresar los valores de R,r,a,b,n
close all;
clear all;
function metodos_1_5(R,r,a,b,n)
t=linspace(a,b,n)
x=(R+r)*cos(t)-r*cos(((R+r)/r)*t);
y=(R+r)*sin(t)-r*sin(((R+r)/r)*t);
plot(x,y)
grid on
end

Ejecución del Programa


>> metodos_1_5(5, 2, -10, 10, 100)
t=
Columns 1 through 12
-10.0000 -9.7980 -9.5960 -9.3939 -9.1919 -8.9899 -8.7879 -8.5859 -8.3838 -8.1818 -
7.9798 -7.7778
Columns 13 through 24
-7.5758 -7.3737 -7.1717 -6.9697 -6.7677 -6.5657 -6.3636 -6.1616 -5.9596 -5.7576 -
5.5556 -5.3535
Columns 25 through 36
-5.1515 -4.9495 -4.7475 -4.5455 -4.3434 -4.1414 -3.9394 -3.7374 -3.5354 -3.3333 -
3.1313 -2.9293
Columns 37 through 48
-2.7273 -2.5253 -2.3232 -2.1212 -1.9192 -1.7172 -1.5152 -1.3131 -1.1111 -0.9091 -
0.7071 -0.5051
Columns 49 through 60
-0.3030 -0.1010 0.1010 0.3030 0.5051 0.7071 0.9091 1.1111 1.3131 1.5152
1.7172 1.9192
Columns 61 through 72
2.1212 2.3232 2.5253 2.7273 2.9293 3.1313 3.3333 3.5354 3.7374 3.9394
4.1414 4.3434
Columns 73 through 84
4.5455 4.7475 4.9495 5.1515 5.3535 5.5556 5.7576 5.9596 6.1616 6.3636
6.5657 6.7677
Columns 85 through 96
6.9697 7.1717 7.3737 7.5758 7.7778 7.9798 8.1818 8.3838 8.5859 8.7879
8.9899 9.1919
Columns 97 through 100
9.3939 9.5960 9.7980 10.0000

6
Métodos Numéricos Primer Parcial

6. Represente en Matlab la superficie 3D dada por la función


1 1
(x−μ)T Σ−1 (x−μ))
fx (x1 , … , xn ) = n/2 1/2
∙ e(−2
(2π) |Σ|
Para el caso 𝑛 = 2, usar los siguientes valores de las constantes μ = (10,10)𝑇 ,
3 −1
Σ=( ). El símbolo |Σ| significa el determinante de la matriz Σ.
−1 4

Código en Matlab
%% Represente en Matlab la superficie 3D dada por la función
close all;
clear all;
syms a b;
X=[a ; b];
u=transpose ([10 10]);
m=[3 -1;-1 4];
f=inline((exp(-(1/2)*((X-u)')*(m^(-1))*(X-
u)))/((2*pi)*sqrt(det(m))));
x=0:0.3:20;
y=0:0.3:20;
for a=1:length(x)
for b=1:length(x)
z(a,b)=f(x(a),y(b));
end
end
surf(x,y,z,'EdgeColor','none')
colormap(spring);
title('Superficie 3D de la función f' );
colormap(summer);
xlabel ('Eje X');
ylabel ('Eje Y');
zlabel ('Eje Z');

7
Métodos Numéricos Primer Parcial
Ejecución del Programa

7. Realizar una función tal que ingresado un numero N, se impriman por pantalla
todos los números primos de 1 hasta N.
Ej: Ingreso el número 13 y se imprimen por pantalla: 1, 3, 5, 7, 11, 13.

Código en Matlab
%% Realizar una función tal que ingresado un numero N, se
impriman por pantalla todos los números primos de 1 hasta N
close all;
clear all;
N=input('Ingresar un número que será límite para la serie de
números primos: ');
n1=1;
n2=2;
while n2<=N
if n2>=n1
n1=n1+1;
if (mod(n2,n1)==0)&&(n2~=n1)
n2=n2+1;
n1=1;
end
if (mod(n2,n1)==0)&&(n2==n1)
disp(n2);
n2=n2+1;
n1=1;
end
end
end

8
Métodos Numéricos Primer Parcial
Ejecución del Programa
>> metodos_1_7
Ingresar un número que será límite para la serie de números primos: 22
2
3
5
7
11
13
17
19
8. En cada uno de los casos siguientes, halle el error absoluto Ez y el error relativo
Rz y determine el número de cifras significativas de la aproximación.
a) 𝑥 = 2,71828282 , 𝑥̂ = 2,7182
b) 𝑦 = 98350 , 𝑦̂ = 98000
c) 𝑧 = 0,000068 , 𝑧̂ = 0,00006

Código en Matlab
%% En cada uno de los casos siguientes, halle el error
absoluto Ez y el error relativo Rz y determine el número de
cifras significativas de la aproximación
close all;
clear all;
format long
x1=2.71828182;
x2=2.7182;
y1=98350;
y2=98000;
z1=0.000068;
z2=0.00006;
disp('Primer caso "a"');
Ex=abs(x1-x2); %Ex, error absoluto
Rx=abs((x1-x2)/x1); % Rx error relativo
CSx=floor(-(log(2*Rx)/log(10)));
fprintf('\n Error absoluto literal a = %d \n',Ex);
fprintf('Error Relativo literal a = %d \n ',Rx);
fprintf('Cifras significativas de x = %d \n\n',CSx);
disp('Segundo caso "b"');
Ey=abs(y1-y2);%Ey, error absoluto
Ry=abs((y1-y2)/y1);% Ry error relativo
CSy=floor(-(log(2*Ry)/log(10)));
fprintf('\n Error absoluto literal b = %d \n',Ey);
fprintf('Error Relativo literal b = %d \n',Ry);
fprintf('Cifras significativas de y = %d \n\n',CSy);
disp('Tercer caso "c"');
Ez=abs(z1-z2);%Ez, error absoluto
Rz=abs((z1-z2)/z1);% Rz error relativo
CSz=floor(-(log(2*Rz)/log(10)));
fprintf('\n Error absoluto literal c = %d \n',Ez);
fprintf('Error Relativo literal c = %d \n',Rz);
fprintf('Cifras significativas de z = %d \n',CSz);

9
Métodos Numéricos Primer Parcial
Ejecución del Programa

>> metodos_1_8
Primer caso "a"

Error absoluto literal a = 8.182000e-05


Error Relativo literal a = 3.009990e-05
Cifras significativas de x = 4

Segundo caso "b"

Error absoluto literal b = 350


Error Relativo literal b = 3.558719e-03
Cifras significativas de y = 2

Tercer caso "c"

Error absoluto literal c = 8.000000e-06


Error Relativo literal c = 1.176471e-01
Cifras significativas de z = 0
1
9. Encuentre los desarrollos de Taylor, para las funciones siguientes: 1−ℎ y sen(h),

con órdenes de aproximación 𝑂(ℎ4 ) y 𝑂(ℎ6 ), respectivamente. Determine el


orden de aproximación de su suma y de su producto (Hacer los cálculos).
Cálculos realizados
• Desarrollos de Taylor.
1
= 1 + ℎ + ℎ2 + ℎ3 + 𝑂(ℎ4 )
1−ℎ
ℎ3 ℎ5
𝑠𝑒𝑛(ℎ) = ℎ − + + 𝑂(ℎ6 )
3! 5!
• Suma de las Funciones.
1 ℎ3 ℎ5
+ 𝑠𝑒𝑛(ℎ) = 1 + ℎ + ℎ + ℎ + 𝑂(ℎ + ℎ − + + 𝑂(ℎ6 )
2 3 4)
1−ℎ 3! 5!
𝟏 𝟓
+ 𝒔𝒆𝒏(𝒉) = 𝟏 + 𝟐𝒉 + 𝒉𝟐 + 𝒉𝟑 + 𝑶(𝒉𝟒 )
𝟏−𝒉 𝟑!
• Multiplicación de las Funciones.
1 2 3 4 ))
ℎ3 ℎ5
∙ 𝑠𝑒𝑛(ℎ) = (1 + ℎ + ℎ + ℎ + 𝑂(ℎ ∙ (ℎ − + + 𝑂(ℎ6 ))
1−ℎ 3! 5!

10
Métodos Numéricos Primer Parcial
1 ℎ3 ℎ5 ℎ4 ℎ6 ℎ5
∙ 𝑠𝑒𝑛(ℎ) = ℎ − + + 𝑂(ℎ6 ) + ℎ2 − + + ℎ ∙ 𝑂(ℎ6 ) + ℎ3 −
1−ℎ 3! 5! 3! 5! 3!
ℎ7 ℎ6 ℎ8
+ + ℎ2 ∙ 𝑂(ℎ6 ) + ℎ4 − + + ℎ3 ∙ 𝑂(ℎ6 ) + ℎ ∙ 𝑂(ℎ4 )
5! 3! 5!
ℎ3 ℎ5
∙ 𝑂(ℎ4 ) + ∙ 𝑂(ℎ4 ) + 𝑂(ℎ6 ) ∙ 𝑂(ℎ4 )

3! 5!
𝟏 𝟓
∙ 𝒔𝒆𝒏(𝒉) = 𝒉 + 𝒉𝟐 + 𝒉𝟑 + 𝑶(𝒉𝟒 )
𝟏−𝒉 𝟑!
10. Encuentre una aproximación polinomial para 𝑓(𝑥) = 𝑒 𝑥 𝑠𝑒𝑛(𝑥), con orden de
aproximación 𝑂(𝑥 4 ) y calcular la función ℎ = 𝑓𝑔; siendo 𝑔(𝑥) = 𝑥 + 𝑥 2 +
𝑂(𝑥 3 ).
• Aproximación para f(x)
𝑥2 𝑥3
𝑒𝑥 = 1 + 𝑥 + + + 𝑂(𝑥 4 )
2! 3!
𝑥3
𝑠𝑒𝑛(𝑥) = 𝑥 − + 𝑂(𝑥 4 )
3!
𝑥3 𝑥4 𝑥3 𝑥5 𝑥4 𝑥6
𝑒 𝑥 ∙ 𝑠𝑒𝑛(𝑥) = 𝑥 − + 𝑥2 − + − + − + 𝑂(𝑥 4 )
3! 3! 2! 3! ∙ 2! 3! 3! ∙ 3!
𝟐!
𝒆𝒙 ∙ 𝒔𝒆𝒏(𝒙) = 𝒙 + 𝒙𝟐 + 𝒙𝟑 + 𝑶(𝒙𝟒 )
𝟑!
• Calcular h(x)=f(g(x))

2! 3
𝑓(𝑥) = 𝑥 + 𝑥 2 + 𝑥 + 𝑂(𝑥 4 )
3!

𝑔(𝑥) = 𝑥 + 𝑥 2 + 𝑂(𝑥 3 )

2 2! 3
𝑓(𝑔(𝑥)) = 𝑥 + 𝑥 2 + 𝑂(𝑥 3 ) + (𝑥 + 𝑥 2 + 𝑂(𝑥 3 )) + (𝑥 + 𝑥 2 + 𝑂(𝑥 3 ))
3!
4
+ 𝑂 ((𝑥 + 𝑥 2 + 𝑂(𝑥 3 )) )

2! 3
𝑓(𝑔(𝑥)) = 𝑥 + 𝑥 2 + 𝑂(𝑥 3 ) + 𝑥 2 + 2𝑥 3 + (𝑥 + 4𝑥 4 + 3𝑥 5 )
3!
4
+ 𝑂 ((𝑥 + 𝑥 2 + 𝑂(𝑥 3 )) )

𝒉(𝒙) = 𝒇(𝒈(𝒙)) = 𝒙 + 𝟐𝒙𝟐 + 𝑶(𝒙𝟑 )

11
Métodos Numéricos Primer Parcial
11. Encuentre una raíz positiva, con los métodos de la bisección y newton, a mano y
con calculadora, de la ecuación
2
𝑥 2 − 4𝑥 ∙ 𝑠𝑒𝑛(𝑥) + (2 ∙ 𝑠𝑒𝑛(𝑥)) = 0;
que sea exacta hasta la segunda cifra significativa, solo con el empleo de una
calculadora.
• Método de Newton Raphson
2
𝑓(𝑥) = 𝑥2 − 4𝑥 ∙ 𝑠𝑒𝑛(𝑥) + (2 ∙ 𝑠𝑒𝑛(𝑥))
𝑓 ′ (𝑥) = 2𝑥 − 4 ∙ 𝑠𝑒𝑛(𝑥) − 4𝑥 ∙ 𝑐𝑜𝑠(𝑥) + 4 ∙ 𝑠𝑒𝑛(𝑥) ∙ cos (𝑥)
• 1ra Iteración x0 = 1,9

𝑓(x0 ) 𝑓(1,9)
x1 = x0 + = 1,9 + = 1,8999
𝑓′(x0 ) 𝑓′(1,9)

• 2da Iteración x1 = 1,8999

𝑓(1,8999)
x2 = 1,8999 +
𝑓′(1,8999)

• 3ra Iteración x2

𝑓(2,31939)
x3 = 2,31939 + = 1,8997
𝑓′(2,31939)

• 4ta Iteración x3 = 1,8997

𝑓(1,8997)
x4 = 1,8997 + = 1,8996
𝑓′(1,8997)

• 5ta Iteración x4 = 1,8996

𝑓(1,8996)
x5 = 1,8996 + = 1,8996
𝑓′(1,8996)

|𝟏, 𝟖𝟗𝟗𝟔 − 𝟏, 𝟖𝟗𝟗𝟕) 𝟏𝟎−𝒅


𝐑𝒙 = = 𝟎, 𝟎𝟎𝟎𝟎𝟓𝟐𝟔𝟑 < →𝒅=𝟒
𝟏, 𝟖𝟗𝟗𝟕 𝟐

12. Con los programas: método de la bisección, newton y método de la secante,


encuentre una raíz de 𝑓(𝑥) = 𝑥 − tan(𝑥), en el intervalo [1,2]. Compare y
comente los resultados obtenidos.

12
Métodos Numéricos Primer Parcial

Código en Matlab
%% Con los programas: método de la bisección, newton y
método de la secante, encuentre una raíz
close all;
clear all;
fx=@(x)(x-tan(x));
dx=@(x)(1-(sec(x))^2);
format short;
disp ('Método de la Bisección');
fprintf('No es posible obtener una raíz por este método
\n\n');
disp('Método de Newton Raphson');
x=1;
x1=x-fx(x)/dx(x);
while abs(x1-x)>0.000001
x=x1;
x1=x-fx(x)/dx(x);
end
fprintf('La raíz obtenida es = %d \n\n',x);
disp('Método de la Secante');
x2=1;
x3=2;
while abs (x3-x2)>0.000001
x4=x3-(fx(x3)*(x3-x2))/(fx(x3)-fx(x2));
x2=x3;
x3=x4;
end
fprintf('La raíz obtenida es = %d \n\n',x3);

Ejecución del Programa


>> metodos_1_12
Método de la Bisección
No es posible obtener una raíz por este método

Método de Newton Raphson


La raíz obtenida es = 2.100394e-06

Método de la Secante
La raíz obtenida es = 2.577687e-06
• Comparaciones

El método de la Bisección no se puede realizar, ya que en el intervalo [1,2] se


tiene una x1= (1+2) /2, la cual al ser evaluada en f(x1) es diferente de 0, por lo
que no es posible encontrar una raíz, mientras que en los dos siguientes
métodos si se puede obtener un valor, los cuales tienen un grado de diferencia
debido al error de tolerancia que posee cada método.

13
Métodos Numéricos Primer Parcial
13. Encontrar mediante el método de newton las raíces de la ecuación:
√3 ∙ 𝑠𝑒𝑛(𝑥) = cos (𝑥)

Código en Matlab
%% Encontrar mediante el método de newton las raíces de la
ecuación:
close all;
clear all;
x0=3.1;
iter=1;
fx=@(x)(sqrt(3)*sin(x)-cos(x));
dfx=@(x)(sqrt(3)*cos(x)+sin(x));
x1=x0-(fx(x0)/dfx(x0));
while abs(x1-x0)>0.000001
x0=x1;
x1=x0-(fx(x0)/dfx(x0));
iter=iter+1;
end
disp('Método de Newton Raphson');
fprintf('\nLa raíz obtenida es = %d\n',x1);
fprintf('Numero de iteraciones realizadas = %d\n',iter);

Ejecución del Programa


>> metodos_1_13
Método de Newton Raphson

La raíz obtenida es = 3.665191e+00


Numero de iteraciones realizadas = 4

14. Un objeto está situado en un plano cuya pendiente varía a una tasa constante ω.
La posición del objeto, al instante t, está dada por la fórmula
𝑔
𝑠(𝑡, 𝜔) = [𝑠𝑒𝑛ℎ(𝜔𝑡) − 𝑠𝑒𝑛(𝜔𝑡)],
2𝜔 2
donde 𝑔 = 9,8𝑚/𝑠 2 es la aceleración de la gravedad. Asumiendo que el objeto
se ha desplazado 1 metro en 1 segundo, calcule el valor de ω, usando el método
de la bisección, con una tolerancia de 10−5 . ¿Cuántas iteraciones se requieren
para alcanzar la tolerancia indicada?

14
Métodos Numéricos Primer Parcial

Código en Matlab
%% Cuántas iteraciones se requieren para alcanzar la
tolerancia indicada
close all;
clear all;
a=0.5; % se elige un intervalo de [0.5 , 1.4] para este caso
b=1.4;
g=9.8;
tol=10^(-5);
iter=1;
% con desplazamiento s=1 en tiempo t=1, se tiene
%1=(g/(2*w^2))*(sinh(w)-sin(w)
f=@(w)(g/(2*w^2))*(sinh(w)-sin(w))-1;
while abs(b-a)>tol
if f(a)*f(b)<0
c=(a+b)/2;
if f(a)*f(c)<0
b=c;
else
a=c;
end
iter=iter+1;
end
end
disp('Método de la Bisección');
disp('El valor de w es = ');
disp(c);
fprintf('Numero de iteraciones realizadas = %d\n',iter);

Ejecución del Programa


>> metodos_1_14
Método de la Bisección
El valor de w es =
0.6121
Numero de iteraciones realizadas = 18

15. Las frecuencias de vibración natural de una viga uniforme que está sujeta en un
extremo, es la solución de la ecuación cos(𝑥) ∙ cosh(𝑥) + 1 = 0; siendo: 𝑥 =
𝜌𝜔2 𝐿/𝐸𝐼, 𝐿 longitud de la viga (m.), 𝜔, frecuencia(s-1), EI, rigidez ante la flexión
y 𝜌 densidad del material de la viga (Kg/m3).
Determine valores aproximados de las tres raíces positivas más bajas utilizando
el método de la bisección.

15
Métodos Numéricos Primer Parcial

Código en Matlab
close all;
clear all;
function r=metodos_1_15(a,b,f)
fx=inline(f);
while abs(b-a)>0.00001
if(fx(a)*fx(b)<0)
x1=(a+b)/2;
if (fx(a)*f(x1)<0)
b=x1;
else
a=x1;
end
else
disp('La función evaluada en este punto es diferente
de 0');
disp('Por lo tanto no existe una raíz');
return
end
end
disp('La raíz obtenida es = ');
disp(x1);
end

Ejecución del Programa


>> r=metodos_1_15(1,3.5,’cos(x).*cosh(x)+1’)
'La raíz obtenida es =
1.8751
>> r=metodos_1_15(4,5.3,’cos(x).*cosh(x)+1’)
'La raíz obtenida es =
1.8641

16. Un kilogramo de CO está contenido en un recipiente a T = 215K y P = 70 bar.


Calcule el volumen de gas utilizando la ecuación de estado de Van der Waals
para un gas no ideal, dada por
𝑎
(𝑃 + ) ∙ (𝑣 − 𝑏) = 𝑅𝑇,
𝑣2
Donde 𝑅 = 0.08314 𝑏𝑎𝑟 ∙ 𝑚3 /(𝑘𝑔 ∙ 𝑚𝑜𝑙 ∙ 𝐾), 𝑎 = 1.463 𝑏𝑎𝑟 ∙ 𝑚6 /(𝑘𝑔 ∙ 𝑚𝑜𝑙)2
y 𝑏 = 0.0394 𝑚3 /𝑘𝑔 ∙ 𝑚𝑜𝑙 . Determine el volumen específico 𝑣 (𝑚3 /𝑘𝑔 ∙ 𝑚𝑜𝑙)
y compare el resultado con el volumen calculado por la ecuación de los gases
ideales,𝑃𝑣 = 𝑅𝑇. Puede elegir cualquier método de resolución.

16
Métodos Numéricos Primer Parcial

Código en Matlab
%% Calcule el volumen de gas utilizando la ecuación de estado
de Van der Waals para un gas no ideal
close all;
clear all;
% variables especificadas en el enunciado.
r=0.08314;
t=215;
p=70;
a=1.463;
b=0.0394;
%primer punto
x0=0.3;
f=@(x)((p+a./((x).^2)).*(x-b)-r.*t);
fd=@(x)(1463/(1000*x.^2)-(1463.*(x-197/5000))/(500.*x.^3)+70);
x1=x0-f(x0)/fd(x0);
while abs(x1-x0)>10^(-5)
x0=x1;
x1=x0-f(x0)/fd(x0);
end
disp('Método de Newton Raphson');
disp('El valor de la aproximación es =');
disp(x1);

Ejecución del Programa


>> metodos_1_16
Método de Newton Raphson
El valor de la aproximación es =
0.2155

17

También podría gustarte