Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
* 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;
* * *
* 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;
* * *
% 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
% ===================================================
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;
if A == 0 & B ~= 0,
Raiz1 = -C/B;
fprintf('Ecuacin degenerada: Raiz = %14.8g\n', Raiz1);
RootsFound = 1;
end;
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
* * *
% 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;
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));
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