terça-feira, 22 de abril de 2014

MATLAB REVISITED - O meu primeiro programa

Vou calcular a média de uma sucessão de 50 números aleatórios de uma distribuição uniforme (que varia entre 0 e 1).
 No Matlab é muito simples:
 % Gerar valores aleatórios de uma distribuição uniforme calculando a média desses dados
n = 50; % número de dados (50)
r = rand(n,1); % rand é a expressão random (aleatório) e são porjectados 50 valores numa coluna plot(r) % graficar os valores aleatórios gerados pela função rand
% desenho da linha da média
 m = mean(r); % cálculo da média
 hold on % ordem para reter o gráfico que está em uso
(plot(r)) plot([0,n],[m,m]) % novo gráfico que vai mostrar a linha da média de (O,m) até (n,m)
hold off % volta ao estado anterior e o Matlab vai apagar o antigo gráfico e constrói um novo com os eixos rearranjados
title('Mean of Random Uniform Data') % título do gráfico
Save plotrand % instrução para gravar o programa que poderá ser carregado usando o comando "load"

Eis o resultado:

MATLAB REVISITED (equação do 2.º grau num gráfico tridimensional X,Y,Z)

Como representar Z em função de (X,Y) em que Z resulta da multiplicação de X pelo quadrado de Y (uma equação do 2.ºgrau). No Matlab é muito simples: [X,Y]=meshgrid(-2:0.2:2); (a função mehsgrid faz a malha do gráfico bidimensional X-Y)
Z=X.*Y.^2; (corresponde à multiplicação de X pelo quadrado de Y estendida a todos os valores de X e de Y definidos na meshgrid)
surf (X,Y,Z) (projecta o gráfico tridimensional)
Vejamos o gráfico:

MATLAB_REVISITED

Matalab significa "MATrix LABoratory" Se eu quiser representar o comportamento de duas funções matemáticas muito usadas pelos sedimentólogos (na definição das escalas utilizadas para determinar a dimensão das partículas sedimentares) tenho que fazer o seguinte: A) Mostrar a curva correspondente à conversão dos valores expressos na escala phi (eixo das abcissas) para mm (eixo das ordenadas) Definir o intervalo da variável x (abcissa): x=-1:0.1:4 (intervalo da escala phi no domínio dimensional da areia) y=2.^(-x) (o operador .^ define a aplicação da função exponencial para todo o intervalo de x) plot(x,y) (instrução para fazer o gráfico):
B) Mostrar a operação inversa (de mm para phi) x=0.0001:0.1:8 (o limite inferir tem que ser superior a 0 para não dar uma indeterminação no cálculo do logaritmo) y2=-log2(x) plot(x,y2)