Rútilo no planeta Terra
Rútilo, mineral resistente como o planeta Terra que a todos nos sustenta
quinta-feira, 21 de maio de 2020
quinta-feira, 3 de outubro de 2019
quarta-feira, 1 de novembro de 2017
Crescimento da Phoenix Canariensis desde a semente
Primeiro rebenta a raiz que penetra fundo no solo. Depois, a alguns milímetros de distnacia da semente, nasce o caule (a partir da raiz) que se dirige para a superfície. Após cerca de 1 mês na terra a raiz já pode atingir facilmente os 10 cm de comprimento:
Evolução da Phoenix Canariensis (n.º 1)
A 1 de Novembro já se consegue ver o primeiro ramo com a canelura típica das folhas de um exemplar jovem:
domingo, 29 de outubro de 2017
Evolução da Phoenix Canariensis (n.º 1)
A 29 de Outubro de 2017, beneficiando de uns dias de calor e recebendo boa iluminação solar, este exemplar tem crescido a um bom ritmo, como se pode ver na fotografia abaixo:
sábado, 28 de outubro de 2017
PHOENIX CANARIENSIS (experiência de germinação caseira)
As minhas primeiras palmeiras das Canárias ao fim de cerca de mês e meio de processo acelerado de germinação (semente em algodão húmido em ambiente de estufa, seguido de colocação em vaso pequeno com terra adubada).
Phoenix Canariensis 1:
Phoenix Canariensis 2:
Origem das sementes: exemplar de palmeira das Canárias existente junto ao passadiço de acesso ao comboio que faz o transporte em direcção à praia do Barril, Tavira (ver fotografia abaixo).
sexta-feira, 3 de junho de 2016
domingo, 21 de setembro de 2014
domingo, 17 de agosto de 2014
sexta-feira, 23 de maio de 2014
Resolução de sistemas de equações não singulares
Nota prévia: uma
matriz A (n x n) é não-singular se se verificarem as seguintes propriedades:
·
A tem uma inversa, designada por A-1;
·
O determinante de A (det(A)) é diferente de zero (det(A)¹0);
·
Para qualquer z¹ 0, A*z¹0.
2 Carlos
A resolução de sistemas de equações lineares
(não singulares) é muito fácil com o Matlab. Vamos lidar com equações simples
do tipo Ax=b em que A representa uma matriz dos coeficientes com dimensão m
por n, x é o vector coluna das incógnitas e b é o vector correspondente
aos termos independentes do sistema de equações. Imaginemos que temos um sistema de 2 equações (cada uma com duas incógnitas e um termo independente):
7x+8y=100
2x-9y=10
Seguindo a forma clássica de resolução teríamos que separar as equações nos seus componentes (coeficientes, incógnitas e termos independentes) e fazer os cálculos através dos determinantes. Tarefa árdua!
Teríamos então que fazer o seguinte:
x = D1/D, em que D significa determinante;
y = D2/D
Assim, resolvendo os determinantes obtemos:
D = 7*(-9)-8*2=-79 (determinante dos coeficientes);
D1 = 100*(-9)-10*8=-980 (determinante dos termos independentes e do vector das “segundas” incógnitas (y));
D2 = 7*10-2*100=-130 (determinante dos termos independentes e do vector das “primeiras” incógnitas (x));
Calculando as respectivas razões obtemos as soluções para as duas incógnitas:
x = 12.4051
y = 1.6456
Com este procedimento facilmente se verifica a quantidade de cálculos que têm que ser feitos para chegar a uma solução (com o perigo de nos enganarmos nos sinais dos escalares).
Com o Matlab tudo é mais simples pois só precisamos de decompor o sistema de equações e usar uma única instrução (\ - “backslash”).
O sistema de equações usado como exemplo é do tipo Ax=b em que A representa a matriz dos coeficientes com dimensão n por n, x é o vector coluna das incógnitas (x e y) e b é o vector correspondente aos termos independentes (100 e 10).
Sendo do tipo Ax=b a instrução a usar no Matlab é: x=A\b. Vamos ver:
A=[7 8; 2 -9];
b=[100; 10];
x=A\b
x =
12.4051
1.6456
Como se vê não foi necessária muita ginástica mental, a instrução \ resolveu tudo num instante!
Para verificar se os resultados estão certos basta fazer a operação inversa:
b=A*x
b =
100.0000
10.0000
quinta-feira, 22 de maio de 2014
MULTIPLICAÇÃO DE MATRIZES
Esta ferramenta é muito importante quando trabalhamos com sistemas de equações lineares. Vai ser igualmente importante quando estivermos a fazer a análise multivariada de dados matriciais (veremos este tópico um pouco mais adiante com dados reais).
Condição fundamental para executar a multiplicação de duas matrizes:
Para que [C]=[A]x[B] o número de colunas de [A] tem que ser igual ao número de linhas de [B].
Também podemos multiplicar uma matriz por um escalar.
Vejamos uns exemplos concretos, começando pela multiplicação de uma matriz por um escalar.
Definimos a matriz A:
A=[1 2 3;4 5 6;7 8 9] (não esquecer os espaços entre os algarismos e os ; que separam cada linha)
A =
1 2 3
4 5 6
7 8 9
A seguir definimos um escalar:
e=7 (por uma questão de comodidade uso letras minúsculas para os escalares)
e =
7
A seguir faz-se a multiplicação
C=A*e
Obtendo-se o respectivo resultado:
C =
7 14 21
28 35 42
49 56 63
Como se pode ver cada elemento da matriz inicial A foi multiplicado pelo escalar (7). Um curiosidade apenas: como a matriz criada tem uma sucessão de números inteiros de 1 a 9 ao multiplicarmos essa matriz pelo valor 7 obtemos uma nova matriz que corresponde à tabuada dos 7 (faltando apenas o resultado 70).
Vamos definir uma segunda matriz B:
B=[10 11 12;13 14 15;16 17 18]
B =
10 11 12
13 14 15
16 17 18
A e B são matrizes com a mesma dimensão e portanto estão em condições para poderem ser multiplicadas.
D =
84 90 96
201 216 231
318 342 366
Para quem não se lembra da regra da multiplicação de matrizes: o elemento (1,1) da matriz A multiplica o elemento (1,1) da matriz B; o elemento (1,2) da matriz A multiplica o elemento (2,1) da matriz B; o elemento (1,3) da matriz A multiplica o elemento (3,1) da matriz B. A seguir todos os valores destas multiplicações são somados e inseridos na posição (1,1) da matriz D. O processo repete nesta ordem até estarem todas as posições da matriz D ocupadas.
Para matrizes com dimensões diferentes:
F=[19 20 21;22 23 24;25 26 27]
F =
19 20 21
22 23 24
25 26 27
G=[28 29;30 31;32 33]
G =
28 29
30 31
32 33
O resultado será:
H=F*G
H =
1804 1864
2074 2143
2344 2422
Verifica-se pois que a matriz que resulta desta multiplicação (a H) tem formato igual ao da matriz mais pequena (a G), uma vez que na multiplicação de matrizes a regra geral é "cada elemento de uma linha de uma matriz vai multiplicar todos os elementos de uma coluna de outra matriz".
Será comutativa esta operação?
Aqui não podemos multiplicar G*F porque as dimensões não são compatíveis, mas podemos usar o exemplo anterior em que A e B têm as mesmas dimensões:
I=B*A
I =
138 171 204
174 216 258
210 261 312
e comparando com D
D =
84 90 96
201 216 231
318 342 366
Verificamos que I é diferente de D.
Condição fundamental para executar a multiplicação de duas matrizes:
Para que [C]=[A]x[B] o número de colunas de [A] tem que ser igual ao número de linhas de [B].
Também podemos multiplicar uma matriz por um escalar.
Vejamos uns exemplos concretos, começando pela multiplicação de uma matriz por um escalar.
Definimos a matriz A:
A=[1 2 3;4 5 6;7 8 9] (não esquecer os espaços entre os algarismos e os ; que separam cada linha)
A =
1 2 3
4 5 6
7 8 9
A seguir definimos um escalar:
e=7 (por uma questão de comodidade uso letras minúsculas para os escalares)
e =
7
A seguir faz-se a multiplicação
C=A*e
Obtendo-se o respectivo resultado:
C =
7 14 21
28 35 42
49 56 63
Como se pode ver cada elemento da matriz inicial A foi multiplicado pelo escalar (7). Um curiosidade apenas: como a matriz criada tem uma sucessão de números inteiros de 1 a 9 ao multiplicarmos essa matriz pelo valor 7 obtemos uma nova matriz que corresponde à tabuada dos 7 (faltando apenas o resultado 70).
Vamos definir uma segunda matriz B:
B=[10 11 12;13 14 15;16 17 18]
B =
10 11 12
13 14 15
16 17 18
A e B são matrizes com a mesma dimensão e portanto estão em condições para poderem ser multiplicadas.
D =
84 90 96
201 216 231
318 342 366
Para quem não se lembra da regra da multiplicação de matrizes: o elemento (1,1) da matriz A multiplica o elemento (1,1) da matriz B; o elemento (1,2) da matriz A multiplica o elemento (2,1) da matriz B; o elemento (1,3) da matriz A multiplica o elemento (3,1) da matriz B. A seguir todos os valores destas multiplicações são somados e inseridos na posição (1,1) da matriz D. O processo repete nesta ordem até estarem todas as posições da matriz D ocupadas.
Para matrizes com dimensões diferentes:
F=[19 20 21;22 23 24;25 26 27]
F =
19 20 21
22 23 24
25 26 27
G=[28 29;30 31;32 33]
G =
28 29
30 31
32 33
O resultado será:
H=F*G
H =
1804 1864
2074 2143
2344 2422
Verifica-se pois que a matriz que resulta desta multiplicação (a H) tem formato igual ao da matriz mais pequena (a G), uma vez que na multiplicação de matrizes a regra geral é "cada elemento de uma linha de uma matriz vai multiplicar todos os elementos de uma coluna de outra matriz".
Será comutativa esta operação?
Aqui não podemos multiplicar G*F porque as dimensões não são compatíveis, mas podemos usar o exemplo anterior em que A e B têm as mesmas dimensões:
I=B*A
I =
138 171 204
174 216 258
210 261 312
e comparando com D
D =
84 90 96
201 216 231
318 342 366
Verificamos que I é diferente de D.
terça-feira, 20 de maio de 2014
OPERAÇÕES ELEMENTARES COM MATRIZES (2)
Produtos de vectores e transposição de matrizes
Existe um conjunto de regras importantes a fixar:
1) um vector linha e um vector coluna com a mesma dimensão podem ser multiplicados entre si;
2) quando multiplicamos um vector linha por um vector coluna obtemos um escalar;
3) quando multiplicamos um vector coluna por um vector linha obtemos uma matriz com as dimensões correspondentes às dos vectores multiplicados;
4) não podemos multiplicar dois vectores colunas entre si o mesmo, sendo verdade, para a multiplicação de dois vectores linha;
5) todavia, a multiplicação entre dois vectores linha ou coluna pode ser feita se usarmos a operação de transposição;
6) a multiplicação entre um vector coluna transposto e outro vector coluna (não transposto) é igual a um escalar. Esta multiplicação goza da propriedade comutativa, isto é, podemos multiplicar o segundo vector coluna transposto pelo primeiro vector coluna não transposto e o resultado será um escalar de valor igual ao anterior.
Vou colocar aqui um exemplo que ilustre a regar mais complexa (a 6)):
Seja
X=[2;0;1]
X =
2
0
1
e
Y=[3;2;1]
Y =
3
2
1
Se eu fizer X*Y obtenho obviamente uma mensagem de erro:
Error using *
Inner matrix dimensions must agree.
Mas se usar a operação de transposição já posso multiplicar estes dois vectores:
X'
ans =
2 0 1
Z=X'*Y
Z =
7
Y'
ans =
3 2 1
Z=Y'*X
Z =
7
Z tem o valor 7 e é igual independentemente da ordem pela qual os vectores são multiplicados, desde que se multiplique o vector coluna transposto pelo vector coluna não transposto.
Existe um conjunto de regras importantes a fixar:
1) um vector linha e um vector coluna com a mesma dimensão podem ser multiplicados entre si;
2) quando multiplicamos um vector linha por um vector coluna obtemos um escalar;
3) quando multiplicamos um vector coluna por um vector linha obtemos uma matriz com as dimensões correspondentes às dos vectores multiplicados;
4) não podemos multiplicar dois vectores colunas entre si o mesmo, sendo verdade, para a multiplicação de dois vectores linha;
5) todavia, a multiplicação entre dois vectores linha ou coluna pode ser feita se usarmos a operação de transposição;
6) a multiplicação entre um vector coluna transposto e outro vector coluna (não transposto) é igual a um escalar. Esta multiplicação goza da propriedade comutativa, isto é, podemos multiplicar o segundo vector coluna transposto pelo primeiro vector coluna não transposto e o resultado será um escalar de valor igual ao anterior.
Vou colocar aqui um exemplo que ilustre a regar mais complexa (a 6)):
Seja
X=[2;0;1]
X =
2
0
1
e
Y=[3;2;1]
Y =
3
2
1
Se eu fizer X*Y obtenho obviamente uma mensagem de erro:
Error using *
Inner matrix dimensions must agree.
Mas se usar a operação de transposição já posso multiplicar estes dois vectores:
X'
ans =
2 0 1
Z=X'*Y
Z =
7
Y'
ans =
3 2 1
Z=Y'*X
Z =
7
Z tem o valor 7 e é igual independentemente da ordem pela qual os vectores são multiplicados, desde que se multiplique o vector coluna transposto pelo vector coluna não transposto.
OPERAÇÕES ELEMENTARES COM MATRIZES (1)
No Matlab define-se uma matriz (matrix no plural matrices) como sendo um conjunto de dados representado por números reais ou complexos que estão organizados numa grelha bidimensional (linhas por colunas). É usado o termo array como correspondendo a um vector (definido por números), uma matriz ou uma malha de dados com dimensões elevadas. Poderá dizer-se que o termo array é mais genérico, enquanto que o termo matrix é mais específico.
Vamos começar com o exemplo de uma matriz 3X3 (simétrica) obtida do conhecido triângulo de Pascal. Para isso, no Matlab basta fazer:
A=pascal(3)
A =
1 1 1
1 2 3
1 3 6
Podemos chamar também a nossa conhecida matriz mágica:
B=magic(3)
B =
8 1 6
3 5 7
4 9 2
Como regras fundamentais não devemos nunca esquecer que:
u=[3; 1; 4], representa um vector coluna, ou seja,
u =
3
1
4
v=[2 0 -1], representa um vector linha, ou seja,
v =
2 0 -1
e que s=7 representa um escalar.
Vamos agora somar duas matrizes (a pascal(3) e a magic(3)):
A=pascal(3);
B=magic(3);
X=A+B
X =
9 2 7
4 7 10
5 12 8
somou as matrizes elemento a elemento.
O mesmo se pode dizer com a subtracção:
Y=X-A
Y =
8 1 6
3 5 7
4 9 2
Para isto é indispensável ter matrizes com a mesma dimensão!
Podemos também somar um escalar com um vector (ou fazer uma subtracção):
s=7
s =
7
w=v+s (em que o v foi definido anteriormente v= 2 0 -1 )
w =
9 7 6
Podemos também usar o vector coluna u definido anteriormente:
h=u+s
h =
10
8
11
Vamos começar com o exemplo de uma matriz 3X3 (simétrica) obtida do conhecido triângulo de Pascal. Para isso, no Matlab basta fazer:
A=pascal(3)
A =
1 1 1
1 2 3
1 3 6
Podemos chamar também a nossa conhecida matriz mágica:
B=magic(3)
B =
8 1 6
3 5 7
4 9 2
Como regras fundamentais não devemos nunca esquecer que:
u=[3; 1; 4], representa um vector coluna, ou seja,
u =
3
1
4
v=[2 0 -1], representa um vector linha, ou seja,
v =
2 0 -1
e que s=7 representa um escalar.
Vamos agora somar duas matrizes (a pascal(3) e a magic(3)):
A=pascal(3);
B=magic(3);
X=A+B
X =
9 2 7
4 7 10
5 12 8
somou as matrizes elemento a elemento.
O mesmo se pode dizer com a subtracção:
Y=X-A
Y =
8 1 6
3 5 7
4 9 2
Para isto é indispensável ter matrizes com a mesma dimensão!
Podemos também somar um escalar com um vector (ou fazer uma subtracção):
s=7
s =
7
w=v+s (em que o v foi definido anteriormente v= 2 0 -1 )
w =
9 7 6
Podemos também usar o vector coluna u definido anteriormente:
h=u+s
h =
10
8
11
UMA SEMANA DE CHUVA, por Miguel Esteves Cardoso
Voltou a chover. Vai continuar a chover. Não se via tal escândalo desde o ano passado, por esta altura exacta do mês de Maio.
Mas a Banda da Sociedade Recreativa e Musical de Almoçageme respondeu com nobreza ao apelo e tocou A Miraculosa como se estivesse uma tarde de sol.
Tal como o ano passado, depois de um fim-de-semana de praia, anda toda a gente espantada, ainda de calções e havaianas, a perguntar-me se eu já sei que vem aí uma semana de chuva.
Também costuma ser esta a semana em que alguém não muito longe de mim começa a dizer que este ano não vai haver cerejas por causa desta chuva, não obstante haver sempre cerejas todos os anos.
Na segunda metade de Maio declara-se, no primeiro dia de calor que o calor "chegou". Este "chegou" é dito com tal veemência que dispensa acrescentar o "para sempre".
Quando o calor que chegou se vai embora toda a gente se sente traída. Não é assim que o calor se deveria comportar. Os passarinhos, as borboletas e as rosas reagem com naturalidade, para não dizer indiferença. E continuam. Nós não. Fomos interrompidos e ficamos fulos.
A única diferença foi que, no ano passado, choveu no
Domingo à noite, molhando a Procissão das Velas. Este ano não choveu e a
procissão seguiu com todo o esplendor.
Este ano a chuva esperou
pela Nossa Senhora de Fátima. O ano passado uma vizinha nossa teve de
ralhar com a Banda: "Então não tocam ao menos 'A Miraculosa' para a
Nossa Senhora não ir desgostosa para a igreja?"Mas a Banda da Sociedade Recreativa e Musical de Almoçageme respondeu com nobreza ao apelo e tocou A Miraculosa como se estivesse uma tarde de sol.
Tal como o ano passado, depois de um fim-de-semana de praia, anda toda a gente espantada, ainda de calções e havaianas, a perguntar-me se eu já sei que vem aí uma semana de chuva.
Também costuma ser esta a semana em que alguém não muito longe de mim começa a dizer que este ano não vai haver cerejas por causa desta chuva, não obstante haver sempre cerejas todos os anos.
Na segunda metade de Maio declara-se, no primeiro dia de calor que o calor "chegou". Este "chegou" é dito com tal veemência que dispensa acrescentar o "para sempre".
Quando o calor que chegou se vai embora toda a gente se sente traída. Não é assim que o calor se deveria comportar. Os passarinhos, as borboletas e as rosas reagem com naturalidade, para não dizer indiferença. E continuam. Nós não. Fomos interrompidos e ficamos fulos.
Subscrever:
Mensagens (Atom)