Tópicos populares
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Como alguém com formação em ciência da computação, fiquei muito confuso na primeira vez que encontrei pessoas da matemática insistindo que um tensor não era uma matriz. Porque ambos são claramente arrays multidimensionais. Mas então percebi... os matemáticos sempre usam linguagens fortemente tipadas em suas cabeças!
Para um cientista da computação, estrutura, funções, interface e restrições estão todas claramente separadas e interconvertíveis. Um tensor é uma matriz que você está tratando como um tensor. Você pode misturá-los, uma classe é um conjunto de todos os quatro, mas não é obrigatório.
Quando te dizem que vetores não são listas de números, é porque se treinaram para serem verificadores de tipo para linguagens de lógica fortemente tipadas que avaliam de forma ansiosa. Matemáticos executam algo que é basicamente um verificador de tipo mágico aprendido em suas cabeças.
As pessoas de CS geralmente executam lisp e/ou C mentalmente, dependendo se queremos ser o intérprete ou o computador. Se realmente executarmos um simulador mental fortemente tipado, ele está sobreposto. Mesmo o Haskell separa as declarações de tipo da implementação.
Mas a matemática é feita apenas com assinaturas de tipo! Eles fazem tudo com macros fortemente tipadas! É como o caso limite dos tipos de Hindley–Milner, se fizessem expansão especulativa para encontrar melhores compressões. O que permite que os matemáticos façam compilação otimizada de programas, de forma abstrata.
Agora que estou a fazer mais matemática real, vejo o poder desta abordagem. Mas acho que o poder da abordagem de CS é subestimado pelas pessoas da matemática. Porque a sabedoria de CS é que um tensor é uma matriz, mas uma matriz não é um tensor. Variáveis são o que quer que você possa convertê-las.
Os matemáticos sabem sobre casts, mas chamam-lhes nomes engraçados como "morfismos". E eles admitirão, sob coação, que se você tiver o cast apropriado, pode usar um vetor como uma rotação da dimensão correspondente.
Mas eles dirão, você não está usando o vetor como uma rotação, você derivou um bivetor sob blá blá blá. Isso é verdade, se você for um verificador de tipo super HM do prolog. Não é verdade se você for um compilador, um interpretador ou um computador.
De qualquer forma, ainda arranjo brigas com pessoas de matemática sobre isso, porque é tão ridículo negar que o duck-typing funciona, mas eles estão certos, ainda requer unificação de tipos.
@St_Rev E não, um tensor é um subtipo de uma matriz, não o contrário. A matriz é o objeto mais geral, os tensores devem obedecer a mais restrições.
@SokobanHero Portanto, uma vez que um mapa multilinear pode sempre ser realizado como uma matriz (ok, tecnicamente um hipermatriz, porque as pessoas aparentemente usam matriz para se referir apenas a um array n-dimensional de rank-2) e vice-versa em algum espaço, acho que é igualmente razoável ir em qualquer uma das direções.
20,73K
Top
Classificação
Favoritos

