USANDO MATLAB
FBIO IWASHITA
Curso de Graduao em Ecologia
Bolsista da FAPESP
UNESP/Rio Claro
1. INTRODUO
MATLAB uma linguagem de programao de alto nvel para anlise
matemtica e anlise estatstica desenvolvida por The Mathworks, Inc. Baseia-se no
conceito que os dados podem ser representados como matrizes e, desse modo, a
maioria das operaes de anlise numrica podem ser realizadas usando lgebra
linear. Evita-se, assim, o uso excessivo de algoritmos de loopings, pois as rotinas so
feitas considerando as propriedades matemticas das operaes com matrizes, vetores
e escalares. Isso uma grande vantagem, pois algumas dessas operaes so muito
complexas para usar linguagens de programao ordinria como BASIC, FORTRAN,
Pascal ou C.
O software MATLAB contm um a srie de comandos versteis para operaes
matemticas, estatsticas e produo de grficos de alta qualidade. Assim, ameniza-se
os problemas que comumente so encontrados ao se efetuar at as mais simples
anlise de dados em programas (MIDDLETON, 2000). Um dos seus aspectos mais
poderosos so as chamadas toolboxes, ou caixa de ferramentas, que permitem a
criao de funes e programas reutilizveis (HANSELMAN, & LITTLEFIELD, 1999). O
conjunto de toolboxes, que podem ser organizados conforme necessidades
especficas, tornam o MATLAB uma poderosa ferramenta de anlise de dados.
Neste trabalho foi desenvolvido um pacote, baseado nessa linguagem, para ser
usado em anlise geoestatstica. Isso significa que o usurio deve possuir algum
conhecimento bsico em anlise de dados espaciais. Caso no seja esse o caso
consultar as referncias que constam ao final deste texto.
Para a utilizao deste texto didtico so necessrios: o pacote apresentado
neste trabalho, denominado GEOMATLAB; alguma funes do pacote BMELib, alm,
do prprio MATLAB verso release 12 ou mais recente.
A biblioteca completa de rotinas do BMELib (Bayesian Maximum Entropy
Library), pertence ao livro de CHRISTAKOS (2002), e pode ser acessada no site:
http://www.unc.edu/depts/case/BMELIB/.
O pacote GEOMATLAB possui um tutorial que ativado digitando-se
GEOMATLABtutorial no prompt do MATLAB. O GEOMATLAB apresenta, tambm,
uma interface no grfica de entrada de dados para usurios iniciantes que ativada
quando a funo desejada digitada no prompt. Existe um acesso menos amigvel,
porm mais rpido para se chegar aos resultados, e para tanto deve-se seguir as
respectivas sintaxes descritas neste texto ou no tutorial do pacote.
2. APLICAO DO GEOMATLAB: UM ESTUDO DE CASO
Para a aplicao do pacote desenvolvido foram utilizados os dados coletados
por BERNARDI (2001) na Ilha do Cardoso, litoral sul paulista. So valores de
concentraes
de
cobre
de
zinco
coletadas
no
centride
de
parcelas,
7224.226
7219.999
7224.919
.
.
.
7215.323
7213.910
7212.863
0.27
0.08
0.01
.
.
.
0.23
0.08
0.08
9.40
0.18
0.05
.
.
.
1.68
0.30
1.26
normal.m;
regressao.m;
cruzado.m.
Essas funes so
apresentadas com interface mais amigvel. Para o caso de interface com acesso
rpido basta adicionar nmero 1 ao final de seu nome. Exemplo: normal1.m;
regressao1.m; cruzado1.m; variograma1.m.
2.2.1. FUNO NORMAL
A funo normal gera um grfico de probabilidade normal, um histograma, um
mapa de teores, e por fim apresenta os valores da mdia, varincia, desvio padro,
valor mximo, valor mnimo e coeficiente de varincia para cada varivel no prompt do
MATLAB. necessrio entrar com os nmeros das colunas da matriz de dados que
contm as coordenadas geogrficas e as variveis a serem analisadas, o tipo de
transformao a ser aplicado nos dados (1: sem transformao; 2: aplicao de
logaritmo natural) e o nome do arquivo de dados. Para acionar a funo basta digitar
seu nome no prompt do MATLAB:
>> normal
Nome do arquivo de dados (entre aspas simples)..: 'geoq00.dat'
Coluna com as coordenadas Leste-Oeste..: 1
Coluna com as coordenadas Norte-Sul..: 2
Coluna inicial da matriz para analise..: 3
Coluna final de analise..: 4
Tipo de distribuiao(1 = normal/2 = lognormal)..: 1
30
0.997
0.99
0.98
25
0.95
0.90
20
Probability
0.75
15
0.50
0.25
10
0.10
0.05
5
0.02
0.01
0.003
0
50
Zn
100
20
40
60
Zn
80
100
Cu
Zn
7226
7224
80
7222
60
7218
50
7216
40
7214
30
7212
20
7210
10
7208
194
196
198
200
202
204
Leste-Oeste (UTM )
206
208
Norte-S ul (UTM )
70
7220
Norte-S ul (UTM )
7226
90
7224
90
7222
80
7220
70
7218
60
7216
50
7214
40
7212
30
7210
20
7208
194
196
198
200
202
204
Leste-Oes te (UTM )
206
208
Histograma, curva de probabilidade normal acumulada, distribuio de pontos referentes aos teores de
cobre e zinco na serapilheira (geoq00.dat)
Analise_de =
'Cu'
Media =
0.2999
Variancia =
0.1057
Desvio_pd =
0.3252
Maximo =
1.6000
Minimo =
0.0100
Coef_var =
0.3525
onde:
coodx e coody = nmeros das colunas das coordenadas NorteSul e LesteOeste,
respectivamente;
col_inic = nmero da coluna inicial da varivel a ser analisada na matriz de dados;
col_fin = nmero da coluna final da varivel a ser analisada na matriz de dados;
tipo_dist = tipo de distribuio normal/lognormal;
nome_arq = nome do arquivo de dados a ser analisado.
1.2
0.4
1
0.35
0.3
prof-90c m
Conc entra ao
0.8
0.6
0.4
0.25
0.2
0.15
0.1
0.2
0.05
0
P rof-30c m
prof-90c m
E lem entos
0.5
1
P rof-30c m
1.5
onde:
col1 = nmero da coluna na matriz da primeira varivel a ser analisada;
col2 = nmero da coluna na matriz da segunda varivel a ser analisada.
2.2.3. FUNO REGRESSO
A funo regresso calcula o coeficiente de correlao linear entre duas
variveis escolhidas, plota reta resultante da anlise de regresso linear e a
distribuio de pontos em 2D. necessrio entrar com os nmeros das colunas da
matriz de dados que contm as variveis independente e dependente para a anlise de
6
regresso, o tipo de transformao a ser aplicado nos dados, o nvel de confiana para
a anlise de regresso, o mtodo de regresso (1 regresso linear, 2 eixo maior
reduzido ), se deseja que seja exibido um grfico dos resduos da regresso e o nome
do arquivo de dados.
>> regressao
Nome do arquivo de dados (entre aspas simples)..: 'geoq30.dat'
Vetor da matriz para a variavel independente..: 3
Vetor da matriz para a variavel dependente..: 4
Nivel de confiana do teste(0.05/0.01/0.001)..: 0.05
Deseja que os residuos sejam exibidos?(S/N) 'n'
70
Residuals
Zn-sera
60
50
40
20
0
-20
30
-40
20
10
-60
0
10
15
Cu-sera
20
25
30
10
20
30
40
50
60
Case Number
70
80
90
100
Correlacao =
0.3253
Coef_b =
1.0858
Intercepta =
30.7484
R_quadrado =
0.1058
F =
12.4230
p =
6.2968e-004
onde:
7
que
delimita
as
distancias
das
classes->[classe(1):intervalo:
classe(x)]..: [0:0.5:5]
Metodo de krigagem (Ordinaria=1, Indicativa=2..: 2
Nivel de corte da krigagem..: 6
Deseja que X-corte<X-obs = 1 ou X-corte>X-obs = 1?(>=1/<=2)..: 1
Modelo para para o ajuste. Exemplo-> exponentialV, gaussianV, sphericalV,
linearV (entre aspas simples)..: sphericalV
Variograma tipo (Omnidirecional=1, Direcional=2)..: 1
Valores do sill e do range respectivamente ->[sill range]..: [0.055 2]
Valor do efeito pepita..: 0
Deseja exibir o numero de pares por ponto?(S/N) 's'
Couple 1-1
0.08
0.07
Variogram/Covariance
0.06
0.05
0.04
0.03
0.02
0.01
0.5
1.5
2.5
3.5
4.5
Distance
Variancia =
0.0778
Par_Teo_Ver_Res =
12.0000
0.0142
-0.0142
100.5000
0.0312
0.0647
0.0334
172.0000
0.0453
0.0349
-0.0105
196.0000
0.0538
0.0612
0.0074
294.5000
0.0550
0.0764
0.0214
311.0000
0.0550
0.0514
-0.0036
330.0000
0.0550
0.0515
-0.0035
304.0000
0.0550
0.0526
-0.0024
362.0000
0.0550
0.0622
0.0072
323.0000
0.0550
0.0557
0.0007
Indice =
0.3141
i=
j =1
( (h ) (h ))
*
* (h )
N
onde:
i ndice de ajuste calculado, e quanto menor o ndice, melhor o ajuste;
N nmero de elementos no domnio de ;
(h) valores do variograma experimental;
*(h) valores do modelo terico de variograma adotado para o ajuste.
Sintaxe de acesso rpido:
variograma(arqdat,coodx,coody,col_x,classes_x,tipo_krig,model,pepita,
param, ang_inic,ang_fin,dist)
9
onde:
arqdat = nome do arquivo de dados;
coodx = nmero da coluna do vetor de coordenadas espaciais de eixo x;
coody = nmero da coluna do vetor de coordenadas espaciais de eixo y;
col_x = nmero da coluna na matriz da varivel a ser analisada;
classes_x = vetor que delimita as classes ;
tipo_krig = mtodo de krigagem (ordinria/indicativa)
modelo = modelo de variograma terico: esfrico, linear, exponencial, gaussiano e
potencial
pepita = valor do efeito pepita;
param = vetor 1x2 com o valor do patamar (sill) e do alcance (range), respectivamente.
ang_inic e ang_fin = Angulo inicial e final da analise (em graus)
dist = Tipo de distribuio (normal/lognormal)
2.3.1. MAPA DE VARIOGRAMAS
A funo variomap.m confecciona o mapa de variogramas ou superfcie
variogrfica. Este mapa tem a funo principal de identificar a presena ou no de
anisotropia.
O mapa de semivariogramas deste pacote difere dos mapas convencionais,
como o do GSLib. Para facilitar a programao fez-se uma converso dos valores de
x = h cos( )
y = h sen( )
Onde x e y so as coordenadas cartesianas, o raio descrito pelo valor de h e o
ngulo o intervalo, regulvel, para cada semivariograma direcional pertencente ao
mapa de variogramas compreende-se entre 90 e 90.
Para acionar a funo basta digitar o nome da funo no prompt:
>> variomap
Nome do arquivo de dados (entre aspas simples)..: cobre00a.dat
Coluna com as coordenadas Leste-Oeste..: 1
Coluna com as coordenadas Norte-Sul..: 2
Coluna da matriz para analise..: 3
10
Vetor
que
delimita
as
distancias
das
classes
->
[classe(1):intervalo:
classe(x)]..: [0:.5:5]
Angulo de tolerancia dos variogramas direcionais..: 15
Tipo de distribuiao(1 = normal/2 = lognormal)..: 1
Metodo de krigagem (Ordinaria=1, Indicativa=2..: 1
30
3
25
Norte-S ul (h)
2
1
20
0
15
-1
-2
10
-3
5
-4
-5
-5
0
Leste-Oeste (h)
variomap.m
11
>> krigagem
Nome do arquivo de dados (entre aspas simples)..: cobre00a.dat
Coluna da matriz para analise..: 3
Colunas com os vetores das coordenadas LesteOeste e NorteSul->[E-W N-S]..:
[1 2]
Valores mnimos da abscissa e da ordenada ->[Min_x Min_y]..: [194 7209]
Valores do tamanho do lag da malha->[lag_EW lag_NS]..: [0.5 0.5]
Nmeros de lags desejado ->[num_EW num_NS]..: [31 35]
maxima
ser
considerada
do
ponto
ser
estimado
do
ponto
amostrado..: 2
Deseja plot em 3D?(Nao=1/Sim=2)..: 1
Tipo de distribuiao(1 = normal/2 = lognormal)..: 1
12
20
UTM-NS
7220
7218
15
7216
10
7214
7212
7210
194
196
198
200 202
UTM-EW
204
206
208
210
Cobre na serapilheira
Acesso rpido:
krigagem1(coord,col_x,min_xy,tam_lag,num_lag,tipo_krig,modelo,parametros,
num_max,dis_max,arqdat,resp_plot,dist)
onde:
coord = colunas com os vetores das coordenadas Leste-Oeste e Norte-Sul->[E-W N-S]
min_xy = valores minimos da abscissa e da ordenada->[Min_x Min_y]
tam_lag = Valores do tamnho do lag da malha->[lag_EW lag_NS]
num_lag = nmeros de lags desejado ->[num_EW num_NS]
tipo_krig = mtodo de krigagem (Ordinaria=1, Indicativa=2)
modelo = modelo para para o ajuste. Exemplo -> exponentialV, gaussianV, sphericalV,
linearV (entre aspas simples)
num_max = nmero maximo de pontos amostrados a serem considerados para a
estimativa
dis_max = distancia maxima a ser considerada do ponto a ser estimado e do ponto
amostrado
dist = tipo de distribuiao(1 = normal/2 = lognormal)
13
Couple 1-1
0.14
0.12
6
4
0.07
0.06
0.1
2
0.08
0
0.06
-2
Variogram/Covariance
Norte-Sul (h)
0.08
0.05
0.04
0.03
0.04
-4
0.02
-6
0.02
0.01
-8
-8
-6
-4
-2
0
2
Leste-Oeste (h)
0.5
1.5
2.5
3.5
4.5
Distance
14
ppm
7226
1
7224
7222
0.8
7220
UTM-NS
0.6
7218
0.4
7216
7214
0.2
7212
0
7210
194
196
198
200 202
UTM-EW
204
206
208
210
15
para
para
ajuste.
Exemplo->
exponentialV,
gaussianV,
sphericalV,
maxima
ser
considerada
do
ponto
ser
estimado
0.6
0.8
Cu-30cm Coletado
do
ponto
amostrado..: 2
Histograma
3
0.8
0.7
2.5
0.6
Cu-30cm Estimado
1.5
0.5
0.4
0.3
0.2
0.5
0
-1
0.1
-0.5
0.5
0.2
0.4
1.2
1.4
Cobre 0 a 30 cm
Acesso rpido:
validacao1(coord,col_x,modelo,parametros,num_max,dis_max,arqdat,tipo_krig)
16
3. REFERNCIAS
BERNARDI, J. V. E. Estudo quantitativo da estrutura florestal do Parque Estadual
da Ilha do Cardoso - SP. Tese de Doutorado em Geocincias e Meio Ambiente.
Instituto de Geocincias e Cincias Exatas. Universidade Estadual Paulista, Rio Claro.
2001. 376 p.
CHRISTAKOS, G; BOGAERT, P; SERRE; M. L. Temporal GIS: advanced functions for
field-based applications. Springer-Verlag, 2002. 217p. CD-ROM.
GSLIB (Geostatistical Software Library). Stanford: University of Stanford, Disponvel em
<http://www.gslib.com>. Acesso em: 21 Maio 2003.
HANSELMAN, D; LITTLEFIELD, B. MATLAB 5 Guia do usurio. Makron Books.
1999. 413p.
LANDIM, P. M. B. Anlise estatstica de dados geolgicos: Fundao Editora da
Unesp, 1998. 225p.
MATLAB 6.5 RELEASE 13. Mathworks, Inc. 1984-2000.
MIDDLETON, G. V. Data analysis in the Earth Sciences using MATLAB. Prentice
Hall, 2000. 260p.
MONTEIRO, R. C. Estimativa Espao-Temporal da Superfcie Potenciomtrica do
Sistema Aqfero Guarani na Cidade de Ribeiro Preto (SP) - Brasil. 2003. 212f.
Tese (Doutorado em Geocincias e Meio Ambiente). Instituto de Geocincias e
Cincias Exatas. Universidade Estadual Paulista, Rio Claro.
17