ola pessoal :lol:
gostaria de saber quais são as principais aplicacoes das matrizes esparsas.
ola pessoal :lol:
gostaria de saber quais são as principais aplicacoes das matrizes esparsas.
Uma matriz esparsa não tem utilizade simplesmente por ser esparsa. As matrizes esparsas são aqueles onde a maioria dos elementos tem valor igual a zero. Elas são, em geral, resultantes de alguns sistemas lineares de equações, que representam alguns sistemas físicos.
Para escrever programas que tratem matrizes esparsas devemos ter certos cuidados quanto à memória utilizada por nossos programas, visto que simplesmente guardar a matriz esparsa em um array bidimensional não é eficiente, pois estaremos desperdiçando grande parte da memória alocada (estaremos alocando memória para guardar diversos elementos que valem zero! Porque guardá-los então?). Para isso, existem outras alternativas, mais eficientes no que diz respeito á memória alocada…
Quando trabalhei com Eng. de Petróleo as matrizes usadas eram esparsas. Qualquer valor diferente de zero da malha que representava o mapa era considerado como um setor (ou célula, valor) infectado pela difusão de petroleo em função de seus parametros de entrada.
Como muitas vezes os locais simulados da difusao eram pontuais e muito setores do mapa eram demarcados como coordenada de terra, a matriz era cheia de zeros (esparsa).
Em alguns casos para otimizar a performance do método numerico, os setores infectados eram marcados num vetor para que apenas eles sejam visitados na mudança de um estado para outro (em função da unidade de tempo adotada).
T+
[quote=Proteu Alcebidiano]Quando trabalhei com Eng. de Petróleo as matrizes usadas eram esparsas. Qualquer valor diferente de zero da malha que representava o mapa era considerado como um setor (ou célula, valor) infectado pela difusão de petroleo em função de seus parametros de entrada.
Como muitas vezes os locais simulados da difusao eram pontuais e muito setores do mapa eram demarcados como coordenada de terra, a matriz era cheia de zeros (esparsa).
Em alguns casos para otimizar a performance do método numerico, os setores infectados eram marcados num vetor para que apenas eles sejam visitados na mudança de um estado para outro (em função da unidade de tempo adotada).
T+[/quote]
Vcs sacrificavam a memória em benefício da velocidade, certo?!
Exat0. Aquela velha estória de memoria x velocidade. A performance do algoritmo caía à medida que o vetor atingia proporcoes aproximadas ao da matriz. Diminui-se operações de varreduras desnecessárias com buffers de leitura / escrita desses tipos
Mais informações sobre esse trabalho vc encontra aqui
T+
As matrizes esparsas geralmente são frutos do processamento sobre uma dada modelagem de algum problema, dessa forma, modelando o resultado, ou, a própria modelagem do problema em questão…
Trabalhei em um projeto que simulava a hidrodinâmica de um rio aqui da minha região, e como ocorria a expansão dos poluentes…Para isso usamos matrizes esparsas…De forma semelhante ao caso acima…
Exitem diversas formas de economizar memória para se armazenar matrizes esparsas, uma delas, seria armazenar só as coordenadas dos elementos 1 (no caso de uma matriz esparsa de 0´s e 1´s), de for uma matriz de 0´s e elementos diferentes de 0, além de se armazenar as coordenadas, armazena-se o valor tb…Dá pra fazer isso de várias formas, uma delas é usando dois vetores, numa mesma posição, em um dos vetores guarda-se a linha do elemento, no outro vetor a coluna. Pode-se usar um terceiro vetor para o valor, se for uma matriz esparsa heterogênea.