Esta página cita fontes, mas que não cobrem todo o conteúdo. Ajude a inserir referências (Encontre fontes: ABW  • CAPES  • Google (N • L • A)). (Dezembro de 2010)
MATLAB
Captura de tela
MATLAB
Uma superfície criada no Matlab
Desenvolvedor MathWorks Inc.
Plataforma Multiplataforma
Modelo do desenvolvimento Software Proprietário
Versão estável R2023b (10 de janeiro de 2024; há 7 meses)
Versão em teste R2024a (Ainda não Lançada)
Idioma(s) Inglês
Escrito em C, Java
Sistema operativo Multiplataforma
Gênero(s) Computação técnica

Computação Científica

Licença Proprietário
Estado do desenvolvimento Corrente
Página oficial http://www.mathworks.com/products/matlab/?s_cid=wiki_matlab_2 (em inglês, em castelhano, em português e em alemão)., acessado pela última vez há 620 semanas e 2 dias

MATLAB (MATrix LABoratory) trata-se de um software interativo de alta performance voltado para o cálculo numérico. O MATLAB integra análise numérica, cálculo com matrizes, processamento de sinais e construção de gráficos em ambiente fácil de usar, onde problemas e soluções são expressos somente como eles são escritos matematicamente, ao contrário da programação tradicional.

O MATLAB é um sistema interativo cujo elemento básico de informação é uma matriz que não requer dimensionamento. Esse sistema permite a resolução de muitos problemas numéricos em apenas uma fração do tempo que se gastaria para escrever um programa semelhante em linguagem Fortran, Basic ou C. Além disso, as soluções dos problemas são expressas quase exatamente como elas são escritas matematicamente.

Histórico

[editar | editar código-fonte]

O MATLAB é um software destinado a fazer cálculos com matrizes. MATLAB foi criado no fim dos anos 1970 por Cleve Moler, então presidente do departamento de ciência da computação da Universidade do Novo México. Ele logo se espalhou para outras universidades e encontrou um forte uso no âmbito da comunidade matemática aplicada.

Jack Little, um engenheiro, conheceu a linguagem MATLAB durante uma visita feita por Moler à Universidade de Stanford, em 1983. Reconhecendo o seu potencial comercial, ele juntou-se a Moler e Steve Bangert.[1] Eles reescreveram MATLAB em C; e em 1984, fundaram a MathWorks e prosseguiram no seu desenvolvimento. As bibliotecas reescritas (LINPACK e EISPACK) ficaram conhecidas como LAPACK (incorporada ao MATLAB na versão do ano 2000).[2]

MATLAB foi adotado pela primeira vez por engenheiros de projeto de controle, a especialidade de Little; e rapidamente se espalhou para outros campos de aplicação. Agora, é também utilizado nas áreas da educação, em especial o ensino da álgebra linear e análise numérica; e é muito popular entre os cientistas envolvidos com o processamento de imagem.

Sintaxe

[editar | editar código-fonte]

MATLAB é construído na linguagem MATLAB, às vezes chamada M-código ou simplesmente M. No Gerenciador de Programas do Microsoft Windows, deve-se abrir o grupo de programas do MATLAB para Windows, que contém o ícone do aplicativo MATLAB. Um duplo clique no ícone MATLAB carrega o aplicativo MATLAB. Quando o MATLAB é carregado, duas janelas são exibidas: a Janela de Comando (Command Windows) e Janela Gráfica (Graphic Windows). A Janela de Comando é ativada quando se inicializa o MATLAB; e o prompt padrão (>>) é exibido na tela.

MATLAB pode ser usado como um shell interativo de matemática. Sequências de comandos podem ser guardadas em um arquivo de texto, tipicamente utilizando o MATLAB Editor, como um script; ou encapsulado em uma função, alargando os comandos disponíveis.

Variáveis

[editar | editar código-fonte]

As variáveis são definidas com o operador “=”. MATLAB é dinamicamente digitado, o que significa que variáveis podem ser atribuídas sem declarar seu tipo, mas este pode ser alterado. Os valores podem vir de constantes, a partir de cálculos que envolvam valores de outras variáveis; ou a partir da saída de uma função. Por exemplo:

>> x = 17
x =
 17
>> x = 'hat'
x =
hat
>> x = [3*4, pi/2]
x =
   12.0000    1.5708
>> y = 3*sin(x)
y =
   -1.6097    3.0000

Vetores e matrizes

[editar | editar código-fonte]

MATLAB é um Matrix Laboratory; e como tal, fornece muitas maneiras convenientes para a criação de matrizes de várias dimensões. No vocabulário MATLAB, um vetor refere-se a uma dimensão (1 × N ou N × 1), comumente referida como um vetor em outras linguagens de programação. A matriz geralmente se refere a uma matriz multidimensional, isto é, uma matriz com mais de uma dimensão, por exemplo, uma N × M, uma N × M × L, entre outras, onde N, M e L são superiores a 1. Em outras linguagens, uma matriz pode ser referida como um "array de arrays", ou "array de arrays de arrays", ou simplesmente como um array multidimensional.

MATLAB oferece uma maneira simples de definir arrays simples, usando a sintaxe "inicial: incremento: final". Por exemplo:

>> array = 1:2:9
array =
 1 3 5 7 9

Define uma variável chamada array (ou atribui um novo valor a uma variável já existente com o nome array), que é constituída por uma matriz dos valores 1, 3, 5, 7 e 9; ou seja, a matriz começa em 1, o valor inicial, e cada valor é incrementado a partir do valor anterior em 2 (incremento do valor); e para quando ele chega a 9, mas não ultrapassa o valor 9 (9 sendo o valor final).

>> array = 1:3:9
array =
 1 4 7

O valor do incremento pode ficar fora desta sintaxe (junto com os “:”), para usar um valor padrão de incremento 1.

>> ari = 1:5
ari =
 1 2 3 4 5

Atribui à variável chamada "ari" um array com os valores 1, 2, 3, 4 e 5, uma vez que o valor padrão 1 é usado como o incremento.

A indexação é uma base de [5], que é a convenção usual para matrizes em matemática. Isso é atípico para linguagens de programação, cujos arranjos mais frequentemente começam com zero.

Matrizes podem ser definidas separando os elementos de uma fila com espaço em branco; ou usando vírgula e ponto-e-vírgula para terminar cada linha. A lista de elementos deve ser cercada por colchetes: []. Parênteses: () são usados para acessar os elementos e subarrays (eles também são usados para denotar uma função "argumento lista").

>> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
A =
 16  3  2 13
  5 10 11  8
  9  6  7 12
  4 15 14  1

>> A(2,3)
ans =
 11

>> A(2:4,3:4)
ans =
 11 8
 7 12
 14 1

Uma matriz identidade de tamanho n podem ser gerada usando a função eye; e matrizes de qualquer tamanho ou aquelas com zeros podem ser geradas com as funções zeros e ones, respectivamente.

>> eye(3)
ans =
 1 0 0
 0 1 0
 0 0 1
>> zeros(2,3)
ans =
 0 0 0
 0 0 0
>> ones(2,3)
ans =
 1 1 1
 1 1 1

A maior parte das funções MATLAB pode aceitar matrizes; e irá aplicar-se a cada elemento. Por exemplo, mod (2 * J, n) irá multiplicar cada elemento em "J" a 2 e, em seguida, reduzir cada elemento módulo n. MATLAB não inclui padrão "para" e "enquanto", mas usando MATLAB's vectorized, a notação produz um código que muitas vezes é mais fácil de ler e mais rápido para executar. Este código, a partir da função magic.m, cria um cubo mágico M, para valores de n (MATLAB função meshgrid é aqui utilizada para gerar matrizes quadradas e I.J contendo 1: n).

[J,I] = meshgrid(1:n);
A = mod(I+J-(n+3)/2,n);
B = mod(I+2*J-2,n);
M = n*A + B + 1;

Extensões

[editar | editar código-fonte]

O programa dispõe de diversas extensões (chamadas toolboxes ou blocksets). Além dos módulos adicionais, o MATLAB conta com o Simulink, um ambiente de simulação baseado em diagrama de blocos; e plataforma para Model-Based Design. As suas extensões são:[3]

Exemplos de código-fonte

[editar | editar código-fonte]

O MATLAB é uma combinação de muitas das linguagens mais utilizadas, tais como C, Java e Basic. Esta linguagem segue então de uma maneira muito fiel à maior parte dos aspectos das linguagens que estiveram na sua origem. Esta é então uma das grandes vantagens do MATLAB: um programador de C não terá grandes dificuldades em se adaptar a esta linguagem, visto que os códigos-fonte são muito parecidos; e um programador de Java não terá grande dificuldade em se adaptar à construção de objetos GUI em MATLAB (no entanto, o MATLAB tem também um bom componente de interface não gráfica).

Olá Mundo

[editar | editar código-fonte]

O já habitual programa em que se cria uma simples mensagem na tela que diz "Olá Mundo". Para isso, em MATLAB, usa-se a função disp().

1 disp('Olá Mundo');

A função disp() tanto pode ser usada para impressão directa, ou seja, o programador escreve no código-fonte aquilo que deve sempre ser impresso; ou nomeia uma função, na qual escreve aquilo que quer; ou pede ao user para escrever numa variável de entrada o que deseja.

Obs.: Na versão 2008b, não é necessário colocar o ";" (ponto-e-vírgula) no final do disp.

Usando variáveis:

texto = 'Olá Mundo';
disp(texto);
texto = input('Escreva a sua mensagem--> ','s');
disp(texto);

No primeiro caso, o MATLAB retornaria a mensagem "Olá Mundo". Mas no 2.º caso, a mensagem a ser escrita iria ser decidida pelo user. Para que seja possível ao user dar alguma ordem ao software, existe a função input(). Para se compreender melhor esta função, apresenta-se de seguida um programa de baixa complexidade, que servirá também de introdução às estruturas aninhadas.

Nota: no final de cada linha de código em MATLAB, é conveniente escrever ";". Este caractere serve para omitir o aparecimento do valor de variáveis no dispositivo de saída.

Informação Idades

[editar | editar código-fonte]

Neste programa, pretende-se iniciar o uso da função input() e das estruturas aninhadas. Neste simples software, o usuário vai introduzir um determinado valor numérico, que deverá corresponder a uma idade; e o programa devolverá uma determinada mensagem de acordo com o valor introduzido.

idade = input('Introduza uma idade--> ');
if (idade == 0)
    disp('És um recém-nascido');
 elseif (idade > 0 & idade <= 6)
    disp('És um bebé');
 elseif (idade > 6 & idade <= 12)
    disp('És uma criança');
 elseif (idade > 13 & idade < 18)
    disp('És um adolescente');
 elseif (idade == 18)
   disp('Agora que tens 18 anos já és um adulto');
 elseif (idade > 18 & idade <= 35)
   disp('Aproveita a vida que ainda és um jovem');
 elseif (idade > 35 & idade <=60)
   disp('Estás na meia idade');
 elseif (idade > 60);
   disp('Estás na velhice');
 else
   disp('Idade incompreendida');
 end;

Com este software, pretende-se de uma forma simples fazer entender como funciona uma estrutura nested e compreender melhor a função input().

teste = input('Valor--> ')
Valor--> texto
??? Error using ==> input
Undefined function or variable 'texto'.

Método de Newton

[editar | editar código-fonte]
function teste=newton(f,p,t)
%Calcula, mostrando as iterações, a raiz de uma função transcendente qualquer
%até uma determinada precisão.
%Entre com newton('função em termos de x',precisão,chute inicial)
%
%Exemplo: Ao entrar com:
%
%newton('x^2-3',0.0001,9)
%
%O programa mostra:
%
%1ª iteração = 4.666666666666667 f(x1)= 78.000000000000000
%2ª iteração = 2.654761904761905 f(x2)= 18.777777777777782
%3ª iteração = 1.892403373905616 f(x3)= 4.047760770975057
%4ª iteração = 1.738844535028185 f(x4)= 0.581190529569359
%5ª iteração = 1.732064079236316 f(x5)= 0.023580316997385
%6ª iteração = 1.732064079236316 f(x6)= 0.000045974580746
%
%A raiz é aproximadamente 1.732064079236316
%
%E mostra automaticamente o gráfico
syms x;                 %defino x como simbolo
dery=diff(f,x);         %crio a função derivada de f em função de x
cont=1;
y=subs(f,t);
dy=subs(dery,t);
fprintf(' \n');
while abs(y)>p
    t=t-y/dy;
    fprintf('%dª iteração = %.15f f(x%d)= %.15f\n',cont,t,cont,y);
    y=subs(f,t);
    dy=subs(dery,t);
    cont=cont+1;
    if abs(y/dy)==0
        break
    end
end
fprintf('%dª iteração = %.15f f(x%d)= %.15f\n',cont,t,cont,y)
fprintf(' \n')
fprintf('A raiz é aproximadamente %.15f\n',t)
a=linspace(t-50,t+50,500);
b=subs(f,a);
plot(a,b)
hold on
title('Raiz de f que se aproxima do chute inicial')
plot(t,0,'r*')
legend(f)
xlabel('eixo x')
ylabel('eixo y')
fprintf(' \n').

MATLAB no Brasil

[editar | editar código-fonte]

Referência em Model-Based Design e Model-Based System Engineering na América Latina e especialista em tecnologias da Indústria 4.0, a OPENCADD é a distribuidora exclusiva dos softwares MATLAB® e Simulink® no Brasil.

Fundada com a missão de enriquecer a indústria brasileira com as mais avançadas soluções tecnológicas, a OPENCADD ajudou a fortalecer a presença do MATLAB e Simulink em território brasileiro. A parceria exclusiva com a MathWorks permite à OPENCADD disponibilizar licenças, treinamentos e suporte especializado, garantindo que os usuários brasileiros possam extrair o máximo dessas plataformas.

Isso acontece através de workshops, cursos de treinamento e suporte personalizado, onde a OPENCADD capacita de engenheiros à cientistas para enfrentarem desafios técnicos de maneira mais eficaz, promovendo a inovação e a excelência nas áreas em que atuam.


Ver também

[editar | editar código-fonte]

Referências

  1. Moler, Cleve. «The Growth of MATLAB» (PDF). Arquivado do original (PDF) em 11 de Abril de 2009 
  2. Moler, Cleve (2000). «MATLAB Incorporates LAPACK» (HTML) 
  3. «MathWorks Products». MathWorks Inc. 10 de outubro de 2017. Consultado em 10 de outubro de 2017 

Ligações externas

[editar | editar código-fonte]