0% encontró este documento útil (0 votos)
24 vistas18 páginas

Programas de Métodos Numéricos en MATLAB

Cargado por

Edwin Cruz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
24 vistas18 páginas

Programas de Métodos Numéricos en MATLAB

Cargado por

Edwin Cruz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

DEPARTAMENTO EN CIENCIAS DE LA COMPUTACIÓN

INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN


INGENIERÍA CIVIL

ASIGNATURA:
Métodos Numéricos

NRC:
2872

ESTUDIANTE:
Wendy Cueva
Santiago Cruz

TEMA:
Tarea #1
k) Escribir un programa para calcular la sumatoria de los n primeros números impares.

CÓDIGO:

function sumaImpares = sumarPrimerosImpares()


N = input('Ingresa el valor de N: '); % Solicita al usuario que ingrese N
sumaImpares = 0;
numeroActual = 1;
for i = 1:N
sumaImpares = sumaImpares + numeroActual;
numeroActual = numeroActual + 2; % Siguiente número impar
end
disp(['La suma de los primeros ' num2str(N) ' números impares es: '
num2str(sumaImpares)]);
end

% Llama a la función para calcular la suma


sumarPrimerosImpares();

EJECUCIÓN:
l) Escribir un programa para calcular el módulo de un vector [a,b] y su ángulo de
inclinación con el eje “X”.

CÓDIGO:

% Escribir un programa para calcular el modulo de un vector [a,b] y su angulo de


inlinacion con el eje x
clc
clear all
disp ('Calculo del modulo y del angulo de inclinacion')
a=input('Ingrese la componente a del vector: ');
b=input('Ingrese la componente b del vector: ');

modulo=sqrt(a^2 + b^2);

% Calcular el ángulo de inclinación con el eje x en radianes


ang_radianes=atan2(b, a);
% Convertir el ángulo de radianes a grados
ang_grados=rad2deg(ang_radianes);

fprintf('El modulo del vector [%d, %d] es: %.2f\n', a, b, modulo);


fprintf('El angulo de inclinacion con el eje x es: %.2f grados\n', ang_grados);

EJECUCIÓN:
m) Realizar un programa para determinar si un número ingresado por teclado es par o
impar.

CÓDIGO:

clc
clear all
numero=input('Ingrese un numero: ');
if mod(numero, 2) == 0
fprintf('El número %d es par.\n', numero);
else
fprintf('El número %d es impar.\n', numero);
end

EJECUCIÓN:

n)Realizar un programa para determinar el mayor, de dos números ingresados por


teclado.

CÓDIGO:
clc
clear all
numero1=input('Ingrese un numero: ');
numero2=input('Ingrese un numero: ');
if numero1>numero2
fprintf('El número %d es mayor.\n', numero1);
else
fprintf('El número %d es mayor.\n', numero2);
end

EJECUCIÓN:

ñ) Realizar un programa para determinar si un número entero ingresado por teclado es


positivo, negativo o nulo.

CÓDIGO:
clc
clear all
numero=input('Ingrese un numero: ');
if numero>0
disp('El numero ingresado es positivo.')
else if numero<0
disp('El numero ingresado es negativo')
else
disp('El numero ingresado es nulo.')
end
end

EJECUCIÓN:

o) Implementar un programa que permita evaluar el factorial de un número entero


positivo
CÓDIGO:

%Implementar un programa que permita evaluar el factorial de un numero


%entero positivo
clc
clear all
disp ('factorial de un numero positivo')
n=input('Ingrese un número entero positivo: ');

% Verificar si el número es un entero positivo


if n<0 || mod(n,1)~=0
fprintf('El número ingresado no es un entero positivo.\n');
else
% Calcular el factorial del número
factorial=1;
for i=1:n
factorial=factorial*i;
end
fprintf('El factorial de %d es: %d\n', n, factorial);
end

EJECUCIÓN:

p) Implementar un programa que permita evaluar la suma total de los N primeros


términos de las siguientes series:
1) 𝑆 = 1 + 3 + 5 + 7 +.......
1 1 1 1
2) 𝑆 =− 1 + 2
− 3
+ 4
−..... + 𝑛
3) 𝑆 = 1 − 2 + 3 − 5 + 8 − 13 + 21 − 34........
1 1 1
4) 𝑆 = 1 − 3!
+ 5!
− 7!
+.......

CÓDIGO:
%implementar programas que permitan evaluar la suma total de los N primeros
%terminos de las siguientes series
clc
clear all
N=input('Ingrese el número de términos N para las series: ');

% Calculo de la suma de la serie S1


disp('S1=1+3+5+7+...')
S1=0;
for k=1:N
term=2*k-1;
S1=S1+term;
end
fprintf('La suma de los primeros %d términos de la serie S1 es: %d\n', N, S1);

% Calculo de la serie S2
disp('S2=-1+1/2-1/3+1/4-....+1/n')
S2=0;
for k=1:N
term=(-1)^(k+1)*(1/k);
S2=S2+term;
end
fprintf('La suma de los primeros %d términos de la serie S2 es: %.5f\n', N, S2);

% Calcular la suma de la serie S3


disp('S2=1-2+3-5+8-13+21-34.....')
a=1; % primer término de Fibonacci
b=1; % segundo término de Fibonacci
S3=0;
for k=1:N
if k==1
term=1;
elseif k==2
term=-1;
else
term=a+b;
a=b;
b=term;
if mod(k,2)==1
term=-term;
end
end
S3=S3+term;
end
fprintf('La suma de los primeros %d términos de la serie S3 es: %d\n', N, S3);

% Calcular la suma de la serie S4


disp('S4=1-(1/3!)+(1/5!)-(1/7!)+....')
S4=0;
for k=0:(N-1)
term=(-1)^k/factorial(2*k+1);
S4=S4+term;
end
fprintf('La suma de los primeros %d términos de la serie S4 es: %.5f\n', N, S4);

EJECUCIÓN:

q) Implementar un programa que permita ingresar N número y ordenarlos de acuerdo


a las opciones: de menor a mayor o de mayor a menor.
CÓDIGO:

%Implementar un programa que permita ingresar n numeros y ordenarlos de


%acuerdo a las opciones: de menor a mayor, o de mayor a menor.
clc
clear all
disp('ordenar de menor a mayor o de mayor a menor')
n=input('Ingrese la cantidad de números n: ');
numeros=zeros(1,n);
for i=1:n
numeros(i)=input(sprintf('Ingrese el número %d: ', i));
end
opcion=input('Ingrese 1 para ordenar de menor a mayor, o 2 para ordenar de mayor
a menor: ');
if opcion==1
n_ordenados=sort(numeros, 'ascend');
fprintf('Los números ordenados de menor a mayor son:\n');
elseif opcion==2
n_ordenados=sort(numeros, 'descend');
fprintf('Los números ordenados de mayor a menor son:\n');
else
fprintf('Opción no válida.\n');
return;
end
disp(n_ordenados);

EJECUCIÓN:
r) Realizar un programa que permita determinar si un número entero ingresado es
primo.
CÓDIGO:
clc
clear all
numero=input('Ingrese un numero: ');
if numero <= 1
fprintf('El número %d no es primo.\n', numero);
elseif all(mod(numero, 2:numero-1) ~= 0)
fprintf('El número %d es primo.\n', numero);
else
fprintf('El número %d no es primo.\n', numero);
end

EJECUCIÓN:

s) Implementar una función que permita evaluar la siguiente expresión


2 3
𝑥 𝑥
𝑆=𝑥 − 2
+ 3
−...
CÓDIGO:

function resultado = evaluar_serie(x, n)


suma = 0;
for k = 1:n
termino_k = (-1)^(k+1) * (x^k) / k;
suma = suma + termino_k;
end
resultado = suma;
end

x = input('Ingresa el valor de x: ');


n = input('Ingresa el número de términos (n): ');
resultadoFinal = evaluar_serie(x, n);
fprintf('El resultado de la serie con x=%.2f y %d términos es %.6f.\n', x, n,
resultadoFinal);

EJECUCIÓN:

Dado los argumentos x y n, donde n es el número de términos que se evalúa en la serie.

t) Implementar una función que permita evaluar la siguiente expresión:


1 3 3 15 5 105 7
𝑆= 2
𝑥 − 2𝑥3
𝑥 + 2𝑥4𝑥6
𝑥 − 2𝑥4𝑥6𝑥8
𝑥 +.........

CÓDIGO:

%Implementar una funcion que permita evaluar la expresion:


% 1/2* x-3/(2*4) *x^3+15/(2*4*6) *x^5-105/(2*4*6*8)* x^7......
clc
clear all
x = input('Ingrese el valor de x: ');
function resultado = evaluar_expresion(x)
resultado = 1/2* x-3/(2*4) *x^3+15/(2*4*6) *x^5-105/(2*4*6*8)* x^7;
end
resultado = evaluar_expresion(x);
disp('El resultado es: ');
disp(resultado);

EJECUCIÓN:

u) Implementar un programa que permita ingresar un vector con N números y


posteriormente permita evaluar la media aritmética.

CÓDIGO:
clc
clear all
n= input ('Ingrese el número de elementos del vector N: ');
%Inicialización de la sumatoria en la variable s
s=0;
disp('Ingrese los números del vector N')
for i=1:n
N(i)= input('>');
s=s+N(i);
end
N
media=s/n;
fprintf(' La media aritmética del vector es: %0.2f \n',media);
EJECUCIÓN:

v) Realizar un programa que permita ingresar una matriz, y posteriormente imprima la


transpuesta de dicha matriz

CÓDIGO:

clc
clear all
f=input ('Ingrese el numero de filas de la matriz: ');
c=input ('Ingrese el numero de columnas de la matriz: ');
for i=1:f
for j=1:c
matriz(i,j)=input(['El elemento (',num2str(i), ',',num2str(j),')'])
traspuesta(j,i)=matriz(i,j);
end
end
disp (matriz)
disp (traspuesta)

EJECUCIÓN:
w) Implementar un programa que permita ingresar n números y posteriormente
ordenarlos e imprimirlos de mayor a menor

CÓDIGO:

clc
clear all
elementos= input ('Ingrese el número de elementos a ingresar: ');
contador=0;
disp('Ingrese los números:')
for i=1:elementos
N(i)= input('>');
contador=contador+N(i);
end
ordenado = sort(N, 'descend');
disp('Los números ordenados de mayor a menor son:')
disp(ordenado)

EJECUCIÓN:
x) Implementar un programa que dé como resultado los números primos menores que
un número dado n (positivo o negativo).

CÓDIGO:

clc
clear all
numero = input('Ingrese un número (positivo o negativo): ');
numero = abs(numero);
primos = [];
for i = 2:numero-1
if all(mod(i, 2:i-1) ~= 0)
primos = [primos, i]; % Agregar a la lista de primos
end
end
if isempty(primos)
disp('No hay números primos menores que el número ingresado.')
else
fprintf('Los números primos menores que %d son:\n', numero);
disp(primos);
end

EJECUCIÓN:
y) Escribir un programa que lea una cadena de n caracteres e imprima el resultado que
se obtiene cada vez que se realice una rotación de un carácter a la derecha sobre dicha
cadena. El proceso concluye cuando se ha obtenido nuevamente la cadena de caracteres
original. Por ejemplo: ESPE, EESP, PEES, SPEE, ESPE.

CODIGO:

function rotar_cadena_derecha()
% Solicita al usuario que ingrese una cadena
cadena = input('Ingresa una palabra o frase: ', 's');
% Inicializamos la matriz para almacenar las cadenas rotadas
cadenas_resultantes = cell(1, length(cadena));
cadenas_resultantes{1} = cadena;
% Rotamos hacia la derecha
for k = 1:length(cadena)
% Rotamos una unidad hacia la derecha utilizando circshift
cadena_rotada = circshift(cadena, [0, -k]);
% Almacenamos la cadena rotada
cadenas_resultantes{k+1} = cadena_rotada;
end
% Mostramos todas las cadenas resultantes
fprintf('\nCadenas resultantes:\n');
for k = 1:length(cadenas_resultantes)
fprintf('Paso %d: %s\n', k, cadenas_resultantes{k});
end
end
% Llama a la función para rotar la cadena
rotar_cadena_derecha();

EJECUCION:

También podría gustarte