Vous êtes sur la page 1sur 3

La sintaxis de MATLAB asemeja a la de FORTRAN.

Para tener una idea de las similitudes, comparemos los


cdigos escritos en los dos idiomas para la solucin de ecuaciones simultneas Ax = b por la Eliminacin de
Gauss. Aqu est la subrutina en FORTRAN 90:
subroutine gauss(A, b, n)
use prec_mod
implicit none
real(DP), dimension(:, :), intent(in out) : : A
real(DP), dimension(:), intent(in out) : : b
integer, intent(in) : : n
real(DP) : : lambda
integer : : i, k
! --------------Elimination phase--------------
do k = 1,n-1
do i = k+1,n
if(A(i, k) /= 0) then
lambda = A(i, k)/A(k, k)
A(i, k+1:n) = A(i, k+1:n) - lambda*A(k, k+1:n)
b(i) = b(i) - lambda*b(k)
end if
end do
end do
! ------------Back substitution phase----------
do k = n,1,-1
b(k) = (b(k) - sum(A(k, k+1:n)*b(k+1:n)))/A(k, k)
end do
return
end subroutine gauss
El uso comunicado prec-mod indica al compilador para cargar el mdulo prec-mod (no mostrado aqu),
que define la longitud de la palabra DP para los nmeros de punto flotante. Tambin tenga en cuenta el
uso de las secciones de la matriz, como una (k, k + 1: n), una caracterstica que no estaba disponible en
las versiones anteriores de FORTRAN.
La funcin de MATLAB equivalente es (MATLAB no tiene subrutinas):
function b = gauss(A,b)
n = length(b);
%-----------------Elimination phase-------------
for k = 1:n-1
for i = k+1:n
if A(i, k) = 0
lambda = A(i, k)/A(k, k);
A(i, k+1:n) = A(i, k+1:n) - lambda*A(k, k+1:n);
b(i)= b(i) - lambda*b(k);
end
end
end
%--------------Back substitution phase-----------
for k = n:-1:1
b(k) = (b(k) - A(k, k+1:n)*b(k+1:n))/A(k, k);
end
Ecuaciones simultneas tambin pueden ser resueltas en MATLAB con el comando sencillo A \ b (ver
ms abajo).

MATLAB puede ser operado en el modo interactivo a travs de su ventana de comandos, donde
cada comando se ejecuta inmediatamente despus de su entrada. En este modo MATLAB acta como
una calculadora electrnica. He aqu un ejemplo de una sesin interactiva para la solucin de ecuaciones
simultneas:
>> A = [2 1 0; -1 2 2; 0 1 4]; % Input 3 x 3 matrix
>> b = [1; 2; 3]; % Input column vector
>> soln = A\b % Solve A*x = b by left division
soln =
0.2500
0.5000
0.6250

El smbolo >> es rpido MATLAB para la entrada. El signo de porcentaje (%) marca el a partir de un
comentario. Un punto y coma (;), tiene dos funciones: suprime la impresin de los resultados intermedios
y separa las filas de una matriz. Con una terminacin punto y coma, se mostrar el resultado de un
comando. Por ejemplo, la omisin del ltimo punto y coma en la lnea que define la matriz A se
traducira en:
>> A = [2 1 0; -1 2 2; 0 1 4]
A=
2 1 0
-1 2 2
0 1 4

Funciones y programas se pueden crear con el editor/ depurador de MATLAB y guardado con la
extensin .m (MATLAB los llama M-files). El nombre de archivo de un salvado funcin debe ser idntico
al nombre de la funcin. Por ejemplo, si la funcin de para la eliminacin de Gauss enumerados
anteriormente se guarda como gauss.m, se le puede llamar como cualquier Funcin de MATLAB:
>> A = [2 1 0; -1 2 2; 0 1 4];
>> b = [1; 2; 3];
>> soln = gauss(A, b)
soln =
0.2500
0.5000
0.6250
Tipos de datos y variables
Tipos de datos

Los tipos ms comnmente utilizados MATLAB datos, o clases, son dobles, char y lgico, todos los cuales
son considerados por MATLAB como matrices. Objetos numricos pertenecer a la clase doble, que
representa las matrices de doble precisin; un escalar es tratada como una matriz 1 1. Los elementos de
un array tipo char son cadenas (secuencias de caracteres), mientras que un elemento de tipo de matriz
lgica puede contener solamente 1 (verdadero) o 0 (False).

Otra clase importante es mango funcin, que es nica para MATLAB. Ello contiene la informacin
necesaria para encontrar y ejecutar una funcin. El nombre de una funcin mango consiste en el
carcter @, seguido por el nombre de la funcin; por ejemplo, Sin. Manijas de funcin se utilizan como
argumentos de entrada de llamadas a funciones. Por ejemplo, supongamos que tenemos una funcin
parcela MATLAB (func, x1, x2) que traza ninguna especifica el usuario funcin func desde x1 a x2. La
llamada a la funcin para trazar sen x de 0 a habra plot (@ pecado, 0, pi).

Hay otros tipos de datos, pero que rara vez se encuentran con el min este texto. Adicional las clases
pueden ser definidas por el usuario. La clase de un objeto se puede mostrar con el comando de clase. Por
ejemplo,
>> x = 1 + 3i % Complex number
>> class(x)
ans =
doubl

Vous aimerez peut-être aussi