Não existe qualquer definição matemática para a divisão de um vector por outro, no entanto, em Matlab , o operador './' é definido para dar a divisão elemento por elemento, e é por isso apenas definido para vectores do mesmo comprimento e tipo:
» a = 1:5, b = 6:10, a./b
a =
1 2 3 4 5
b =
6 7 8 9 10
ans =
0.1667 0.2857 0.3750 0.4444 0.5000
» a./a
ans =
1 1 1 1 1
» c = -2:2, a./c
c =
-2 -1 0 1 2
Warning: Divide by zero
ans = -0.5000 -2.0000 Inf 4.0000 2.5000
No último calculo é efectuada uma divisão por 0 que produz um aviso (warning) e que resulta num 'Inf', denotando o infinito.
» a.*b -24, ans./c
ans = -18 -10 0 12 26
Warning: Divide by zero
ans = 9 10 NaN 12 13
Neste caso o utilizador é alertada para um 0/0 que resulta num não numérico ('NaN').
Exemplo 12.2
Estime o valor do limite:
A chave para a estimação é observar o comportamento da razão
para uma sequência de valores que se aproxima de zero. Supondo que se escolhe uma sequência definida pelo vector coluna:
» x = [0.1; 0.01; 0.001; 0.0001]
então
» sin(pi*x)./x
ans =
3.0902
3.1411
3.1416
3.1416
»
o que sugere que os valores convergem. Para obter um melhor impressão subtraímos o valor de
de cada elemento do resultado e para mostrar mais casas decimais, alteramos o formato para:
» format long
» ans -pi
ans =
-0.05142270984032
-0.00051674577696
-0.00000516771023
-0.00000005167713
»
Como se explica o padrão revelado nestes números?
Para dividir um escalar por um vector também necessitamos uso o operador './'.
» 1/x
??? Error using ==> /
Matrix dimensions must agree.
» 1./x
ans =
10 100 1000 10000
concluímos que '1./x' funciona, mas '1/x' não.
Rodrigo Maia
2003-10-07