Sei sulla pagina 1di 67

Tpicos de Mtodos Numricos

em
Introduo do MATLAB
Rodolfo Maduro Almeida
O que o MATLAB?
MATrix LABoratory um software para
resoluo de problemas numricos e
visualizao computacional.
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
O que o MATLAB?
Desenvolvido pela Mathworks Inc., sede em
Natick, Massachusetts, EUA.
http://www.mathworks.com/
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Caractersticas
Software multiplataforma: Distribuies para
Windows, Linux/Unix e Mac.
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Caractersticas
Possui ambiente interativo e uma linguagem
simples, de alto nvel cujos recursos permitem
ganho no tempo de implementao.
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Vantagens
Seu ambiente de desenvolvimento permite
interao do MATLAB com outras linguagens
como C/C++, Java, Fortran. Isto permite o
desenvolvimento de toolboxes: extenses de
sua linguagem para soluo de problemas
especficos. especficos.
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Toolbox de
Otimizao
Toolbox de
Redes Neurais
Toolbox de Proc. de Imagens
Desvantagens
No aconselhvel para soluo de problemas
complexos que exijam elevado esforo
computacional: por ser baseado em uma
linguagem de programao interpretada.
Voc tem que pagar para us-lo (05/05/09):
Verso Estudante: U$ 99.00
Cada toolbox: U$ 59.00
Alternativas ao MATLAB
SciLab: software livre que possui os mesmas
caractersticas do MATLAB anteriormente
mencionadas. Nos ltimos anos vem ganhando espao
no meio acadmico. Possui distribuies para Windows
e Linux.
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Alternativas ao MATLAB
Inicializando o MATLAB
Iniciar > Executar > matlab <enter>
Iniciar > Programas > MATLAB > MATLAB
Pelo prompt de comando do MS-DOS:
> matlab <enter>
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
O Ambiente do MATLAB
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
O Ambiente do MATLAB
Diretrio de trabalho
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Diretrio de trabalho
O Ambiente do MATLAB
Current directory: Exibe o
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Current directory: Exibe o
contedo do diretrio de trabalho
O Ambiente do MATLAB
Janela de comandos
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
O Ambiente do MATLAB
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
O Ambiente do MATLAB
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
O Ambiente do MATLAB
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Workspace: Exibe
informaes acerca das
variveis carregadas na
memria
O Ambiente do MATLAB
Command history:
Exibe informaes
acerca do histrico de
comandos
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
O Ambiente MATLAB
Os comandos do MATLAB so definidos em
uma linguagem prpria.
Suas instrues podem ser interpretadas:
via janela de comandos
via arquivos com um conjunto de instrues (script) via arquivos com um conjunto de instrues (script)
editado com o MATLAB Editor e salvo em um arquivo de
extenso .m.
O bom uso do MATLAB exige um melhor
domnio da sintaxe de sua linguagem.
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Declarao de variveis
Varivel: Elemento de um programa que
declarado e armazenado na memria, cujo
valor pode ser modificado ao longo de sua
execuo.
Declarao de uma varivel no MATLAB: usa-
se o operador atribuio =.
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
se o operador atribuio =.
>> variavel = valor;
Tipos de valores:
Os tipos podem ser numrico (real ou inteiro),
complexo ou caractere.
Declarao de variveis
Regras para nomes Comentrio e exemplos
Case sensitive
Custo, CustO, CuStO e CUSTO so variveis
diferentes no MATLAB
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Devem conter no
mximo 31 caracteres
CustoTotalAnoAnterior = 10
CustoTotalEstimadoProximoAno = 4
No deve comear com
nmero e nem conter
pontuaes ou espaos
Valor_Estimado = 3
Valor1 = 9.2
X123 = 2.5
Declarao de variveis
Representao das
variveis: matrizes
Escalar String
Matrizes
numricas
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
X = 3
Matriz
(1x1)
| | B A L T A M
nome = MATLAB
Vetor linha
|
|

\
|
=
0 1
1 0
B
( ) 1 0 1 = B
|
|
|

\
|
=
1
0
1
B
Declarao de variveis
Declarando matrizes no MATLAB:
1. Os elementos devem ser declarados entre [ ]
2. Os elementos de uma mesma linha numa matriz
so separados por espao(s) ou vrgula so separados por espao(s) ou vrgula
3. ponto-e-vrgula(;) indica o final de uma linha de
uma matriz ou final de uma expresso
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
|
|
|

\
|
=
4 5 2
9 0 6
8 4 1
A
A = [1 4 8; 6 0 9; 2 4 5]
Operadores aritmticos
matriciais
Operao Smbolo
Adio
+
Subtrao
-
Multiplicao
*
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Multiplicao
*
Diviso
/
Potenciao
^
Matriz transposta

Operadores aritmticos
>> a = 4
a = 4
>> b = 3
b = 3
>> c = a + b
>> c1 = a b
c1 = 1
>> c2 = b / a
c2 = 0.7500
>> c3 = a^2 + b^2 >> c = a + b
c = 7
>> c3 = a^2 + b^2
c3 = 25
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Operadores aritmticos
>> A = [1 2; 3 4]
A =
1 2
3 4
>> B = [5 6; 7 8]
B =
5 6
>> C2 = A^(-1) %=(inv(A))
C2 =
-2.0000 1.0000
1.5000 -0.5000
>> C3 = A/B %=(A*inv(B))
C3 =
3.0000 -2.0000 5 6
7 8
>> C = A + B
C =
6 8
10 12
>> C1 = A B
C1 =
-4 -4
-4 -4
3.0000 -2.0000
2.0000 -1.0000
>> C4 = A^2 + B^2
C4 =
74 88
106 128
>> C5 = A
C5 =
1 3
2 4
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Operadores aritmticos
ponto-a-ponto
Operao Smbolo
Multiplicao
.*
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Diviso
./
Potenciao
.^
Operador ponto-a-ponto: Executa a operaes entre (ou sobre) os
elementos da matriz. Quando envolver duas matrizes, as suas dimenses
devem ser as mesmas.
Operadores aritmticos
>> A = [1 2; 3 4]
A =
1 2
3 4
>> B = [5 6; 7 8]
B =
5 6
>> D1 = A/B
C3 =
3.0000 -2.0000
2.0000 -1.0000
>> D2 = A./B
D1 =
0.2000 0.3333 5 6
7 8
>> C1 = A * B
C =
19 22
43 50
>> C1 = A .* B
C2 =
5 12
21 32
0.2000 0.3333
0.4286 0.5000
>> E1 = A^3
E1 =
37 54
81 118
>> E2 = A.^3
E2 =
1 8
27 64
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Operador dois-pontos (:)
um dos operadores mais teis do MATLAB.
Cria vetores e serve para manipular ndices de
matrizes.
Criando vetores:
>> vetor = valor_inicial:incremento:valor_final
>> vetor = valor_inicial:valor_final (incremento=1)
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Operador dois-pontos (:)
>> C = 1:2:11
C =
1 3 5 7 9 11
>> E = [1:1:3;4:1:6;7:1:9]
E =
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
E =
1 2 3
4 5 6
7 8 9
>> D = 0 : 0.5 : 3
D =
0 0.5 1.0 1.5 2.0 2.5 3.0
>> A = [1 : 2 : 15]
A =
1 3 5 7 9 11 13 15
>> A(1,5)
ans =
9
>> B = [1:1:3;2:2:6;5:2:9]
B =
5 7 9
10 20 30
>> B(1:3,2)
ans =
2
4
7
>> B(3,:)
Manipulao de Matrizes
B =
1 2 3
2 4 6
5 7 9
>> b = [10 20 30]
b =
10 20 30
>> B = [B;b]
B =
1 2 3
2 4 6
>> B(3,:)
ans =
5 7 9
>> B([2 3],[1 2])
ans =
2 4
5 7
>> B(end,:)
ans =
10 20 30
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Manipulao de matrizes
>> A = ones(3,3)
A =
1 1 1
1 1 1
1 1 1
>> B = zeros(4,3)
B =
0 0 0
>> C = rand(3,3)
C =
0.8147 0.9134 0.2785
0.9058 0.6324 0.5469
0.1270 0.0975 0.9575
>> rand('seed',0)
>> D = rand(3,3)
D = 0 0 0
0 0 0
0 0 0
0 0 0
>> I = eye(4,4)
I =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
D =
0.2190 0.6793 0.5194
0.0470 0.9347 0.8310
0.6789 0.3835 0.0346
>> E = diag(D)
E =
0.2190
0.9347
0.0346
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Manipulao de matrizes
>> A = ones(3,3)
A =
1 1 1
1 1 1
1 1 1
>> dimA = size(A)
dimA =
2 3
0 5 0
0 0 5
>> rand('seed',10)
>> C = rand(size(A))
C =
0.1291 0.9505 0.1597
0.6048 0.3367 0.7808
0.5040 0.0924 0.6925
>> A1 = diag(A)
A1 =
1
1
1
>> maxdimA = length(A)
maxdimA =
3
>> B = diag(5 * A1)
B =
5 0 0
>> C1 = triu(C)
C1 =
0.1291 0.9505 0.1597
0 0.3367 0.7808
0 0 0.6925
>> C2 = tril(C)
C2 =
0.1291 0 0
0.6048 0.3367 0
0.5040 0.0924 0.6925
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Exerccios
Defina as matrizes e efetue as seguintes
operaes:

=

ndices demais os para 3,
par mpar para , 2
mpar par para , 6
) (
9 9
j e i
j e i
a A
ij
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida

=

ndices demais os para 3,
mpares e para , 2
pares e para , 1
) (
9 9
j i
j i
b B
ij
a) A * A
b) B^2
c) B.^2
d) A * B
e) A .^B
f) A./B
Exerccios
>> A = 3 * ones(9,9)
>> A(2:2:end,1:2:end)=6
>> A(1:2:end,2:2:end)=2
>> disp(A)
3 2 3 2 3 2 3 2 3
6 3 6 3 6 3 6 3 6
3 2 3 2 3 2 3 2 3 3 2 3 2 3 2 3 2 3
6 3 6 3 6 3 6 3 6
3 2 3 2 3 2 3 2 3
6 3 6 3 6 3 6 3 6
3 2 3 2 3 2 3 2 3
6 3 6 3 6 3 6 3 6
3 2 3 2 3 2 3 2 3
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Exerccios
>> B = 3 * ones(9,9)
>> B(2:2:end,2:2:end)=1
>> B(1:2:end,1:2:end)=2
>> disp(B)
2 3 2 3 2 3 2 3 2
3 1 3 1 3 1 3 1 3
2 3 2 3 2 3 2 3 2 2 3 2 3 2 3 2 3 2
3 1 3 1 3 1 3 1 3
2 3 2 3 2 3 2 3 2
3 1 3 1 3 1 3 1 3
2 3 2 3 2 3 2 3 2
3 1 3 1 3 1 3 1 3
2 3 2 3 2 3 2 3 2
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Operadores lgicos e
relacionais
Operador
relacional
Smbolo
Igual
==
Diferente
~=
Operador
lgico
Smbolo
E
&
Ou
|
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Diferente
Maior
>
Menor
<
Maior ou igual
>=
Menor ou igual
<=
Ou
|
No
~
1: True Verdadeiro
0: False - Falso
Operadores lgicos e
relacionais
>> 2 == 3
ans = 0
>> 2 <= 3
ans = 1
>> (2 == 3) & (2 <= 3)
ans = 0
>> ~(2 == 3) & (2 <= 3) >> ~(2 == 3) & (2 <= 3)
ans = 1
>> (2 ~= 3) & (2 <= 3)
ans = 1
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Trabalhando com scripts
O que um script?
o conjunto de instrues do MATLAB que podem ser
executadas sistematicamente.
Para que serve?
o Sintetiza os comandos freqentemente digitados o Sintetiza os comandos freqentemente digitados
em um nico comando (o script com os comandos
executado)
o Aplicvel a problemas mais extensos onde exigido
mais comandos
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Editando scripts
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Outra opo: File > New M-File
Programando em MATLAB
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Programando em MATLAB
Salvar o script em
um diretrio de sua
Executar o script.
Atalho: F5
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
um diretrio de sua
preferncia
Entrada e Sada (tela)
Comando de entrada: input
R = input(Forneca o valor de entrada:')
>>
Forneca o valor de entrada: <digitar valor> <enter>
Comando de saida: disp
disp(X) disp(X)
Mostra o valor de X na janela de comandos.
disp('Ola Mundo!')
>>
Ola Mundo!
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Entrada e Sada (tela)
clc
A = input('Forneca uma matriz 2 x 2: ');
B = input('Forneca uma matriz 2 x 2: ');
C1 = A + B;
C2 = A * B;
disp('Soma entre as duas matrizes: '); disp('Soma entre as duas matrizes: ');
disp(C1)
disp('Produto entre as duas matrizes: ');
disp(C2)
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Entrada e Sada (arquivos)
Comando de entrada: load
Formato ASCII:
>> x = load('arquivo.txt');
Formato binrio do MATLAB:
>> load arquivo.mat
Comando de sada: save
Formato ASCII:
>> save arquivo.txt variaveis ascii
Formato binrio do MATLAB:
>> save arquivo.mat variaveis
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Entrada e Sada (arquivos)
dados = load('lorenz_xyz.txt');
t = dados(:,1);
x = dados(:,2);
y = dados(:,3);
Obtenha o arquivo: http://br.geocities.com/rodmaduro/lorenz_xyz.txt
y = dados(:,3);
z = dados(:,4);
save lorenz_xyz.mat t x y z;
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Controladores de fluxo
if expressao_1
instrucoes_1
else
if expressao_1
instrucoes_1
elseif expressao_2
if: cria caminhos alternativos na execuo de
um script.
else
instrucoes_2
end
elseif expressao_2
instrucoes_2
else
instrucoes_3
end
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Controladores de fluxo
disp('Script que compara dois numeros')
a = input('Forneca um numero: ');
b = input('Forneca outro numero: ');
if a > b
disp(['Numero maior: ' num2str(a)]) disp(['Numero maior: ' num2str(a)])
disp(['Numero menor: ' num2str(b)])
else
disp(['Numero maior: ' num2str(b)])
disp(['Numero menor: ' num2str(a)])
end
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Controladores de fluxo
disp('Script que compara dois numeros')
a = input('Forneca um numero: ');
b = input('Forneca outro numero: ');
if a > b
disp(['Numero maior: ' num2str(a)])
disp(['Numero menor: ' num2str(b)]) disp(['Numero menor: ' num2str(b)])
elseif a < b
disp(['Numero maior: ' num2str(b)])
disp(['Numero menor: ' num2str(a)])
else
disp(['Os dois numeros sao iguais a '
num2str(a)])
end
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Controladores de fluxo
for variavel = valor_inicial:passo:valor_final
for: permite que um grupo de instrues se
repitam por um nmero especificado de vezes.
for variavel = valor_inicial:passo:valor_final
instrucoes;
end
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Controladores de fluxo
N = input('Forneca a dimensao da matriz: ');
A = zeros(N,N);
for i = 1:N
for j=1:N
j i a A
ij
3 2 ) ( =

for j=1:N
A(i,j) = 2 * i - 3 * j;
end
end
disp(A)
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Controladores de fluxo
clc
N = input('Forneca a dimensao da matriz: ');
A = zeros(N,N);
for i = 1:N

=

ndices demais os para 3,
par mpar para , 2
mpar par para , 6
) (
9 9
j e i
j e i
a A
ij
for j=1:N
if (mod(i,2) == 0) & (mod(j,2) == 1)
A(i,j) = 6;
elseif (mod(i,2) == 1) & (mod(j,2) == 0)
A(i,j) = 2;
else
A(i,j) = 3;
end
end
end
disp(A)
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Controladores de fluxo
while (expressao de controle)
while: permite que um grupo de instrues se
repitam enquanto uma determinada expresso
de controle for verdadeira.
while (expressao de controle)
instrucoes;
end
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Controladores de fluxo
EPS = 2;
while (1+EPS) > 1
EPS = EPS/2;
end
disp(EPS)
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
EPS o maior nmero que adicionado a 1 torna seu valor igual a 1.
Isso acontece porque o computador um utiliza nmero fixo de dgitos
para representar os nmeros. O MATLAB usa 16 dgitos de preciso,
nesse caso o valor de EPS ser prximo de 10^(-16):
>> EPS
EPS =
1.1102e-016
>> 1 + EPS == 1
ans =
1
Controladores de fluxo
break: encerra a execuo de um lao de
repetio (for ou while).
EPS = 1;
for num = 1 : 1000
EPS = EPS / 2;
EPS = 1;
while (1+EPS) > 1
EPS = EPS/2;
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
EPS = EPS / 2;
if ~((1+EPS) > 1)
break
end
end
disp(EPS)
EPS = EPS/2;
end
disp(EPS)
Visualizando figuras
Comando plot: gera um grfico 2D
>> plot(x,y)
y: vetor linha ou vetor coluna
y: vetor linha ou vetor coluna
Exemplo:
x = -pi:0.001:pi; x = -pi:0.001:pi;
y = sin(x);
plot(x,y)
axis([-pi pi -1 1])
xlabel('x')
ylabel('sin(x)')
title('Grafico da Funo Seno')
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Visualizando figuras
Comando plot3: gera um grfico 3D
>> plot3(x,y,z)
y: vetor linha ou vetor coluna
y: vetor linha ou vetor coluna
z: vetor linha ou vetor coluna
Exemplo: Exemplo:
t = 0 : pi/50 :10*pi;
plot3(sin(t) ,cos(t) ,t)
axis([-1 1 -1 1 0 40])
xlabel('x')
ylabel(y')
zlabel(z')
grid on
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Salvando figuras
Comando print:
print(gcf,formato,nome_da_figura)
Formatos mais comuns:
-dpng: salva figura em PNG
-deps: salva em Encapsulated PostScript
-depsc: salva Encapsulated Color PostScript
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Salvando figuras
clc; close all;
dados = load('lorenz_xyz.txt');
t = dados(:,1);
x = dados(:,2);
y = dados(:,3);
z = dados(:,4);
figure;
subplot(3,1,1)
plot(t,x) plot(t,x)
xlabel('t')
ylabel('x(t)')
subplot(3,1,2)
plot(t,y)
xlabel('t')
ylabel('z(t)')
subplot(3,1,3)
plot(t,z)
xlabel('t')
ylabel('z(t))
print(gcf,'-dpng',lorenz_xyz.png')
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Salvando figuras
clc; close all;
dados = load('lorenz_xyz.txt');
t = dados(:,1);
x = dados(:,2);
y = dados(:,3);
z = dados(:,4);
figure;
plot3(x,y,z) plot3(x,y,z)
xlabel('x(t)')
ylabel('x(t)')
zlabel('z(t)')
grid on
print(gcf,'-dpng',lorenz3d.png')
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Funes em MATLAB
Uma funo um trecho de cdigo que admite
parmetros de entrada e retorna valores.
Arquivos .m podem ser tanto scripts quanto
funes.
Os comandos nativos do MATLAB so funes Os comandos nativos do MATLAB so funes
criadas na sua prpria linguagem.
function variavel_retorno = nome_da_funcao(variaveis_entrada)
instrucoes para obter variavel_retorno;
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Criando uma funo no
MATLAB
function distancia = calcula_distancia(x,y)
diferenca = x - y;
Exemplo: Funo que calcula a distancia euclidiana entre
dois vetores do Rn. Crie e salve o seguinte arquivo .m:
diferenca = x - y;
distancia = sqrt(diferenca*transpose(diferenca));
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Para executar essa funo, v a janela de
comando e proceda da seguinte forma:
>> p = [1 0 0];
>> q = [0 1 0];
>> d = calcula_distancia(p, q)
Criando uma funo no
MATLAB
Ou:
>> d = calcula_distancia([1 0 0], [0 1 0])
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Como aprender mais
e mais sobre MATLAB?
Acessando sua documentao:
Comando doc:
>> doc
Acessando scripts demonstrativos:
Comando demo:
>> demo >> demo
Maiores esclarecimentos sobre algum comando:
>> help comando
Exemplo:
>> help plot
>> doc plot
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Como aprender mais
mais sobre MATLAB?
Livros sobre MATLAB
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
Como aprender mais
e mais sobre MATLAB?
Google:
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida
MATLAB: Conceitos Bsicos - Rodolfo Maduro Almeida

Potrebbero piacerti anche