Está en la página 1de 10

Métodos Numéricos

Ingenierı́a Mecánica

Alumno: Cristian Quiguango

NRC: 1154

DEBER N 1

LATEX y Programación MATLAB

1. EJERCICIO:Escribir un programa en Matlab que le pida al usuario un número entero positivo


menor que un millón (1000000) y devuelva a pantalla el número e indique si es par o impar.
Ejemplo:
Ingresar: 550
Número par

function ParImpar
n=input(’INGRESE EL NUMERO DENTRO DEL INTERVALO ]0,1000000[: ’)
if(n>0 && n<1000000)
if(rem(n,2)~=0)
disp(’NUMERO IMPAR’)
else
disp(’NUMERO PAR’)
end
disp(n)
else
disp(’EL NUMERO NO ESTA EN EL INTERVALO ESTABLECIDO’)
end
end

En matlab nos da:

>> ParImpar
INGRESE EL NUMERO DENTRO DEL INTERVALO ]0,1000000[: 550

n =

550

NUMERO PAR
550

1
2. EJERCICIO:Realizar un programa en Matlab que permita visualizar un cı́rculo de radio 6.5
y centro 3.

%este programa grafica un circulo de radio 6.5 y centro en (3,0)


function circulo
o=-pi:0.001:pi;
x=6.5*cos(o)-3;
y=6.5*sin(o);
plot(x,y),grid

Circulo:

Nota: Si se desea cambiar el centro solo se debe cambiar en al forma polar de la ecuación
(x − h)2 + (y − k)2 = r2 ecuación del circulo.

3. EJERCICIO: Graficar la siguiente función y sus derivadas, en un solo gráfico, de manera


superpuesta.
 e−x

x < −1
f (x) = |x| x ∈ (−1, 1)
 2
x +1 x>1

En este ejercicio se utilizo un Script para poder realizar su gráfica con el uso de los siguientes
comandos:

function GrafDer1

x=-4:0.1:-1;
f=exp(-x);
plot(x,f)
hold on
%su derivada
df=-exp(-x);
plot(x,df,’r’)

x1=-1:0.1:1;
f1=abs(x1);
plot(x1,f1)
%su derivada

2
df1=(abs(x1)/x1);
plot(x1,df1,’r’)

x2=1:0.1:3;
f2=x2.^2+1;
plot(x2,f2)
%su derivada
df2=2*x2;
plot(x2,df2,’r’)

end

El cual nos da la siguiente gráfica:

4. EJERCICIO: Elabore un programa que permita calcular las raı́ces reales de un polinomio de
segundo grado de la forma ax2 + bx + c = 0. Tenga en cuenta que dependiendo del valor del
discriminante (D = b2-4ac) el sistema puede dar raı́ces reales (D ≥ 0) o raı́ces complejas (D<0).
El programa debe informar al usuario si el sistema no tiene raı́ces reales. Además se debe indicar
si las raı́ces reales son iguales (D = 0) o diferentes (D>0).

Para desarrollar este ejercicio empleamos una function M-file con los comandos que se mos-
traran a continuación:

function [x1,x2] = raices (a,b,c)


d=b^2-4*a*c;
x1=(-b+sqrt(d))/(2*a)
x2=(-b-sqrt(d))/(2*a)
if d>0
disp(’las raices son reales y diferentes’)
end
if d==0

3
disp(’las raices son reales e iguales’)
end
if d<0
disp(’las raices cos complejas’)

end

Por ejemplo si se desea encontrar las raı́ces de la ecuación: x2 + 2 + 2 = 0, ingresaremos los datos
de la siguiente forma, damos un Enter y el programa nos dará el resultado.

>> raices(1,3,2)

x1 =

-1

x2 =

-2

las raices son reales y diferentes

ans =

-1

5. EJERCICIO:Tabla de conversión de temperatura. La relación de diversas escalas de tempera-


tura con la escala Celsius (C), es la siguiente:
9
F = C + 32
5
K = C + 273,15
8
R= C
10
Construir un programa en Matlab que permita pasar de una escala a otra. El programa debe
solicitar al usuario el ingreso de la información necesaria para su funcionamiento. Además, el
programa siempre esperará información hasta que se pulse la tecla s.

Para realizar el siguiente menú de conversiones empleamos los siguientes comandos:

function temperatura()
opcion1=0;
while opcion1~=5
disp (’MENU DE TEMPERATURAS’)
disp (’Seleccione la escala de ingreso de datos’)
disp (’1. Fahrenheit’)
disp (’2. Kelvin ’)
disp (’3. Celsius ’)
disp (’4. Rankine’)

4
disp (’5. Salir’)
opcion1=input (’Escoja una de las opciones: ’);
switch opcion1
case 1
Fahrenheit=input(’Ingrese la temperatura en escala Fahrenheit: ’)
Celsius=5/9*(Fahrenheit-32);
disp (’La temperatura en escala Celsius es:’)
Celsius
disp(’La temperatura en Kelvin es:’)
Kelvin=Celsius+273 ccc

disp (’La temperatura en Rankine es:’)


Rankine=9/5*Celsius+491
case 2
Kelvin=input(’Ingrese la temperatura en escala Kelvin’)
disp (’La temperatura en escala Celsius es:’)
Celsius=Kelvin+273
disp(’La temperatura en Fahrenheit es:’)
Fahrenheit=Celsius*1.8+32
disp (’La temperatura en Rankine es’)
Rankine=9/5*Celsius+491
case 3
Celsius=input(’Ingrese la temperatura en escala Celsius ’)
disp (’La temperatura en fahrenheit es’)
Fahrenheit=Celsius*1.8+32
disp (’Su temperatura en Kelvin es’)
Kelvin=Celcius+273
disp(’La temperatura en Rankine es’)
Raking=9/5*Celsius+491
case 4
Rankine=input(’Ingrese la temperatura en Rankine’)
disp (’La temperatura en Celsius es’)
Celcius=5/9*(Rankine-491)
disp (’La temperatura en Fahrenheit es’)
Fahrenheit=Celsius*1.8+32
disp (’La temperatura en Kelvin es’)
Kelvin=Celsius+273
case 5
otherwise
disp(’OPCION NO VALIDA, INTENTE DE NUEVO’)
end
end

Al menú se lo deberá invocar con el nombre de la función y este se representará de la siguiente


forma:

>> temperatura
MENU DE TEMPERATURAS
Seleccione la escala de ingreso de datos
1. Fahrenheit
2. Kelvin
3. Celsius

5
4. Rankine
5. Salir
Escoja una de las opciones: 1
Ingrese la temperatura en escala Fahrenheit: 32

Fahrenheit =

32

La temperatura en escala Celsius es:

Celsius =

La temperatura en Kelvin es:

Kelvin =

273

La temperatura en Rankine es:

Rankine =

491

6. EJERCICIO:Crear una función M.file con la que se pueda graficar la función paramétrica
siguiente:
x(t) = (R + r)cos(t) − rcos( R+r

z(t) = r t)
R+r
y(t) = (R + r)sen(t) − rsen( r t)
Los parámetros de entrada deben ser R; r; a; b y el número n de puntos. t ∈ (a, b); a, b ∈ R Para
ejecutar el programa llamamos a la función de la siguiente forma dando unos valores aleatorios.
Creamos una Función M-file llamada parametrica1 que se ve a continuación.

function parametrica1(R,r,a,b,n)
%UNTITLED2 Summary of this function goes here
% Detailed explanation goes here
t=linspace (a,b,n);

for i=1:n

x=(R+r)*cos(t)-r*cos(((R+r)./r)*t);
y=(R+r)*sin(t)-r*sin(((R+r)./r)*t);
end
axis equal
plot(x,y)
end

>> parametrica1(500,100,50,300,100)

6
Obteniendo la siguiente gráfica:

7. EJERCICIO: Realizar un programa en donde el peso de una muestra se determina realizando 4


pesadas, se descarta el menor peso y se promedian los otros tres. Considere que el usuario ingresa
una tabla con el número de sustancia en la primera columna y las mediciones realizadas en las
otras 4 columnas. Mostrar en pantalla el número de muestra, las mediciones, el peso eliminado
y el peso promedio de cada sustancia pesada.
Para realizar este ejercicio creamos la siguiente funcion M-File:

function A=Tablapeso

A=input(’INGRESE LOS DATOS\n’);


[f,c]=size(A);
for i=1:f
v=A(i,2:c);
minimo(i)=min(v);
promedio(i)=(sum(A(i,2:c))-minimo(i))/3;
end
A(:,c+1)=minimo;
A(:,c+2)=promedio;
disp(’ID Muestra Peso1 Peso2 Peso3 Peso4 Min. Prom.’)
disp(A)

end

En donde obtenemos el siguiente ejemplo:

Tablapeso
INGRESE LOS DATOS
[1 2 3 4 5;2 6 7 4 3;3 3 4 6 5;4 9 5 3 4]
ID Muestra Peso1 Peso2 Peso3 Peso4 Min. Prom.
1.0000 2.0000 3.0000 4.0000 5.0000 2.0000 4.0000
2.0000 6.0000 7.0000 4.0000 3.0000 3.0000 5.6667
3.0000 3.0000 4.0000 6.0000 5.0000 3.0000 5.0000
4.0000 9.0000 5.0000 3.0000 4.0000 3.0000 6.0000

7
8. EJERCICIO: Represente en Matlab la superficie 3D dada por la función.

1 1 T −1
(x1, ..xn) = n/2
|Σ|1/2 e(− 2 )(x−µ) Σ (x−µ)
(2π)
3 −1
Para el caso n=2,usar los valores de las constantes µ = (10, 10)T , Σ =

−1 4 . El sı́mbolo |Σ|
significa el determinante de la matriz Σ.
Para resolver este ejercicio utilizamos una función M-file Script con los comandos:

Llamamos a la función ası́:

function grafica_3d(a,b,c)

disp(’Siempre usamos un n=2 que define x,y’);


n=2;
syms x;
syms y;
u=[x-10 y-10];
u= u’;
E=[3 -1;-1 4];
f=exp(-(1/2)*((x-u)’)*(E^(-1))*(x-u));
m=det(E);
m=sqrt(m);
m=m*((2*pi).^(n/2));
f=f/m;
f=inline(f);
p=linspace(a,b,c);
r=linspace(a,b,c);
for i=1:length(p)
for j=1:length(p)
z(i,j)= f(p(i),r(j));
end
end
surfc(p,r,z)

end

Su gráfica:

8
9. EJERCICIO: Escriba un programa que busque los números amigables y diferentes entre 1 y
1000. Dos números son amigables si el primero es la suma de los divisores del segundo y viceversa.
Realizamos una función M-File

function Amigable

for a=1:1000
s=0;
for d=1:a-1
if mod(a,d)==0
s=s+d;
end
end
for b=a+1:1000
t=0;
for d=1:b-1
if mod(b,d)==0
t=t+d;
end
end
if s==b && t==a
disp([a,b]);
end
end
end

Que nos da como resultado:

>> Amigable
220 284

10. EJERCICIO: 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.
solución:

function Numprimos
k=input(’digame el numero: ’);

9
p=[];
for a=1:k;
c=1:a;
b=a./c;
m=find((b./floor(b))==1);
if length(m)==2;
p(a)=a;
p(1)=1;
end
end
r=find(p==0);
p(r)=[];
disp(p)

resultado:

>> Numprimos
digame el numero: 13
1 2 3 5 7 11 13

10

También podría gustarte