Deber1

Embed Size (px)

DESCRIPTION

Metodos Numericos

Citation preview

  • Latex y Programacin Matlab

    Capt de E Vctor Hugo Ypez Proao

    November 8, 2015

    1 EJERCICIO: Escribir un programa en Matlab que le pida al usuario

    un nmero entero positivo menor que un milln (1000000) y devuelva

    a pantalla el nmero e indique si es par o impar. Ejemplo: Ingresar:

    550 Nmero par

    1.1 CODIGO EN MATLAB

    1. %EJERCICIO 1

    2. %Numero > 1000000 par impar?

    3. clc

    4. clear

    5. n=input('Ingrese un num entero positivo menor a un millon ');

    6. R=rem(n,2);

    7. E=mod(n,1);

    8. if n>0

    9. if E==0

    10. if(R==0)

    11. disp(n)

    12. disp('El numero es par')

    13. else

    14. disp(n)

    15. disp('El numero es impar')

    16. end

    17. else

    18. disp('Numero decimal')

    19. end

    20. else

    21. end

    1

  • 1.2 Command Window

    2 EJERCICIO: Realizar un programa en Matlab que permita visualizar

    un crculo de radio 6.5 y centro 3.

    2.1 CODIGO EN MATLAB

    1. %EJERCICIO

    2. %Circulo de radio 6.5 y centro en 3

    3. clc

    4. clear x=-3.5:0.1:9.5;

    5. y1=sqrt((6.5).^2-(x-3).^2)+3;

    6. y2=-sqrt((6.5).^2-(x-3).^2)+3;

    7. plot(x,y1,'r');

    8. hold on

    9. grid on

    10. plot(x,y2,'r');

    11. line([-3.5 9.5],[3 3])

    12. line([3 3],[-3.5 9.5])

    13. title('Circulo de radio 6.5 y centro en 3')

    2

  • 2.2 Command Window

    3 EJERCICIO: Gracar la siguiente funcin y sus derivadas, en un solo

    grco, de manera superpuesta

    3.1 CODIGO EN MATLAB

    1. %EJERCICIO 3

    2. %Graco de funcion y derivada

    3. clc

    4. clear

    5. x1=[-10:0.01:-1];

    6. x2=[-1:.01:1];

    7. x3=[1:0.01:10];

    8. y1=exp(1).^(-x1);

    9. y2=abs(x2);

    3

  • 10. y3=x3.^2+1;

    11. plot (x1,y1)

    12. hold on

    13. grid on

    14. plot(x2,y2)

    15. plot(x3,y3)

    3.2 Command Window

    4 EJERCICIO: Elabore un programa que permita calcular las races

    reales de un polinomio de segundo grado de la forma ax

    2+ bx + c =

    0. Tenga en cuenta que dependiendo del valor del discriminante (D =

    b

    2-4ac) el sistema puede dar races reales (D>= 0) o races complejas

    (D < 0). El programa debe informar al usuario si el sistema no tiene

    races reales. Adems se debe indicar si las races reales son iguales

    (D = 0) o diferentes (D > 0).

    4.1 CODIGO EN MATLAB

    1. %EJERCICIO 4

    2. %CALCULO DE RAICES FUNCION CUADRATICA

    3. clc

    4

  • 4. clear

    5. disp('Calculo de raices de una funcion')

    6. disp('de la forma ax^2 + bx+c=0')

    7. a=input('Ingrese el valor de a ');

    8. b=input('Ingrese el valor de b ');

    9. c=input('Ingrese el valor de c ');

    10. d=(b^2-4*a*c)

    11. vector1=[a b c]

    12. if d >=0

    13. if d==0

    14. disp('Raices Iguales')

    15. roots(vector1)

    16. else

    17. disp('Raices diferentes')

    18. roots(vector1)

    19. end

    20. else

    21. disp('Raices Imaginarias')

    22. roots(vector1)

    23. end

    4.2 Command Window

    5

  • 5 EJERCICIO: Tabla de conversin de temperatura. La relacin de

    diversas escalas de temperatura con la escala Celsius (C), es la sigu-

    iente:

    F = 95C + 32

    K = C + 273; 15

    R = 810C

    Construir un programa en Matlab que permita pasar de una escala a

    otra. El programa debe solicitar al usuario el ingreso de la informacin

    necesaria para su funcionamiento. Adems, el programa siempre esperar

    informacin hasta que se pulse la tecla s.

    5.1 CODIGO EN MATLAB

    1. %EJERCICIO 5

    2. %Celsius a Farenheit, Kelvin y Rankine

    3. clc

    4. clear

    5. while 1

    6. disp('CONVERSION DE C,F, K y R')

    7. condicion=input('DESEA CONTINUAR Si[S] No[N]:','s');

    8. condicion=upper(condicion);

    9. if isequal(condicion,'S')

    10. seleccion= input('Ingrese 1 de C a F, K y R, 2 de F a C, K y R, 3 de K a R,C y F 4 de R aC, K y F ' );

    11. condicion1=input('DESEA CONTINUAR Si[S] No[N]:','s');

    6

  • 12. condicion1=upper(condicion1);

    13. if isequal(condicion1,'S')

    14. switch seleccion

    15. case 1

    16. disp('Celsius a Farenheit, Kelvin y Rankine')

    17. disp(' ')

    18. c=input('Ingrese la temperatura en grados celsius ')

    19. disp('su equivalente en grados farenheit es ')

    20. f=9*c/5+32

    21. disp('su equivalente en grados kelvin es ')

    22. k=c+273.15

    23. disp('su equivalente en grados rankine es ')

    24. r=8*c/10

    25. case 2

    26. disp('Farenheit a Celsius, Kelvin y Rankine')

    27. disp(' ')

    28. f=input('Ingrese la temperatura en grados farenheit ')

    29. disp('su equivalente en grados celsius es ')

    30. c=5*(f-32)/9

    31. disp('su equivalente en grados kelvin es ')

    32. k=c+273.15

    33. disp('su equivalente en grados rankine es ')

    34. r=8*c/10

    35. case 3

    36. disp('Kelvin a Celsius, Farenheit y Rankine')

    37. disp(' ')

    38. k=input('Ingrese la temperatura en grados kelvin ')

    39. disp('su equivalente en grados celsius es ')

    40. c=273.15-k

    41. disp('su equivalente en grados farenheit es ')

    42. f=9*c/5+32

    43. disp('su equivalente en grados rankine es ')

    44. r=8*c/10

    45. case 4

    46. disp('Rankine a Celsius, Farenheit y Kelvin')

    7

  • 47. disp(' ')

    48. r=input('Ingrese la temperatura en grados rankine ')

    49. disp('su equivalente en grados celsius es ')

    50. c=10*r/8

    51. disp('su equivalente en grados farenheit es ')

    52. f=9*c/5+32

    53. disp('su equivalente en grados rankine es ')

    54. k=c+273.15

    55. otherwise

    56. disp('No existe esa opcion')

    57. end

    58. else

    59. break;

    60. end

    61. else

    62. break;

    63. end

    64. end

    5.2 Command Window

    8

  • 6 EJERCICIO: Crear una funcin M.le con la que se pueda gracar la

    funcin paramtrica siguiente:

    Los parmetros de entrada deben ser R; r; a; b y el nmero n de puntos.

    t [a; b] y a; b R:

    6.1 CODIGO EN MATLAB

    1. function paramdeber1( R,r,a,b,n )

    2. t=linspace(a,b,n);

    3. s=length(t);

    4. for i=1:s

    5. x(i)=(R+r)*cos(t(i))-r*cos(t(i)*(R+r)/r);

    6. y(i)=(R+r)*sin(t(i))-r*sin(t(i)*(R+r)/r);

    7. end

    8. plot(x,y)

    9. end

    6.2 Command Window

    9

  • 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 nmero de sustancia en la primera columna y las mediciones

    realizadas en las otras 4 columnas. Mostrar en pantalla el nmero

    de muestra, las mediciones, el peso eliminado y el peso promedio de

    cada sustancia pesada.

    7.1 CODIGO EN MATLAB

    1. %EJERCICIO 7

    2. %Pesos de muestras

    3. clc

    4. clear

    5. disp('Pesos de muestras (4 pesos por muestras)')

    6. disp()

    7. nmuestra=input('Ingrese el numero de muestras pesadas ');

    8. disp()

    9. for i = 1:nmuestra

    10. disp()

    11. fprintf(' Muestra Numero %6.1f\n',i)

    12. disp()

    13. for j=1:4

    14. fprintf('Ingrese el peso %6.1f\n ',j)

    15. peso=input();

    16. muestra(i,j)=peso;

    17. end

    18. end

    19. ordenada=sort(muestra,2);

    20. for i = 1:nmuestra

    21. m(i)=(ordenada(i,1)+ordenada(i,2)+ordenada(i,3)+ordenada(i,4))/3;

    22. columna(i)=i;

    23. elim(i)=ordenada(i,1);

    24. end

    25. v=[columna' muestra elim' m'];

    26. disp(' Muestra peso1 peso2 peso3 peso4 Eliminado Promedio')

    27. disp(v)

    10

  • 7.2 Command Window

    8 EJERCICIO: Represente en Matlab la supercie 3D dada por la fun-

    cin

    Para el caso n = 2 , usar los siguientes valores de las constantes = (10; 10)

    T, =

    (3 11 4

    ). El smbolo ||

    signica el determinante de la matriz .

    8.1 CODIGO EN MATLAB

    1. %EJERCICIO 8

    2. %Graca 3D

    3. clc

    4. clear

    5. n=2;

    6. E=[3 -1;-1 4]

    7. u=[10 10]';

    8. x1=linspace(0,20,35);

    11

  • 9. y1=linspace(0,20,35);

    10. [x y]=meshgrid(x1, y1);

    11. z=x;

    12. c=(1)/(((2*pi)^(n/2))*(det(E)^(1/2)));

    13. for i=1:1225

    14. aux=[x(i) y(i)];

    15. z(i)=c*exp((-1/2)*((aux'-u)'*inv(E)*(aux'-u)));

    16. end

    17. surf(x,y,z)

    8.2 Command Window

    9 EJERCICIO: Escriba un programa que busque los nmeros amigables

    y diferentes entre 1 y 1000. Dos nmeros son amigables si el primero

    es la suma de los divisores del segundo y viceversa.

    9.1 CODIGO EN MATLAB

    1. %EJERCICIO 9

    2. %Numeros amigos entre 1 y 1000

    3. clc

    12

  • 4. clear

    5. cont=0;

    6. cont1=1;

    7. a=1000;

    8. while a ~=0

    9. b=a;

    10. d=0;

    11. acum=0;

    12. for i =1:a

    13. b=b-1;

    14. c=a/b;

    15. e=rem(c,1);

    16. if e==0

    17. d=d+1;

    18. acum =acum+b;

    19. end

    20. end

    21. acum;

    22. b=acum;

    23. d=0;

    24. acum1=0;

    25. for i =1:acum

    26. b=b-1;

    27. c=acum/b;

    28. e=rem(c,1);

    29. if e==0

    30. d=d+1;

    31. acum1 =acum1+b;

    32. end

    33. end

    34. acum1;

    35. acum;

    36. if acum1==a

    37. if a~=acum

    38. cont=cont+1;

    13

  • 39. x(cont)=a;

    40. y(cont)=acum;

    41. end

    42. end

    43. a=a-1;

    44. cont1=cont1+1;

    45. end

    46. namigo=[x' y']

    9.2 Command Window

    10 EJERCICIO: Realizar una funcin tal que ingresado un numero N,

    se impriman por pantalla todos los nmeros primos de 1 hasta N.

    Ej: Ingreso el nmero 13 y se imprimen por pantalla: 1, 3, 5, 7, 11,

    13.

    10.1 CODIGO EN MATLAB

    1. function numprimo( n )

    2. A=[];

    3. i=1;

    4. while i

  • 10.2 Command Window

    15