Diferenças entre edições de "Matrizes"
(→Exercício 1) |
(→Exercícios) |
||
(Há 16 edições intermédias do mesmo utilizador que não estão a ser apresentadas) | |||
Linha 1: | Linha 1: | ||
+ | === Introdução === | ||
+ | |||
+ | As matrizes são utilizadas para resolver muitos tipos de problemas matemáticos. No contexto desta disciplina, interessa-nos apenas problemas simples, que se podem resolver recorrendo a sistemas de equações lineares. | ||
+ | |||
+ | Dado o seguinte sistema de equações lineares: | ||
+ | |||
+ | <math> | ||
+ | \begin{array}{l} | ||
+ | x + y + z = 6 \\ | ||
+ | 2y + 5z = -4 \\ | ||
+ | 2x + 5y -z = 27 | ||
+ | \end{array} | ||
+ | </math> | ||
+ | |||
+ | Interessa-nos representar o mesmo da forma matricial, começando por criar uma tabela: | ||
+ | |||
+ | <math> | ||
+ | \begin{array}{ccccccc} | ||
+ | x & + & y & + & z & = & 6 \\ | ||
+ | & & 2y & + & 5z & = & -4 \\ | ||
+ | 2x & + & 5y & - & z & = & 27 | ||
+ | \end{array} | ||
+ | </math> | ||
+ | |||
+ | E depois: | ||
+ | |||
+ | |||
+ | <math> | ||
+ | \begin{array}{ccccc} | ||
+ | 1 & 1 & 1 & = & 6 \\ | ||
+ | 0 & 2 & 5 & = & -4 \\ | ||
+ | 2 & 5 & -1 & = & 27 | ||
+ | \end{array} | ||
+ | </math> | ||
+ | |||
+ | Na verdade, estamos a considerar que temos um outro vetor x, y, z. | ||
+ | |||
+ | <math> | ||
+ | \begin{bmatrix} | ||
+ | 1 & 1 & 1 \\ | ||
+ | 0 & 2 & 5 \\ | ||
+ | 2 & 5 & -1 | ||
+ | \end{bmatrix} | ||
+ | \begin{bmatrix} | ||
+ | x \\ | ||
+ | y \\ | ||
+ | z | ||
+ | \end{bmatrix} = | ||
+ | \begin{bmatrix} | ||
+ | 6 \\ | ||
+ | -4 \\ | ||
+ | 27 | ||
+ | \end{bmatrix} | ||
+ | </math> | ||
+ | |||
+ | Queremos então resolver: <math> | ||
+ | Ax = B | ||
+ | </math> | ||
+ | |||
+ | Em Octave: | ||
+ | |||
+ | <syntaxhighlight> | ||
+ | b = [6; -4; 27] | ||
+ | A = [ 1 1 1; | ||
+ | 0 2 5; | ||
+ | 2 5 -1 ] | ||
+ | x = A \ b | ||
+ | </syntaxhighlight> | ||
+ | |||
=== Notação matemática === | === Notação matemática === | ||
Linha 74: | Linha 143: | ||
\begin{bmatrix} | \begin{bmatrix} | ||
0 & \frac{1}{2} & 2^2 \\ | 0 & \frac{1}{2} & 2^2 \\ | ||
− | 1 & \sqrt | + | 1 & \sqrt 3 & \frac{\sqrt 3}{3} |
\end{bmatrix} | \end{bmatrix} | ||
</math> em Octave. | </math> em Octave. | ||
Linha 320: | Linha 389: | ||
=== Exercícios === | === Exercícios === | ||
− | # Calcule A + B | + | Relembre as [https://pt.khanacademy.org/math/precalculus/precalc-matrices/properties-of-matrix-multiplication/a/properties-of-matrix-multiplication propriedades da multiplicação de matrizes]. |
− | # Calcule A + A | + | |
− | # Calcule o produto escalar 2 * B | + | # Calcule A + B. <p><math> |
− | # Comprove que o número de colunas de A é igual ao número de linhas de B | + | A + B = |
− | # Calcule o produto A*B | + | \begin{bmatrix} |
− | # Calcule o produto A*B*C | + | 2 & 0 \\ |
− | # Prove que o produto de matrizes é associativo (AB)C = A(BC) | + | 2 & 4 |
− | # Prove que o produto de matrizes é distributivo em relação à soma A(B + C) = AB + AC | + | \end{bmatrix} |
− | # Prove que a matriz identidade é o elemento neutro para o produto AI = A e IA = A. Use <syntaxhighlight enclose="none">I = eye(2)</syntaxhighlight> para gerar a matriz I. | + | </math></p> |
− | # Prove que a matriz nula é o elemento absorvente para o produto: OA == AO == O. Use <syntaxhighlight enclose="none">O = zeros(2)</syntaxhighlight> para gerar a matriz nula O. ''Neste exercício, use a letra ó maiúscula (O) para representar a matriz nula, e não o número zero (0). Se usar o número zero, em vez do ó maiúsculo (O), está a multiplicar o escalar zero por uma matriz, e não a matriz nula.'' | + | # Calcule A + A. <p><math> |
+ | A + A = | ||
+ | \begin{bmatrix} | ||
+ | 2 & 4 \\ | ||
+ | 6 & 8 | ||
+ | \end{bmatrix} | ||
+ | </math></p> | ||
+ | # Calcule o produto escalar 2 * B. <p><math> | ||
+ | 2 * B = | ||
+ | \begin{bmatrix} | ||
+ | 2 & -4 \\ | ||
+ | -2 & 0 | ||
+ | \end{bmatrix} | ||
+ | </math></p> | ||
+ | # Comprove que o número de colunas de A é igual ao número de linhas de B. <syntaxhighlight>size(A)(2) == size(B)(1)</syntaxhighlight> | ||
+ | # Calcule o produto A*B. <p><math> | ||
+ | A * B = | ||
+ | \begin{bmatrix} | ||
+ | -1 & -2 \\ | ||
+ | -1 & -6 | ||
+ | \end{bmatrix} | ||
+ | </math></p> | ||
+ | # Calcule o produto A*B*C. <p><math> | ||
+ | A * B *C = | ||
+ | \begin{bmatrix} | ||
+ | 2 & -2 \\ | ||
+ | 10 & -10 | ||
+ | \end{bmatrix} | ||
+ | </math></p> | ||
+ | # Prove que o produto de matrizes é associativo (AB)C = A(BC). <p><syntaxhighlight enclose="none">(A*B)*C == A*(B*C)</syntaxhighlight> ou <syntaxhighlight enclose="none">all(all((A*B)*C == A*(B*C)))</syntaxhighlight></p> | ||
+ | # Prove que o produto de matrizes é distributivo em relação à soma A(B + C) = AB + AC. <syntaxhighlight>A*(B+C) == A*B+A*C</syntaxhighlight> | ||
+ | # Prove que a matriz identidade é o elemento neutro para o produto AI = A e IA = A. Use <syntaxhighlight enclose="none">I = eye(2)</syntaxhighlight> para gerar a matriz I. <syntaxhighlight>A*I == A, I*A == A</syntaxhighlight> | ||
+ | # Prove que a matriz nula é o elemento absorvente para o produto: OA = AO = O. Faça dois testes: teste OA == AO e se AO == O. Use <syntaxhighlight enclose="none">O = zeros(2)</syntaxhighlight> para gerar a matriz nula O. ''Neste exercício, use a letra ó maiúscula (O) para representar a matriz nula, e não o número zero (0). Se usar o número zero, em vez do ó maiúsculo (O), está a multiplicar o escalar zero por uma matriz, e não a matriz nula.'' | ||
# Prove que <math>\alpha</math>(AB) = (<math>\alpha</math>A)B = A(<math>\alpha</math>B). Use um valor real qualquer como <math>\alpha</math>, à sua escolha. | # Prove que <math>\alpha</math>(AB) = (<math>\alpha</math>A)B = A(<math>\alpha</math>B). Use um valor real qualquer como <math>\alpha</math>, à sua escolha. | ||
Linha 396: | Linha 497: | ||
<syntaxhighlight>length(unique([sum(N) sum(N')])) == 1</syntaxhighlight> | <syntaxhighlight>length(unique([sum(N) sum(N')])) == 1</syntaxhighlight> | ||
+ | |||
+ | ==== Diagonais das matrizes mágicas ==== | ||
+ | |||
+ | <syntaxhighlight> | ||
+ | sum(diag(M)) | ||
+ | sum(diag(flip(M))) | ||
+ | </syntaxhighlight> | ||
=== O jogo sudoku === | === O jogo sudoku === | ||
Linha 455: | Linha 563: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Exercícios: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | <ol> | ||
+ | <li><div class="mw-collapsible mw-collapsed">Diga que algarismos (entre 1 e 9) faltam numa determinada submatriz, por exemplo, na matriz do canto superior esquerdo. Use a função <syntaxhighlight enclose="none">setdiff</syntaxhighlight>. | ||
+ | <div class="mw-collapsible-content"> | ||
<syntaxhighlight> | <syntaxhighlight> | ||
− | + | >> setdiff( 1:9, facil(1:3,1:3)) | |
− | + | ans = | |
− | + | 3 6 8 9 | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | </div> | |
− | + | </div> | |
− | + | </li> | |
+ | <li> | ||
+ | <div class="mw-collapsible mw-collapsed">Diga que algarismos (entre 1 e 9) faltam numa determinada linha, por exemplo, na primeira linha. Use novamente a função <syntaxhighlight enclose="none">setdiff</syntaxhighlight>. | ||
+ | <div class="mw-collapsible-content"> | ||
<syntaxhighlight> | <syntaxhighlight> | ||
− | + | >> setdiff( 1:9, facil(1,:) ) | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | >> | + | |
ans = | ans = | ||
− | + | 3 4 6 9 | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | </div> | |
− | + | </div> | |
− | + | </li> | |
− | + | <li> | |
− | + | <div class="mw-collapsible mw-collapsed">Diga que algarismos (entre 1 e 9) faltam numa determinada coluna, por exemplo, na primeira coluna. Use novamente a função <syntaxhighlight enclose="none">setdiff</syntaxhighlight>. | |
− | < | + | <div class="mw-collapsible-content"> |
− | + | ||
− | </ | + | |
− | + | ||
− | + | ||
− | + | ||
− | < | + | |
− | + | ||
− | </ | + | |
− | + | ||
− | + | ||
− | + | ||
<syntaxhighlight> | <syntaxhighlight> | ||
− | + | >> setdiff( 1:9, facil(:,1) ) | |
− | + | ans = | |
− | + | 1 6 8 9 | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | </div> | ||
+ | </div> | ||
+ | </li> | ||
+ | <li> | ||
+ | <div>Em função dos resultados anteriores, diga que algarismos podem ser colocados na primeira coluna da primeira linha. | ||
+ | </div> | ||
+ | </li> | ||
+ | </ol> | ||
− | === | + | === Exercícios opcionais === |
− | + | [[Resolução do Sudoku]] | |
− | + | [[Como apresentar um tabuleiro de sudoku neste wiki]] | |
− | + | [[Gerar matrizes a partir de funções f(i,j)]] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
=== Leitura adicional === | === Leitura adicional === | ||
Reveja os conceitos apresentados sobre matrizes e outros um pouco mais avançados em [http://en.wikibooks.org/wiki/Octave_Programming_Tutorial/Vectors_and_matrices Vectors and matrices, Octave Programming Tutorial]. | Reveja os conceitos apresentados sobre matrizes e outros um pouco mais avançados em [http://en.wikibooks.org/wiki/Octave_Programming_Tutorial/Vectors_and_matrices Vectors and matrices, Octave Programming Tutorial]. |
Edição atual desde as 11h17min de 15 de março de 2021
Índice
Introdução
As matrizes são utilizadas para resolver muitos tipos de problemas matemáticos. No contexto desta disciplina, interessa-nos apenas problemas simples, que se podem resolver recorrendo a sistemas de equações lineares.
Dado o seguinte sistema de equações lineares:
Interessa-nos representar o mesmo da forma matricial, começando por criar uma tabela:
E depois:
Na verdade, estamos a considerar que temos um outro vetor x, y, z.
Queremos então resolver:
Em Octave:
b = [6; -4; 27] A = [ 1 1 1; 0 2 5; 2 5 -1 ] x = A \ b
Notação matemática
A notação utilizada em matemática para matrizes introduz a noção de elemento, designado por , a matriz geralmente designada por uma letra maiúscula, , por exemplo, e a geometria da matriz , se esta tiver linhas por colunas. Seja então a seguinte matriz:
Notação do Octave
A matriz representa-se em Octave como:
octave:3> A = [ 1, 2, 3, 4; 5, 4, 6, 8; 9, 10 , 12, 12] A = 1 2 3 4 5 4 6 8 9 10 12 12
O elemento da matriz na linha 2 e coluna 3 pode ser obtido utilizando a seguinte sintaxe:
octave:4> A(2,3) ans = 6
Pode-se também obter toda uma linha, ou toda uma coluna. Toda a segunda linha obtém-se com:
octave:5> A(2,:) ans = 5 4 6 8
Toda a 4 coluna obtém-se com:
octave:6> A(:,4) ans = 4 8 12
A geometria da matriz, o número de linhas e de colunas, obtem-se com o operador size.
size(A) ans = 3 4
Exercícios
- Represente a matriz em Octave.
octave:1> B = [0 1/2 2^2; 1 sqrt(3) sqrt(3)/3] B = 0.00000 0.50000 4.00000 1.00000 1.73205 0.57735
-
Calcule o número de linhas da matriz. (Só o número de linhas, e não o número de linhas e colunas).
octave:7> size(B)(1) ans = 2
-
Apresente a matriz com mais casas decimais.
octave:9> format long octave:10> B B = 0.000000000000000 0.500000000000000 4.000000000000000 1.000000000000000 1.732050807568877 0.577350269189626
-
Crie uma nova matriz C com as colunas 1 e 3 de B.
octave:11> C = B(:,[1 3]) C = 0.000000000000000 4.000000000000000 1.000000000000000 0.577350269189626
Matrizes especiais
O comando diag pode criar uma matriz diagonal, se o argumento for o vetor que constitui a diagonal. Exemplo:
octave:22> diag([7 8 9]) ans = Diagonal Matrix 7 0 0 0 8 0 0 0 9
Repare que o argumento de diag é um vetor, no exemplo apresentado, e o resultado é uma matriz.
Alternativamente, o comando diag devolve o vetor da diagonal de uma matriz, se o argumento for uma matriz.
octave:18> A = [1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9 octave:19> diag(A) ans = 1 5 9
Matriz identidade
A matriz identidade é gerada com o comando eye(n).
octave:34> eye(3) ans = Diagonal Matrix 1 0 0 0 1 0 0 0 1
Matriz nula
A matriz nula (com todos os elementos a zero) é gerada com o comando zeros.
>> zeros(2) ans = 0 0 0 0 >> zeros(2,4) ans = 0 0 0 0 0 0 0 0 >>
Matrizes com 1
De forma semelhante, pode-se gerar uma matriz só com 1 (com todos os elementos a 1) com o comando ones.
>> ones(3) ans = 1 1 1 1 1 1 1 1 1 >> ones(2,5) ans = 1 1 1 1 1 1 1 1 1 1 >>
Obviamente que, com base nas matrizes geradas por zeros e ones se podem gerar outras matrizes com uma dada constante, como, por exemplo:
>> zeros(2,5)+7 ans = 7 7 7 7 7 7 7 7 7 7 >> ones(3)/4 ans = 0.25000 0.25000 0.25000 0.25000 0.25000 0.25000 0.25000 0.25000 0.25000 >>
Exercícios
Considere a matriz
Verifique o resultado das seguintes expressões:
- Calcule diag(3:3:10)
octave:28> diag(3:3:10) ans = Diagonal Matrix 3 0 0 0 6 0 0 0 9
-
Calcule diag(diag(A)).
octave:30> A = [1 2 3 4; 5 6 7 8; 9 10 11 12] A = 1 2 3 4 5 6 7 8 9 10 11 12 octave:31> diag(diag(A)) ans = Diagonal Matrix 1 0 0 0 6 0 0 0 11
-
Calcule sum(diag(eye(10))).
octave:32> sum(diag(eye(10))) ans = 10
Operações sobre matrizes
Considere a matriz , a matriz e a matriz .
Exercícios
Relembre as propriedades da multiplicação de matrizes.
- Calcule A + B.
- Calcule A + A.
- Calcule o produto escalar 2 * B.
- Comprove que o número de colunas de A é igual ao número de linhas de B.
size(A)(2) == size(B)(1)
- Calcule o produto A*B.
- Calcule o produto A*B*C.
- Prove que o produto de matrizes é associativo (AB)C = A(BC).
(A*B)*C == A*(B*C) ou all(all((A*B)*C == A*(B*C)))
- Prove que o produto de matrizes é distributivo em relação à soma A(B + C) = AB + AC.
A*(B+C) == A*B+A*C
- Prove que a matriz identidade é o elemento neutro para o produto AI = A e IA = A. Use I = eye(2) para gerar a matriz I.
A*I == A, I*A == A
- Prove que a matriz nula é o elemento absorvente para o produto: OA = AO = O. Faça dois testes: teste OA == AO e se AO == O. Use O = zeros(2) para gerar a matriz nula O. Neste exercício, use a letra ó maiúscula (O) para representar a matriz nula, e não o número zero (0). Se usar o número zero, em vez do ó maiúsculo (O), está a multiplicar o escalar zero por uma matriz, e não a matriz nula.
- Prove que (AB) = (A)B = A(B). Use um valor real qualquer como , à sua escolha.
Mais operações
Transposta
A matriz transposta de A representa-se matematicamente como . Por definição .
Se a matriz diz-se simétrica.
Em Octave, a matriz transposta representa-se por A'
Exercícios
- Prove que
- Prove que
- Prove que
- Prove que
Matrizes mágicas
Uma matriz de n por n contendo os números de 1 até n² diz-se uma matriz mágica, se cada uma das colunas, cada uma das linhas e as duas diagonais principais tiverem a mesma soma.
Considere a matriz M e a matriz N.
A soma das linhas de M, das colunas e de cada uma das duas diagonais dá sempre 15. Da mesma forma, a soma das linhas de N, das colunas e das diagonais dá sempre 34. Ambas são matrizes mágicas.
Verifica-se o também a seguinte propriedade: a soma de cada linha, coluna ou diagonal é igual à soma de todos os elementos da matriz a dividir pela dimensão da mesma. Ou seja, na matriz M todas as linhas, colunas e diagonais somam 15 que é igual a 45 (soma de todos os elementos da matriz) a dividir por 3 (a dimensão da matriz). De igual modo, todos os elementos da matriz N somam 136, que dividindo por 4, dá 34, que é a soma das linhas, colunas e diagonais.
Verificar as propriedades das matrizes mágicas
- a soma das colunas são todas iguais
range(sum(N)) == 0
ou
length(unique(sum(N))) == 1
- a soma das colunas e a soma das linhas dão o mesmo valor
O predicado anterior tem que dar 1 (verdadeiro) aplicado a qualquer uma das matrizes anteriores M ou N.
Aplicado a uma matriz , tem que dar 0 (falso).
range([sum(N) sum(N')]) == 0
ou
length(unique([sum(N) sum(N')])) == 1
Diagonais das matrizes mágicas
sum(diag(M)) sum(diag(flip(M)))
O jogo sudoku
O Sudoku é um quebra-cabeças popular, que consiste na preenchimento dos números em falta num tabuleiro de 9 matrizes de 3x3, colocadas de forma a formarem um grande tabuleiro de 9x9.
Apenas algumas casas começam por estar preenchidas, como ilustrado na seguinte figura.
|
|
| |||||||||||||||||||||||||||
|
|
| |||||||||||||||||||||||||||
|
|
|
As regras de preenchimento são simples:
- cada coluna tem que ter cada um dos algarismos de 1 a 9;
- cada linha tem que ter cada um dos algarismos de 1 a 9;
- cada algarismo só pode ocorrer 1 vez em cada linha e em cada coluna
- cada matriz de 3x3 tem que ser preenchida com os algarismos de 1 a 9
O tabuleiro seguinte está preenchido de acordo com estas regras.
|
|
| |||||||||||||||||||||||||||
|
|
| |||||||||||||||||||||||||||
|
|
|
Propriedades do tabuleiro de sudoku
No Octave vamos representar o tabuleiro por uma matriz de 9x9, em que as casas por preencher ficam com o algarismo 0. As casas preenchidas têm um algarismo entre 1 e 9.
facil = [ 0 7 2 0 0 1 8 0 5; 0 5 1 0 3 7 0 9 0; 4 0 0 2 0 8 1 0 7; 0 4 7 5 2 0 3 0 0; 0 2 6 7 0 0 5 0 1; 5 0 0 1 0 6 0 2 9; 2 9 0 3 7 0 0 1 0; 7 0 0 0 6 2 0 5 3; 3 0 8 0 1 0 2 7 0 ];
Dada a matriz anterior, podemos:
- calcular o número de casas por preencher
>> length(facil(facil == 0)) ans = 36
- isolar uma dada submatriz, por exemplo, a submatriz do canto superior direito
>> facil(1:3, 7:9) ans = 8 0 5 0 9 0 1 0 7
Exercícios:
- Diga que algarismos (entre 1 e 9) faltam numa determinada submatriz, por exemplo, na matriz do canto superior esquerdo. Use a função setdiff.
>> setdiff( 1:9, facil(1:3,1:3)) ans = 3 6 8 9
-
Diga que algarismos (entre 1 e 9) faltam numa determinada linha, por exemplo, na primeira linha. Use novamente a função setdiff.
>> setdiff( 1:9, facil(1,:) ) ans = 3 4 6 9
-
Diga que algarismos (entre 1 e 9) faltam numa determinada coluna, por exemplo, na primeira coluna. Use novamente a função setdiff.
>> setdiff( 1:9, facil(:,1) ) ans = 1 6 8 9
-
Em função dos resultados anteriores, diga que algarismos podem ser colocados na primeira coluna da primeira linha.
Exercícios opcionais
Como apresentar um tabuleiro de sudoku neste wiki
Gerar matrizes a partir de funções f(i,j)
Leitura adicional
Reveja os conceitos apresentados sobre matrizes e outros um pouco mais avançados em Vectors and matrices, Octave Programming Tutorial.