MATLAB (MATrix LABoratory) trata-se de umsoftware interativo de altaperformance voltado para ocálculo numérico. O MATLAB integra análise numérica, cálculo commatrizes,processamento de sinais e construção degrá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 daprogramaçã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 umprograma semelhante emlinguagemFortran,Basic ouC. Além disso, as soluções dos problemas são expressas quase exatamente como elas são escritas matematicamente.
Jack Little, umengenheiro, conheceu a linguagem MATLAB durante uma visita feita por Moler àUniversidade de Stanford, em1983. Reconhecendo o seu potencial comercial, ele juntou-se a Moler e Steve Bangert.[1] Eles reescreveram MATLAB em C; e em1984, 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 ano2000).[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 eanálise numérica; e é muito popular entre oscientistas envolvidos com oprocessamento de imagem.
MATLAB é construído na linguagem MATLAB, às vezes chamada M-código ou simplesmente M. NoGerenciador de Programas doMicrosoft 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 oprompt padrão (>>) é exibido na tela.
MATLAB pode ser usado como umshell interativo de matemática. Sequências de comandos podem ser guardadas em umarquivo de texto, tipicamente utilizando o MATLAB Editor, como umscript; ou encapsulado em uma função, alargando os comandos disponíveis.
Asvariá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 deconstantes, a partir de cálculos que envolvam valores de outras variáveis; ou a partir da saída de umafunção. Por exemplo:
MATLAB é umMatrix 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 dearrays", ou "array dearrays dearrays", ou simplesmente como umarray multidimensional.
MATLAB oferece uma maneira simples de definirarrays simples, usando a sintaxe "inicial: incremento: final". Por exemplo:
>>array=1:2:9array=13579
Define uma variável chamadaarray (ou atribui um novo valor a uma variável já existente com o nomearray), 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:9array=147
O valor do incremento pode ficar fora desta sintaxe (junto com os “:”), para usar um valor padrão de incremento 1.
>>ari=1:5ari=12345
Atribui à variável chamada "ari" umarray 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 esubarrays (eles também são usados para denotar uma função "argumento lista").
Umamatriz identidade de tamanhon podem ser gerada usando a funçãoeye; e matrizes de qualquer tamanho ou aquelas com zeros podem ser geradas com as funçõeszeros eones, respectivamente.
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ódulon. MATLAB não inclui padrão "para" e "enquanto", mas usandoMATLAB'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çãomagic.m, cria um cubo mágico M, para valores den (MATLAB funçãomeshgrid é aqui utilizada para gerar matrizes quadradas e I.J contendo 1: n).
O programa dispõe de diversas extensões (chamadastoolboxes oublocksets). Além dos módulos adicionais, o MATLAB conta com oSimulink, um ambiente de simulação baseado emdiagrama de blocos; e plataforma paraModel-Based Design. As suas extensões são:[3]
OMATLABé uma combinação de muitas das linguagens mais utilizadas, tais comoC,Java eBasic. 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 deJava não terá grande dificuldade em se adaptar à construção de objetosGUI em MATLAB (no entanto, o MATLAB tem também um bom componente de interface não gráfica).
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çãodisp().
1disp('Olá Mundo');
A funçãodisp() tanto pode ser usada para impressão directa, ou seja, o programador escreve nocódigo-fonte aquilo que deve sempre ser impresso; ou nomeia uma função, na qual escreve aquilo que quer; ou pede aouser 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 dodisp.
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 pelouser. Para que seja possível aouser dar alguma ordem aosoftware, existe a funçãoinput(). 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 ";". Estecaractere serve para omitir o aparecimento do valor de variáveis no dispositivo de saída.
Neste programa, pretende-se iniciar o uso da funçãoinput() e das estruturas aninhadas. Neste simplessoftware, ousuá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');elsedisp('Idade incompreendida');end;
Com estesoftware, pretende-se de uma forma simples fazer entender como funciona uma estruturanested e compreender melhor a funçãoinput().
Funçãoinput(): com a funçãoinput(), é pedido ao utilizador que retorne um certo valoralfanumérico ao sistema, sendo que o programa só continua quando o utilizador retornar esse valor. É como numpedy-paper, quando nos deparamos com uma pergunta e só podemos avançar quando lhe respondermos. O que acontece neste programa é que o utilizador retorna um valor numérico à variável "idade", para depois ser analisado. Repare que no programa anterior, o da mensagem escolhida pelouser, a funçãoinput() era usada com a seguinte sintaxe:texto = input('Escreva a sua mensagem--> ','s'); enquanto que no programa de informação de idades, é escrito assim:idade = input('Escreva uma idade--> ');. A parte do 's' é usada com a funçãoinput() quando queremos dar a possibilidade aouser de retornar à variável qualquer tipo de valor que ele queira (tanto números como letras). Quando não se usa esta sintaxe, pretende-se que ouser apenas introduza valores do tipo numérico, sendo que quando isso não acontece, aparece a seguinte mensagem de aviso noecrã:
functionteste=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áficosymsx;%defino x como simbolodery=diff(f,x);%crio a função derivada de f em função de xcont=1;y=subs(f,t);dy=subs(dery,t);fprintf(' \n');whileabs(y)>pt=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;ifabs(y/dy)==0breakendendfprintf('%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)holdontitle('Raiz de f que se aproxima do chute inicial')plot(t,0,'r*')legend(f)xlabel('eixo x')ylabel('eixo y')fprintf(' \n').
Referência em Model-Based Design e Model-Based System Engineering na América Latina e especialista em tecnologias da Indústria 4.0, aOPENCADD é a distribuidora exclusiva dos softwares MATLAB® e Simulink® noBrasil.
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 aMathWorks 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.