GNU Octave

Software screenshot:
GNU Octave
Software detaljer:
Version: 4.4.0 Opdateret
Upload dato: 22 Jun 18
Udvikler: John W. Eaton
Licens: Gratis
Popularitet: 262

Rating: 2.7/5 (Total Votes: 3)

GNU Octave er et open source og frit distribueret kommandolinjeprojekt, der har til formål at give et kraftigt, brugervenligt og udvideligt sprog på højt niveau, der kan bruges til håndtering af numeriske beregninger .


Kan bruges til numerisk at løse lineære og ikke-lineære problemer

Softwaren kan bruges til numerisk at løse både lineære og ikke-lineære problemer samt at udføre forskellige numeriske eksperimenter. Det er kompatibelt med Matlab, et numerisk computermiljø med flere paradigmer, og kan bruges som et batch-orienteret sprog.

Derudover tilbyder GNU Octave forskellige værktøjer, som giver dig mulighed for at løse almindelige numeriske lineraalgebraproblemer, manipulere polynomier, integrere almindelige funktioner, opdage rødderne af ikke-lineære ligninger og integrere almindelige differential-algebraiske og differentialligninger.

Du kan bruge dynamisk indlæste moduler eller brugerdefinerede funktioner til at udvide GNU Octave. Disse kan skrives i Octave's eget programmeringssprog eller i C, C ++, Fortran, osv.

Kom godt i gang med GNU Octave

Der findes to metoder til installation af GNU Octave på et GNU / Linux-operativsystem. Den første er den nemmeste og indebærer at søge i oktaven & rdquo; pakke i programmet Software Center (f.eks. Synaptic Package Manager) af din distribution.

Den anden metode hjælper dig med at installere den nyeste version af produktet, men det indebærer at udføre kommandoer i en terminalemulator. Hvis du er ude med det, skal du downloade den nyeste kildepakke fra Softoware eller fra projektets officielle hjemmeside (se link i slutningen af ​​artiklen), gem den på din pc og udpak den.

Åbn en terminal emulator app, kør & cd'en & rsquo; kommando efterfulgt af stien til placeringen af ​​de udpakkede arkivfiler (fx cd /home/softoware/octave-3.8.2), kør & lsquo; ./ configure & amp; & amp; gøre & rsquo; kommando til at konfigurere og kompilere programmet, og kør derefter & lsquo; sudo make install & rsquo; kommando for at installere det. Brug det fra kommandolinjens grænseflade ved at køre & lsquo; oktav & rsquo; kommando.

Under emhætten

Under et kig under GNU Octave-programmet kan vi bemærke, at det er skrevet helt i C ++ programmeringssprog. Vi har installeret det i flere distributioner af GNU / Linux, herunder Arch Linux og Ubuntu ved hjælp af instruktionerne i ovenstående afsnit. Softwaren er kompatibel med 32-bit og 64-bit computers platforme.

Hvad er nyt i denne udgave:

  • En af de største nye funktioner til Octave 3.8.x udgivelsesserien er en grafisk brugergrænseflade. Det er den eneste ting, brugerne har bedt om oftest i løbet af de sidste par år, og nu er det næsten klar. Men fordi det ikke er helt så poleret, som vi gerne vil, har vi besluttet at vente til udgivelsesserien 4.0.x før du gør GUI til standardgrænsefladen (indtil da kan du bruge --force-gui mulighed for at starte GUI ).

Hvad er nyt i version:

  • En af de største nye funktioner til Octave 3.8.x udgivelsesserien er en grafisk brugergrænseflade. Det er den eneste ting, brugerne har bedt om oftest i løbet af de sidste par år, og nu er det næsten klar. Men fordi det ikke er helt så poleret, som vi gerne vil, har vi besluttet at vente til udgivelsesserien 4.0.x før du gør GUI til standardgrænsefladen (indtil da kan du bruge --force-gui mulighed for at starte GUI ).

Hvad er nyt i version 4.2.0:

  • En af de største nye funktioner til Octave 3.8.x udgivelsesserien er en grafisk brugergrænseflade. Det er den eneste ting, brugerne har bedt om oftest i løbet af de sidste par år, og nu er det næsten klar. Men fordi det ikke er helt så poleret, som vi gerne vil, har vi besluttet at vente til udgivelsesserien 4.0.x før du gør GUI til standardgrænsefladen (indtil da kan du bruge --force-gui mulighed for at starte GUI ).

Hvad er nyt i version 4.0.3:

  • En af de største nye funktioner til Octave 3.8.x udgivelsesserien er en grafisk brugergrænseflade. Det er den eneste ting, brugerne har bedt om oftest i løbet af de sidste par år, og nu er det næsten klar. Men fordi det ikke er helt så poleret, som vi gerne vil, har vi besluttet at vente til udgivelsesserien 4.0.x før du gør GUI til standardgrænsefladen (indtil da kan du bruge --force-gui mulighed for at starte GUI ).

Hvad er nyt i version 4.0.1:

  • En af de største nye funktioner til Octave 3.8.x udgivelsesserien er en grafisk brugergrænseflade. Det er den eneste ting, brugerne har bedt om oftest i løbet af de sidste par år, og nu er det næsten klar. Men fordi det ikke er helt så poleret, som vi gerne vil, har vi besluttet at vente til udgivelsesserien 4.0.x før du gør GUI til standardgrænsefladen (indtil da kan du bruge --force-gui mulighed for at starte GUI ).

Hvad er nyt i version 4.0.0:

  • En af de største nye funktioner til Octave 3.8.x udgivelsesserien er en grafisk brugergrænseflade. Det er den eneste ting, brugerne har bedt om oftest i løbet af de sidste par år, og nu er det næsten klar. Men fordi det ikke er helt så poleret, som vi gerne vil, har vi besluttet at vente til udgivelsesserien 4.0.x før du gør GUI til standardgrænsefladen (indtil da kan du bruge --force-gui mulighed for at starte GUI ).

Hvad er nyt i version 3.8.2:

  • En af de største nye funktioner til Octave 3.8.x udgivelsesserien er en grafisk brugergrænseflade. Det er den eneste ting, brugerne har bedt om oftest i løbet af de sidste par år, og nu er det næsten klar. Men fordi det ikke er helt så poleret, som vi gerne vil, har vi besluttet at vente til udgivelsesserien 4.0.x før du gør GUI til standardgrænsefladen (indtil da kan du bruge --force-gui mulighed for at starte GUI ).

Hvad er nyt i version 3.8.0:

  • En af de største nye funktioner til Octave 3.8 er en grafisk brugergrænseflade. Det er den eneste ting, brugerne har bedt om oftest i løbet af de sidste par år, og nu er det næsten klar. Men fordi det ikke er helt så poleret, som vi gerne vil, har vi besluttet at vente til udgivelsesserien 4.0.x før du gør GUI til standardgrænsefladen (indtil da kan du bruge --force-gui mulighed for at starte GUI ).
  • I betragtning af hvor lang tid og antallet af fejlrettelser og forbedringer er siden den sidste store frigivelses oktav, besluttede vi os også for at forsinke frigivelsen af ​​alle disse nye forbedringer længere, bare for at perfektere GUI'en. Så vær venlig at nyde Octave 3,8 udgivelsen og forhåndsvisningen af ​​den nye GUI. Vi tror, ​​at det fungerer ret godt, men vi ved også, at der er nogle åbenlyse grove pletter og mange ting, der kan forbedres.

Hvad er nyt i version 3.4.0:

  • BLAS og LAPACK biblioteker skal nu opbygge Octave. Undersættet af reference BLAS- og LAPACK-biblioteker er fjernet fra oktavkilderne.
  • Funktionen `opslag 'blev udvidet til at være mere nyttig til binær søgning generelt. Ved hjælp af denne forbedring blev ismember-funktionen omskrevet for væsentligt bedre ydeevne.
  • Real, integer og logiske matricer vil nu, når de bruges i indeksering, nu cache den interne index_vector-værdi (nulbaserede indekser), når de bruges som indekser, hvilket eliminerer konverteringsstraffen for efterfølgende indeksering af samme matrix. Dette indebærer især, at det ikke længere er nødvendigt at undgå gentagen indeksering ved logiske arrayer ved at finde funktionshensyn.
  • Logiske matricer behandles nu mere effektivt, når de bruges som indekser. Octave vil holde indekset som en logisk maske, medmindre forholdet mellem sande elementer er lille nok ved hjælp af en special kode. Tidligere blev alle logiske matricer altid først konverteret til indeksvektorer. Dette medfører besparelser i både hukommelse og computertid.
  • Funktionerne `sub2ind 'og` ind2sub' blev genimplementeret som kompilerede funktioner for bedre ydeevne. Disse funktioner er nu hurtigere, kan levere mere økonomiske resultater for intervaller og kan genbruge indeksbuffermekanismen beskrevet i foregående afsnit.
  • De indbyggede funktionækvivalenter til associative operatører (`plus ',` gange', 'mtimes', `og 'og` eller') er blevet udvidet til at acceptere flere argumenter. Dette er især nyttigt til opsummering (multiplicering mv.) Lister over objekter (af muligvis forskellige typer):
  • matrix_sum = plus (matrix_list {:});
  • En FTP-objekttype baseret på libcurl er blevet implementeret. Disse objekter tillader ftp-forbindelser, downloads og uploads, der skal administreres. For eksempel
  • fp = ftp ("ftp.octave.org); cd (fp," gnu / oktav "); mget (fp," oktav-3.2.3.tar.bz2 "); luk (fp);
  • Standardbetegnelsen for "assert (observed, expected)" er blevet afslappet for at anvende mindre streng kontrol, der ikke kræver, at internerne af værdierne matcher. Dette undgår tidligere gyldige tests fra at bryde på grund af nye interne klasser, der introduceres i fremtidige oktaversioner.
  • For eksempel var alle disse påstande gældende i Octave 3.0.x men falsk i 3.2.x på grund af nye optimeringer og forbedringer:
  • hævder (2 * linspace (1, 5, 5), 2 * (1: 5)) assert (nuller (0, 0), []) assert (2 * en (1, 5) (dem (1,5)))
  • Bibliotekets opførsel er 'ismatrix', `issquare 'og` issymmetrisk' blevet ændret for bedre sammenhæng. Funktionen `ismatrix 'returnerer nu sande for alle numeriske, logiske og tegn 2-D eller N-D-matricer. Tidligere returnerede 'ismatrix' falsk, hvis den første eller anden dimension var nul. Derfor er 'ismatrix ([])' falsk, mens `ismatrix (nuller (1,2,0)) 'var sandt.
  • Funktionen `issquare 'returnerer nu en logisk skalar og svarer til udtrykket
  • ismatrix (x) & & amp; ndims (x) == 2 & amp; rækker (x) == kolonner (x)
  • Dimensionen returneres ikke længere. Som et resultat giver `issquare ([]) 'nu rigtigt. Den `issymmetriske 'funktion kontrollerer nu for symmetri i stedet for Hermitianness. For sidstnævnte blev ishermitisk skabt. Også, logisk skalar returneres snarere end dimensionen, så `issymmetrisk ([]) 'er nu sandt. Funktionshåndtag er nu opmærksomme på overbelaste funktioner. Hvis en funktion er overbelastet, bestemmer håndtaget på tidspunktet for dens reference, hvilken funktion der skal ringes. En ikke-overbelastet version behøver ikke eksistere.
  • Overbelastningsfunktioner for indbyggede klasser (dobbelt, int8, celle osv.) er nu kompatible med Matlab.
  • Funktionshåndtag kan nu sammenlignes med == og! = operatørerne, såvel som `isequal'-funktionen.
  • Resultatet af sammenkobling (ved hjælp af []) og funktionerne 'cat', `horzcat 'og` vertcat' er blevet forbedret til multidimensionale arrays.
  • Operationsopgaveoperatørerne + =, - =, * = og / = opfører sig nu mere effektivt i visse tilfælde. For eksempel, hvis M er en matrix og S en skalær, så erklæringen
  • M + = S;
  • vil fungere på M's data på stedet, hvis den ikke deles af en anden variabel, hvilket normalt øger både tid og hukommelseseffektivitet. Kun valgte fælles kombinationer påvirkes, nemlig: matrix + = matrix matrix - = matrix matrix. * = Matrix matrix ./= matrix
  • matrix + = skalar matrix - = skalær matrix * = skalær matrix / = skalær
  • logisk matrix | = logisk matrix logisk matrix & = logisk matrix
  • hvor matrix og skalar tilhører samme klasse. Den venstre side skal være en simpel variabel reference.
  • Når unary operatører forekommer i udtryk, vil Octave også forsøge at udføre operationen, hvis det er et argument, der er et midlertidigt udtryk.
  • Effekten af ​​sammenligningsoperatører (, =) anvendt på komplekse tal er ændret for at være i overensstemmelse med den strenge rækkefølge, der er defineret af funktionerne "max", "min" og "sort". Nærmere bestemt sammenlignes komplekse tal ved leksikografisk sammenligning af paret `[abs (z), arg (z)] '. Tidligere blev kun virkelige dele sammenlignet; Dette kan trivielt opnås ved at indpakke operanderne i real ().
  • Den automatiske forenkling af komplekse beregningsresultater er ændret. Octave vil nu forenkle et komplekst tal med en nul imaginær del eller en hvilken som helst kompleks matrix, hvor alle elementer har en nul imaginær del til en reel værdi. Tidligere var dette kun gjort for positive nuller. Bemærk at opførelsen af ​​den komplekse funktion er uændret, og den producerer stadig en kompleks værdi, selvom den imaginære del er nul.
  • Som en bivirkning af koderefaktorering i liboctave er de binære logiske operationer nu lettere acceptable til compileroptimeringer og er dermed betydeligt hurtigere.
  • Octave giver nu brugerdefinerede `subsasgn'-metoder til optimering af overflødige kopier. Yderligere oplysninger finder du i manualen.
  • Mere effektiv matrix division håndtering. Octave kan nu håndtere udtrykkene M 'V M.' V V / M
  • (M er en matrix og V er en vektor) mere effektivt i visse tilfælde. Især hvis M er trekantet, vil alle tre udtryk blive håndteret af et enkelt opkald til xTRTRS (fra LAPACK) med passende flag. Tidligere krævede alle tre udtryk et fysisk transponering af M.
  • Mere effektiv håndtering af visse blandede reelle komplekse matrixoperationer. For eksempel, hvis RM er en reel matrix og CM en kompleks matrix, RM CM
  • kan nu evalueres enten som
  • kompleks (RM real (CM), RM-billede (CM))
  • eller som
  • kompleks (RM) CM,
  • afhængigt af målene. Den første form kræver flere tidspunkter og kopier, men halverer FLOP-tællerne, hvilket normalt giver bedre ydeevne, hvis RM har nok rækker. Tidligere blev den anden form altid brugt.
  • Matrix division er ligeledes påvirket.
  • Mere effektiv håndtering af trekantede matrixfaktorer returneres fra faktoriseringer. Funktionerne til beregning af QR-, LU- og Cholesky-faktoreringer returnerer nu automatisk de trekantede matrixfaktorer med det korrekte interne matrix_type-sæt, så det ikke skal beregnes, når matrixen bruges til division.
  • Den indbyggede `sum '-funktion håndterer nu den ikke-oprindelige summation (dvs. dobbelt præcisions sum af enkelt- eller heltalsindgange) mere effektivt og undgår en midlertidig konvertering af hele input-arrayet til doubler. Desuden kan `sum 'nu acceptere et ekstra option argument ved hjælp af en kompenseret summationsalgoritme frem for en ligetil sum, hvilket signifikant forbedrer præcisionen, hvis der sker en masse annullering i summeringen.
  • Den indbyggede `bsxfun'-funktion bruger nu optimeret kode til bestemte tilfælde, hvor indbyggede operatørhåndtag sendes ind. Optimeringerne vedrører nemlig operatørerne` plus ', `minus',` gange ', `ldivide' , 'rdivide', 'power', 'og', 'eller' (for logiske arrayer), relationelle operatører `eq ',` ne', `lt ',` le', `gt ',` ge' og funktionerne »min« og »max«. Optimeringer gælder kun, når begge operander er af samme indbyggede klasse. Blandede reelle / komplekse og single / double operationer konverterer først begge operander til en fælles type.
  • Funktionerne `strfind 'og` strrep' har nu udarbejdet implementeringer, hvilket letter væsentlig mere effektiv søgning og erstatning i strenge, især med længere mønstre. Koden for `strcat 'er vektoriseret og er nu meget mere effektiv, når mange strenge er sammenkædede. Funktionerne `strcmpi 'og` strncmpi' er nu indbyggede funktioner, der giver bedre ydeevne.
  • Matlab-stil ignorerer input- og outputfunktionsargumenter ved hjælp af tilde (~) understøttes nu. Ignorerede outputargumenter kan detekteres fra en funktion ved hjælp af den indbyggede funktion `isargout '. For yderligere oplysninger, se manualen.
  • Listen datatype, udgået siden introduktionen af ​​celler, er blevet fjernet.
  • Accumarray-funktionen er optimeret og er nu betydeligt hurtigere i visse vigtige tilfælde.
  • Opførelsen af ​​isreal og isnumeriske funktioner blev ændret til at være mere Matlab-kompatibel.
  • Heltaletematikken & amp; konvertering advarsler (oktav: int-konverter-nan, oktav: int-konverter-ikke-int-val, oktav: int-konverter-overløb, oktav: int-math-overløb) er fjernet.
  • rem og mod er nu indbyggede funktioner. De håndterer også heltalstyper effektivt ved hjælp af heltal aritmetik.
  • Sparsom indeksering og indekseret tildeling er for det meste omskrevet. Da Octave bruger komprimeret søjleopbevaring til sparsomme matricer, lægges der stor vægt på operationer, der manipulerer hele søjler. Sådanne operationer er nu betydeligt hurtigere, såvel som nogle andre vigtige tilfælde.
  • Endvidere er det nu muligt at forudfordele en sparsom matrix og derefter udfylde den ved opgaver, forudsat at de opfylder visse betingelser. For mere information, se 'spalloc' -funktionen, som ikke længere er en dummy. Derfor er nzmax og nnz ikke længere ens i oktave. Octave kan også producere en matrix med nnz & lt; nzmax som følge af andre operationer, så du bør konsekvent bruge nnz, medmindre du virkelig vil bruge nzmax (dvs. pladsen tildelt til ikke-nulelementer).
  • Sparsom sammenkædning er også påvirket, og sammenkædende sparsomme matricer, især større samlinger, er nu betydeligt mere effektive. Dette gælder både operatøren [] og katten / vertcat / horzcat.
  • Det er nu muligt at anvende xGESDD LAPACK-driverene til at beregne singulære værdisopdeling ved hjælp af svd (), i stedet for standard xGESVD, ved hjælp af konfigurationspseudo-variablen svd_driver. XGESDD-driveren kan være op til 6x gange hurtigere, når der anvendes singularvektorer, men rapporteres at være noget mindre robuste på stærkt dårligt konditionerede matricer.
  • Konfiguration pseudo-variabler, f.eks. page_screen_output eller confirm_recursive_rmdir (eller ovennævnte svd_driver) accepterer nu en "lokal" option som andet argument, og beder om, at ændringen skal fortrydes, når den aktuelle funktion vender tilbage: funktion [status, msg] = rm_rf (dir) confirm_recursive_rmdir (false, "local"); [status, msg] = rmdir (dir, "s"); ... endefunktion Ved returnering vil confirm_recursive_rmdir blive genoprettet til den værdi, den havde ved indtastning til funktionen, selv om der var efterfølgende ændringer af variablen i funktionen rm_rf eller nogen af ​​de funktioner, den kalder.
  • pkg accepterer nu a -forge-mulighed for at hente og installere pakker fra Octave Forge automatisk. For eksempel vil pkg install-forge General automatisk downloade den nyeste udgave af den generelle pakke og forsøge at installere den. Der gives ingen automatisk løsning af afhængigheder. Endvidere
  • pkg list -forge kan bruges til at liste alle tilgængelige pakker.
  • ** Den interne datarrepræsentation af strukturer er blevet fuldstændigt omskrevet for at gøre visse optimeringer mulige. Feltdataene kan nu deles mellem strukturer med samme nøgler men forskellige dimensioner eller værdier, hvilket gør operationer, der bevarer felterne hurtigere. Økonomiseret opbevaring bruges nu til skalære strukturer (ligesom de fleste andre skalarer), hvilket gør deres brug mere hukommelseseffektiv. Visse array-lignende operationer på strukturer (sammenkædning, ensartet cellefunktion, num2cell) har opnået en signifikant fremskyndelse. Desuden giver octave_scalar_map-klassen nu en enklere grænseflade til at arbejde med skalære strukturer inden for en C ++ DLD-funktion.
  • ** Der findes to nye formater til visning af tal:
  • format short eng format long eng
  • Begge displaynumre i ingeniørnotation, dvs. mantissa + eksponent, hvor eksponenten er et multipel af 3.
  • ** Følgende funktioner er nye i Octave 3.4:
  • accumdim erfcx nfields pqpnonneg uigetdir bitpack fileread nth_element quadcc uigetfile bitunpack fminbnd onCleanup randi uiputfile blkmm fskipl pbaspect repelems uimenu cbrt ifelse pie3 reset whitebg curl ishermitian powerset rsf2csf chop isindex ppder saveas daspect luupdate ppint strre divergens fusion ppjumps tekstlæs
  • ** Ved hjælp af billedfunktionen til visning af billeder med eksterne programmer som display, xv og xloadimage understøttes ikke længere. Image_viewer-funktionen er også blevet fjernet.
  • ** Opførelsen af ​​strukturopgaver til ikke-strukturelle værdier er blevet ændret. Tidligere var det muligt at overskrive en vilkårlig værdi: a = 1; a.x = 2;
  • Dette er ikke længere muligt, medmindre a er en tom matrix eller celle array.
  • ** Dlmread-funktionen er blevet udvidet til at give mulighed for at angive en brugerdefineret værdi for tomme felter.
  • ** Funktionerne dlmread og dlmwrite er blevet ændret for at acceptere fil-id'er (som returneret af fopen) ud over filnavne.
  • ** Octave kan nu optimere væk tolken overhead af et anonyme funktionshåndtag, hvis funktionen simpelthen kalder en anden funktion eller håndterer med nogle af dens parametre bundet til bestemte værdier. Eksempel: f = @ (x) sum (x, 1);
  • Når f hedder, viderestilles opkaldet til @sum med den vedhæftede konstant 1, og det anonyme funktionsopkald forekommer ikke på opkaldsstakken.
  • Uddaterede funktioner.
  • Følgende funktioner blev udskrevet i Octave 3.2 og vil blive fjernet fra Octave 3.6 (eller hvad version er den anden store udgivelse efter 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 spatan2 spkron str2mat spchol splchol unmark_command spchol2inv split unmark_rawcommand
  • Følgende funktioner er blevet udskrevet i oktav 3.4 og vil blive fjernet fra oktav 3.8 (eller hvad version er den anden store udgivelse efter 3.4):
  • autocor cellidx gammai krylovb værdier autocov afsendelse glpkmex replot betai fstat is_global saveimage
  • For kompatibilitet med Matlab er mu2lin (x) nu ækvivalent med mu2lin (x, 0).
  • ARPACK-biblioteket distribueres nu med Octave, så det ikke længere skal være tilgængeligt som en ekstern afhængighed, når man bygger Octave.

Hvad er nyt i version 3.2.3:

  • Octave 3.2.3 er en fejlfindingsløsning

Hvad er nyt i version 3.0.4:

  • Octave 3.0.4 er en fejlfinding. De fleste fejl rapporteret siden udgivelsen af ​​version 3.0.3 er blevet rettet. Bemærk at Octave 3.0 er væsentligt anderledes end Octave 2.1.x, især med hensyn til grafik, vejhåndtering og indbyggede variabler.

Lignende software

Jikes
Jikes

3 Jun 15

Jess
Jess

3 Jun 15

CMake
CMake

16 Aug 18

bin86
bin86

3 Jun 15

Andre software developer John W. Eaton

Octave
Octave

2 Jun 15

Kommentarer til GNU Octave

Kommentarer ikke fundet
Tilføj kommentar
Tænd billeder!