Sei sulla pagina 1di 5

EJEMPLOS DE PROGRAMAS EN MATLAB

* Programa sumav5.m

% sumav5
% Programa para obtener la suma de componentes de un vector de 5
componentes
% autor: Juan Carlos Gorostizaga
% fecha: 24/1/2014

v = fix(100*rand(1,5));
s = 0;

for i = 1:5
s = s + v(i);
end;

disp('el vector v es:....'); disp(v)


disp('la suma de las componentes de v es:....'); disp(s)

* * *

* Programa sumaM.m
% sumaM.m
% Programa para sumar dos matrices (5x5)
%
% autor: Juan C. Gorostizaga (18/10/2005)

A = fix(10*rand(5,5));
B = fix(10*rand(5,5));

C = zeros(5,5);

for i = 1:5
for j = 1:5
C(i,j) = A(i,j) + B(i,j);
end;
end;

disp(A), disp(B), disp(C)

* * *

% Programa productoM.m
% Realiza el producto de dos matrices dadas
%
% autor: Juan Carlos Gorostizaga (19/10/2005)

A = [1 2 3 4; -1 0 5 2; 3 7 8 0];
B = [6 5; 0 5; 9 2; 4 5];
C = zeros(3,2); % Aqu ir el resultado del producto de A . B

for i = 1:3
for j = 1:2
sumatorio = 0;
for k = 1:4
sumatorio = sumatorio + A(i,k)*B(k,j); % Realiza el sumatorio
C(i,j) = sumatorio; % Asigna este sumatorio a C(i,j)
end;
end;
end;
disp(A); disp(B); disp(C)

* * *

% =================================================================
% cuadratica.m
% Calcula las races de una ecuacin cuadrtica
% introduciendo los parmetros a, b ,c desde el
% teclado. Aviso: este algoritmo no tiene en cuenta
% la perdida de exactitud si se introducen valores
% de los coeficientes extremadamente prximos.
%
% autor: Mark Austin Julio 1997
% ===================================================

disp('programa para resolver Ecuaciones Cuadrticas');


disp('=============================================');

% Mdulo de introduccin de los coeficientes a, b, c, desde teclado.

disp('Introduzca coeficientes de la ecuacin a.x^2 + b.x + c = 0');


A = input('Valor del coeficiente a: ');
B = input('Valor del coeficiente b: ');
C = input('Valor del coeficiente c: ');

% Caso de ecuacin extremadamente degenerada (a = 0 y b = 0)

RootsFound = 0;
if A == 0 & B == 0,
fprintf('No es posible resolver la ecuacin . Ecuacin
extremadamente degenerada');
fprintf('%14.8g = 0.0\n', C);
RootsFound = 1;
end;

% Caso de ecuacin degenerada (a = 0)

if A == 0 & B ~= 0,
Raiz1 = -C/B;
fprintf('Ecuacin degenerada: Raiz = %14.8g\n', Raiz1);
RootsFound = 1;
end;

% Caso de ecuacin no degenerada (a distinto de 0)

if RootsFound == 0,
Discriminante = B^2 - 4*A*C;

if Discriminante >= 0,
Raiz1 = (-B - sqrt(Discriminante))/(2*A);
Raiz2 = (-B + sqrt(Discriminante))/(2*A);
fprintf('Dos races reales: Raiz1 = %14.8g\n', Raiz1);
fprintf(' Raiz2 = %14.8g\n', Raiz2);
else % Caso contrario, races complejas
fprintf('Dos races complejas: Raiz1 = %14.8g\n + %14.8g i\n',
-B/(2*A), sqrt(-Discriminante)/(2*A));
fprintf(' Raiz2 = %14.8g\n + %14.8g i\n',
-B/(2*A), -sqrt(-Discriminante)/(2*A));
end;
end

* * *

% raiznewton(x) fucin que computa la raz cuadrada por el mtodo de


%Newton
% autor: Juan C. Gorostizaga 9/10/2005

% Comprobar si x es positivo
if x <= 0,
error('En raiznewton(x) : el argumento x debe ser positivo');
end;

% aproximacin inicial
x0 = (1+x)/2;

% ciclo iterativo para computar la raiz cuadrada


for i = 1:100
xn = (x0 + x/x0)/2;
if abs(xn - x0)/xn < eps,
break;
end;
x0 = xn;

end

v1 = xn;

* * *

% Programa mayorABC.m
% da el valor mximo entre tres valores dados
%
% autor: Juan Carlos Gorostizaga (25/10/2005)
% ====================================================

A = fix(100 * rand(1));
B = fix(100 * rand(1));
C = fix(100 * rand(1));

disp(A), disp(B), disp(C);

if (A>B) && (A>C)


disp('El mayor es el A');
elseif (B>A) && (B>C)
disp('El mayor es el B');
else
disp('El mayor es el C');
end
% cincos1.m
% Programa que halla la cantidad de '5' que hay en un vector
% de 20 componentes (nros. 0:9)
%
% autor: Juan C. Gorostizaga (18/10/2005)

v = fix(10*rand(1,20));

c = 0;
for i = 1:20
if v(1, i) == 5
c = c + 1;
end;

end;

disp(v);
disp('cantidad de cincos'), disp(c)

* * *

% pares.m
% Dado un vector de 20 componentes (nros. al azar 0:9)
% el programa nos dice cuntas componentes llevan nro. par
% y cuantas impar.
%
% autor: Juan C. Gorostizaga (18/10/2005)

v = fix(10*rand(1,20));
c = 0;

for j = 1:20
if fix(v(j)/2) == v(j)/2
c = c+1;
end;
end;

display(v);
display('pares:'); display(c);
display('impares:'); display(20 - c)

* * *

% undostres.m
% Programa que halla la cantidad de '1', '2' y '3'
% en una matriz 5 x 5 de numeros aleatorios
% comprendidos entre 0 y 9
%
% autor: Juan C. Gorostizaga (18/10/2005)

A = fix(10*rand(5,5));
unos = 0;
doses = 0;
treses = 0;

for i = 1:5
for j = 1:5
if A(i,j) == 1,
unos = unos + 1;
end;

if A(i,j) == 2,
doses = doses + 1;
end;

if A(i,j) == 3,
treses = treses + 1;
end;

end;

end;

disp(A);
disp('cantidad de unos');
disp(unos);
disp('cantidad de doses');
disp(doses);
disp('cantidad de treses');
disp(treses);

* * *

function x = tor(g,m,s)
% convierte g-m-s --> radianes
N = g + m/60 + s/3600;
x = N * pi/

* * *

function d = tomill(g, m, s)
% convierte g-m-s --> millas (minutos)
d = 60*g + m + s/60

Potrebbero piacerti anche