GNU Octave

Tela Software:
GNU Octave
Detalhes de Software:
Versão: 4.4.0 Atualizado
Data de upload: 22 Jun 18
Revelador: John W. Eaton
Licença: Livre
Popularidade: 262

Rating: 2.7/5 (Total Votes: 3)

O GNU Octave é um projeto de software de linha de comando de código aberto e distribuído que visa fornecer uma linguagem de alto nível poderosa, fácil de usar e extensível que pode ser usada para lidar com cálculos numéricos. .


Pode ser usado para resolver numericamente problemas lineares e não lineares

O software pode ser usado para resolver numericamente problemas lineares e não-lineares, bem como realizar vários experimentos numéricos. É compatível com o Matlab, um ambiente de computação numérica multi-paradigmático, e pode ser usado como uma linguagem orientada por lotes.

Além disso, o GNU Octave oferece várias utilidades que permitem resolver problemas comuns de álgebra linear numérica, manipular polinômios, integrar funções comuns, descobrir as raízes de equações não-lineares, bem como integrar equações diferenciais algébricas e diferenciais ordinárias. / p>

Você pode usar módulos carregados dinamicamente ou funções definidas pelo usuário para estender o GNU Octave. Estes podem ser escritos na própria linguagem de programação do Octave ou em C, C ++, Fortran, etc.

Primeiros passos com o GNU Octave

Dois métodos estão disponíveis para instalar o GNU Octave em um sistema operacional GNU / Linux. O primeiro é o mais fácil e envolve a pesquisa da oitava & rdquo; pacote no aplicativo do Centro de Software (por exemplo, Gerenciador de Pacotes Synaptic) da sua distribuição.

O segundo método ajudará você a instalar a versão mais recente do produto, mas envolve a execução de comandos em um emulador de terminal. Se você está com problemas, faça o download do último pacote fonte do Softoware ou da página oficial do projeto (veja o link no final do artigo), salve-o no seu PC e descompacte-o.

Abra um aplicativo de emulador de terminal, execute o & lsquo; cd & rsquo; comando seguido pelo caminho para a localização dos arquivos de arquivo extraídos (por exemplo cd /home/softoware/octave-3.8.2), execute o & lsquo; ./ configure & amp; & amp; fazer & rsquo; comando para configurar e compilar o programa, e então execute o & lsquo; sudo make install & rsquo; comando para instalá-lo. Use-o na interface da linha de comandos executando o comando & lsquo; octave & rsquo; comando.

Sob o capô

Dando uma olhada sob o capô do programa GNU Octave, podemos notar que está escrito inteiramente na linguagem de programação C ++. Nós o instalamos em várias distribuições do GNU / Linux, incluindo Arch Linux e Ubuntu, usando as instruções fornecidas na seção acima. O software é compatível com plataformas de computador de 32 e 64 bits.

O que há de novo nesta versão:

  • Um dos maiores novos recursos para a série de lançamento do Octave 3.8.x é uma interface gráfica com o usuário. É a única coisa que os usuários solicitaram com mais frequência nos últimos anos e agora está quase pronta. Mas como não é tão polido quanto gostaríamos, decidimos esperar até a série de versões 4.0.x antes de fazer a GUI a interface padrão (até então, você pode usar a opção --force-gui para iniciar a GUI ).

O que há de novo na versão:

  • Um dos maiores novos recursos da série de lançamento do Octave 3.8.x é uma interface gráfica do usuário. É a única coisa que os usuários solicitaram com mais frequência nos últimos anos e agora está quase pronta. Mas como não é tão polido quanto gostaríamos, decidimos esperar até a série de versões 4.0.x antes de fazer a GUI a interface padrão (até então, você pode usar a opção --force-gui para iniciar a GUI ).

O que há de novo na versão 4.2.0:

  • Um dos maiores novos recursos da série de lançamento do Octave 3.8.x é uma interface gráfica com o usuário. É a única coisa que os usuários solicitaram com mais frequência nos últimos anos e agora está quase pronta. Mas como não é tão polido quanto gostaríamos, decidimos esperar até a série de versões 4.0.x antes de fazer a GUI a interface padrão (até então, você pode usar a opção --force-gui para iniciar a GUI ).

O que há de novo na versão 4.0.3:

  • Um dos maiores novos recursos da série de lançamento do Octave 3.8.x é uma interface gráfica com o usuário. É a única coisa que os usuários solicitaram com mais frequência nos últimos anos e agora está quase pronta. Mas como não é tão polido quanto gostaríamos, decidimos esperar até a série de versões 4.0.x antes de fazer a GUI a interface padrão (até então, você pode usar a opção --force-gui para iniciar a GUI ).

O que há de novo na versão 4.0.1:

  • Um dos maiores novos recursos da série de lançamento do Octave 3.8.x é uma interface gráfica com o usuário. É a única coisa que os usuários solicitaram com mais frequência nos últimos anos e agora está quase pronta. Mas como não é tão polido quanto gostaríamos, decidimos esperar até a série de versões 4.0.x antes de fazer a GUI a interface padrão (até então, você pode usar a opção --force-gui para iniciar a GUI ).

O que há de novo na versão 4.0.0:

  • Um dos maiores novos recursos da série de lançamento do Octave 3.8.x é uma interface gráfica com o usuário. É a única coisa que os usuários solicitaram com mais frequência nos últimos anos e agora está quase pronta. Mas como não é tão polido quanto gostaríamos, decidimos esperar até a série de versões 4.0.x antes de fazer a GUI a interface padrão (até então, você pode usar a opção --force-gui para iniciar a GUI ).

O que há de novo na versão 3.8.2:

  • Um dos maiores novos recursos da série de lançamento do Octave 3.8.x é uma interface gráfica com o usuário. É a única coisa que os usuários solicitaram com mais frequência nos últimos anos e agora está quase pronta. Mas como não é tão polido quanto gostaríamos, decidimos esperar até a série de versões 4.0.x antes de fazer a GUI a interface padrão (até então, você pode usar a opção --force-gui para iniciar a GUI ).

O que há de novo na versão 3.8.0:

  • Um dos maiores novos recursos do Octave 3.8 é uma interface gráfica do usuário. É a única coisa que os usuários solicitaram com mais frequência nos últimos anos e agora está quase pronta. Mas como não é tão polido quanto gostaríamos, decidimos esperar até a série de versões 4.0.x antes de fazer a GUI a interface padrão (até então, você pode usar a opção --force-gui para iniciar a GUI ).
  • Dado o período de tempo e o número de correções de bugs e melhorias desde o último grande lançamento do Octave, também decidimos não atrasar o lançamento de todas essas novas melhorias apenas para aperfeiçoar a GUI. Portanto, aproveite a versão 3.8 do Octave e a visualização da nova GUI. Acreditamos que está funcionando razoavelmente bem, mas também sabemos que há alguns pontos difíceis e muitas coisas que podem ser melhoradas.

O que há de novo na versão 3.4.0:

  • Bibliotecas BLAS e LAPACK agora são necessárias para construir o Octave. O subconjunto das bibliotecas de referência BLAS e LAPACK foi removido das origens do Octave.
  • A função `lookup 'foi estendida para ser mais útil para busca binária de propósito geral. Usando essa melhoria, a função ismember foi reescrita para um desempenho significativamente melhor.
  • Matrizes reais, inteiras e lógicas, quando usadas na indexação, agora armazenarão em cache o valor interno index_vector (índices baseados em zero) quando usadas com sucesso como índices, eliminando a penalidade de conversão para indexação subseqüente pela mesma matriz. Em particular, isso significa que não é mais necessário evitar a indexação repetida por matrizes lógicas usando find por motivos de desempenho.
  • As matrizes lógicas são agora tratadas de forma mais eficiente quando usadas como índices. Octave manterá o índice como uma máscara lógica, a menos que a proporção de elementos verdadeiros seja pequena o suficiente, usando um código especializado. Anteriormente, todas as matrizes lógicas eram sempre primeiro convertidas em vetores de índice. Isso resulta em economia tanto na memória quanto no tempo de computação.
  • As funções `sub2ind 'e` ind2sub' foram reimplementadas como funções compiladas para melhor desempenho. Essas funções agora são mais rápidas, podem fornecer resultados mais econômicos para intervalos e podem reutilizar o mecanismo de cache de índice descrito no parágrafo anterior.
  • Os equivalentes da função interna para operadores associativos (`mais ',` times', `mtimes ',` e' e 'ou') foram estendidos para aceitar vários argumentos. Isso é especialmente útil para somar (multiplicar, etc.) listas de objetos (possivelmente de tipos distintos):
  • matrix_sum = plus (matrix_list {:});
  • Um tipo de objeto FTP baseado no libcurl foi implementado. Esses objetos permitem que conexões ftp, downloads e uploads sejam gerenciados. Por exemplo,
  • fp = ftp ("ftp.octave.org); cd (fp," gnu / oitava "); mget (fp," oitava-3.2.3.tar.bz2 "); fim (fp);
  • O comportamento padrão de `assert (observado, esperado) 'foi relaxado para empregar uma verificação menos estrita que não requer que os internos dos valores correspondam. Isso evita que testes anteriormente válidos sejam interrompidos devido a novas classes internas introduzidas em futuras versões do Octave.
  • Por exemplo, todas essas asserções eram verdadeiras no Octave 3.0.x, mas eram falsas no 3.2.x devido a novas otimizações e melhorias:
  • assert (2 * linspace (1, 5, 5), 2 * (1: 5)) assert (zeros (0, 0), []) assert (2 * uns (1, 5), (2) (ones (1,5)))
  • O comportamento das funções da biblioteca `ismatrix ',` issquare' e `issymmetric 'foi alterado para melhor consistência. A função `ismatrix 'agora retorna true para todas as matrizes numéricas, lógicas e de caractere 2-D ou N-D. Anteriormente, `ismatrix 'retornava false se a primeira ou segunda dimensão fosse zero. Portanto, `ismatrix ([]) 'era falso, enquanto` ismatrix (zeros (1,2,0))' era verdadeiro.
  • A função `issquare 'agora retorna um escalar lógico e é equivalente à expressão
  • ismatrix (x) & amp; & amp; ndims (x) == 2 & amp; & amp; linhas (x) == colunas (x)
  • A dimensão não é mais retornada. Como resultado, `issquare ([]) 'agora é verdadeiro. A função `issymmetric 'agora verifica a simetria em vez do Hermitianness. Para este último, ishermitian foi criado. Além disso, o escalar lógico é retornado em vez da dimensão, portanto, `issymmetric ([]) 'agora é verdadeiro. As alças de função agora estão cientes das funções sobrecarregadas. Se uma função estiver sobrecarregada, o identificador determina, no momento de sua referência, qual função chamar. Uma versão não sobrecarregada não precisa existir.
  • Funções de sobrecarga para classes internas (double, int8, cell, etc.) agora são compatíveis com o Matlab.
  • As alças de função agora podem ser comparadas com os operadores == e! =, assim como a função `isequal '.
  • O desempenho da concatenação (usando []) e as funções `cat ',` horzcat' e `vertcat 'foram aprimorados para matrizes multidimensionais.
  • Os operadores de atribuição de operação + =, - =, * = e / = agora se comportam de maneira mais eficiente em certos casos. Por exemplo, se M é uma matriz e S é um escalar, então a instrução
  • M + = S;
  • operará nos dados de M no local, se não for compartilhado por outra variável, geralmente aumentando o tempo e a eficiência da memória. Somente combinações comuns selecionadas são afetadas, a saber: matriz + = matriz matricial - = matriz matricial. * = Matriz matricial ./= matriz
  • matriz + = matriz escalar - = matriz escalar * = matriz escalar / = escalar
  • matriz lógica | = matriz lógica lógica matriz & = matriz lógica
  • onde matriz e escalar pertencem à mesma classe. O lado esquerdo deve ser uma referência simples de variável.
  • Além disso, quando operadores unários ocorrem em expressões, o Octave também tentará fazer a operação no local se o argumento for uma expressão temporária.
  • O efeito dos operadores de comparação (, =) aplicados a números complexos foi alterado para ser consistente com a ordenação estrita definida pelas funções `max ',` min' e `sort '. Mais especificamente, os números complexos são comparados por comparação lexicográfica dos pares '[abs (z), arg (z)]'. Anteriormente, apenas partes reais eram comparadas; isso pode ser alcançado trivialmente colocando os operandos em real ().
  • A simplificação automática de resultados complexos de computação mudou. Octave agora simplificará qualquer número complexo com uma parte imaginária zero ou qualquer matriz complexa com todos os elementos tendo zero parte imaginária para um valor real. Anteriormente, isso era feito apenas para zeros positivos. Note que o comportamento da função complexa é inalterado e ainda produz um valor complexo, mesmo que a parte imaginária seja zero.
  • Como um efeito colateral da refatoração de código na liboctave, as operações lógicas binárias agora são mais facilmente passíveis de otimizações do compilador e, portanto, são significativamente mais rápidas.
  • O Octave agora permite que métodos `subsasgn 'definidos pelo usuário otimizem cópias redundantes. Para mais informações, consulte o manual.
  • Manuseio de divisões de matrizes mais eficiente. Octave agora é capaz de lidar com as expressões M 'V M.' V V / M
  • (M é uma matriz e V é um vetor) mais eficientemente em certos casos. Em particular, se M é triangular, todas as três expressões serão tratadas por uma única chamada para xTRTRS (de LAPACK), com sinalizadores apropriados. Anteriormente, todas as três expressões exigiam uma transposição física de M.
  • Manuseio mais eficiente de certas operações mistas de matrizes complexas reais. Por exemplo, se RM for uma matriz real e CM uma matriz complexa, RM CM
  • agora pode ser avaliado como
  • complexo (RM real (CM), RM imag (CM))
  • ou como
  • CM complexo (RM),
  • dependendo das dimensões. A primeira forma requer mais temporárias e cópia, mas divide a contagem de FLOP, o que normalmente traz um melhor desempenho se RM tiver linhas suficientes. Anteriormente, o segundo formulário era sempre usado.
  • A divisão de matrizes é afetada de maneira semelhante.
  • Manuseio mais eficiente de fatores de matriz triangular retornados de fatorizações. As funções para calcular as fatorações de QR, LU e Cholesky agora retornarão automaticamente os fatores da matriz triangular com o conjunto interno apropriado de matrix_type, de modo que não precisará ser computado quando a matriz é usada para divisão.
  • A função `sum 'incorporada agora lida com a soma não nativa (ou seja, soma de precisão dupla de entradas simples ou inteiras) com mais eficiência, evitando uma conversão temporária de toda a matriz de entrada para o dobro. Além disso, 'sum' agora pode aceitar um argumento de opção extra, usando um algoritmo de soma compensada em vez de uma soma direta, o que melhora significativamente a precisão se ocorrer muito cancelamento no somatório.
  • A função `bsxfun 'incorporada agora usa código otimizado para certos casos em que identificadores internos do operador são passados. Nomeadamente, as otimizações dizem respeito aos operadores` plus', `menos ',` times', `ldivide ' , `rdivide ',` power', `and ',' or '(para matrizes lógicas), os operadores relacionais` eq', `ne ',' lt ',` le', `gt ',` ge' e as funções `min 'e` max'. As otimizações só se aplicam quando os dois operandos são da mesma classe interna. Operações combinadas real / complexa e simples / dupla primeiro converterão os dois operandos em um tipo comum.
  • As funções `strfind 'e` strrep' agora têm implementações compiladas, facilitando a busca e substituição significativamente mais eficientes em strings, especialmente com padrões mais longos. O código de `strcat 'foi vetorizado e agora é muito mais eficiente quando muitas strings são concatenadas. As funções `strcmpi 'e` strncmpi' agora são funções integradas, fornecendo melhor desempenho.
  • O estilo do Matlab ignorando argumentos de função de entrada e saída usando til (~) agora é suportado. Argumentos de saída ignorados podem ser detectados a partir de uma função usando a função interna `isargout '. Para mais detalhes, consulte o manual.
  • O tipo de dados da lista, descontinuado desde a introdução das células, foi removido.
  • A função accumarray foi otimizada e agora é significativamente mais rápida em alguns casos importantes.
  • O comportamento das funções isreal e isnumeric foi alterado para ser mais compatível com o Matlab.
  • O número inteiro de matemática & amp; avisos de conversão (Octave: int-convert-nan, Octave: int-convert-non-int-val, Octave: int-convert-overflow, Octave: int-math-overflow) foram removidos.
  • rem e mod agora são funções integradas. Eles também manipulam tipos inteiros eficientemente usando aritmética inteira.
  • A indexação esparsa e a atribuição indexada foram reescritas na maioria das vezes. Como o Octave usa o armazenamento de colunas compactadas para matrizes esparsas, a maior atenção é dedicada às operações que manipulam colunas inteiras. Tais operações são agora significativamente mais rápidas, bem como alguns outros casos importantes.
  • Além disso, agora é possível pré-alocar uma matriz esparsa e, posteriormente, preenchê-la por atribuições, desde que atendam a determinadas condições. Para mais informações, consulte a função `spalloc ', que não é mais um mero manequim. Conseqüentemente, nzmax e nnz não são mais sempre iguais em Octave. A oitava também pode produzir uma matriz com nnz & lt; nzmax como resultado de outras operações, então você deve usar nnz consistentemente a menos que você realmente queira usar nzmax (ou seja, o espaço alocado para elementos diferentes de zero).
  • A concatenação esparsa também é afetada, e a concatenação de matrizes esparsas, especialmente coleções maiores, é agora significativamente mais eficiente. Isso se aplica tanto ao operador [] quanto às funções cat / vertcat / horzcat.
  • Agora é possível utilizar opcionalmente os drivers xGESDD LAPACK para calcular a decomposição de valores singulares usando svd (), em vez do xGESVD padrão, usando a pseudo-variável de configuração svd_driver. O driver xGESDD pode ser até 6x mais rápido quando vetores singulares são solicitados, mas é relatado como sendo um pouco menos robusto em matrizes altamente mal condicionadas.
  • Configuração de pseudo-variáveis, como page_screen_output ou confirm_recursive_rmdir (ou o svd_driver mencionado acima), agora aceita uma opção "local" como segundo argumento, solicitando que a alteração seja desfeita quando a função atual retornar: function [status, msg] = rm_rf (dir) confirm_recursive_rmdir (falso, "local"); [status, msg] = rmdir (dir, "s"); ... endfunction Ao retornar, confirm_recursive_rmdir será restaurado para o valor que tinha na entrada para a função, mesmo que houvesse alterações subsequentes na variável na função rm_rf ou em qualquer uma das funções que ele chama.
  • O
  • pkg agora aceita uma opção -forge para baixar e instalar pacotes do Octave Forge automaticamente. Por exemplo, o pkg install -forge general baixará automaticamente a versão mais recente do pacote geral e tentará instalá-lo. Nenhuma resolução automática de dependências é fornecida. Além disso,
  • pkg list -forge pode ser usado para listar todos os pacotes disponíveis.
  • ** A representação de dados internos de estruturas foi completamente reescrita para tornar certas otimizações viáveis. Os dados de campo agora podem ser compartilhados entre estruturas com chaves iguais, mas dimensões ou valores diferentes, tornando as operações que preservam os campos mais rapidamente. O armazenamento economizado é agora usado para estruturas escalares (assim como a maioria dos outros escalares), tornando seu uso mais eficiente em termos de memória. Certas operações parecidas com matrizes em estruturas (concatenação, célula uniforme, num2 célula) ganharam uma aceleração significativa. Além disso, a classe octave_scalar_map agora fornece uma interface mais simples para trabalhar com estruturas escalares dentro de uma função C ++ DLD.
  • ** Dois novos formatos estão disponíveis para exibição de números:
  • formato curto eng eng longo por eng
  • Ambos exibem números em notação de engenharia, isto é, mantissa + expoente onde o expoente é um múltiplo de 3.
  • ** As seguintes funções são novas no Octave 3.4:
  • acumular ncfs do nfcx pqpnonneg uigetdir pacote de bits fileread nth_element quadcn uigetfile bitunpack fminbnd oncleanup randi uiputfile blkmm fskipl pbaspect repelentes uimenu cbrt ifelse pie3 redefinir whitebg curl ishermitian powerset rsf2csf cortar isindex ppder saveas as perspectivas luupdate ppint strread divergência mesclar ppjumps textread
  • ** O uso da função de imagem para visualizar imagens com programas externos, como display, xv e xloadimage, não é mais suportado. A função image_viewer também foi removida.
  • ** O comportamento de atribuições de estruturas a valores não estruturados foi alterado. Anteriormente, era possível sobrescrever um valor arbitrário: a = 1; a.x = 2;
  • Isso não é mais possível a menos que a seja uma matriz vazia ou matriz de células.
  • ** A função dlmread foi estendida para permitir a especificação de um valor personalizado para campos vazios.
  • ** As funções dlmread e dlmwrite foram modificadas para aceitar IDs de arquivos (conforme retornado por fopen) além dos nomes de arquivos.
  • ** O Octave agora pode otimizar a sobrecarga do interpretador de um identificador de função anônimo, se a função simplesmente chamar outra função ou manipular alguns de seus parâmetros associados a determinados valores. Exemplo: f = @ (x) soma (x, 1);
  • Quando f é chamado, a chamada é encaminhada para @sum com a constante 1 anexada e a chamada de função anônima não ocorre na pilha de chamadas.
  • Funções reprovadas.
  • As funções a seguir foram preteridas no Octave 3.2 e serão removidas do Octave 3.6 (ou qualquer versão que seja o segundo release principal após o 3.2):
  • create_set spcholinv splu dmult spcumprod spmax iscommand spcumsum spmin israwcommand spdet spprod lchol spdiag spqr loadimage spfind spsum mark_as_command sphcat spsumsq mark_as_rawcommand spinv spvcat spano sp2 sp2 spchol spgol sp_m_do_escaro sp_arro_command spchol2inv split unmark_rawcommand
  • As seguintes funções foram preteridas no Octave 3.4 e serão removidas do Octave 3.8 (ou qualquer versão que seja o segundo grande lançamento após o 3.4):
  • autocor cellidx gammai krylovb valores autocov expedição glpkmex replot betai fstat is_global saveimage
  • Para compatibilidade com o Matlab, mu2lin (x) é agora equivalente a mu2lin (x, 0).
  • A biblioteca ARPACK agora é distribuída com o Octave, portanto, não precisa mais estar disponível como uma dependência externa ao criar Octave.

O que há de novo na versão 3.2.3:

  • O Octave 3.2.3 é uma versão de correção de bugs

O que há de novo na versão 3.0.4:

  • O Octave 3.0.4 é uma versão de correção de bugs. A maioria dos erros relatados desde o lançamento da versão 3.0.3 foi corrigida. Por favor, note que o Octave 3.0 é significativamente diferente do Octave 2.1.x, particularmente no que diz respeito a gráficos, manipulação de caminho e variáveis ​​internas.

Programas semelhantes

Python
Python

22 Jun 18

Box
Box

19 Feb 15

Tiny C Compiler
Tiny C Compiler

3 Jun 15

Outro software de desenvolvedor John W. Eaton

Octave
Octave

2 Jun 15

Comentário para GNU Octave

Comentários não encontrado
Adicionar comentário
Ligue imagens!