GNU Octave

软件截图:
GNU Octave
软件详细信息:
版本: 4.4.0 更新
上传日期: 22 Jun 18
开发: John W. Eaton
许可: 免费
人气: 327

Rating: 2.7/5 (Total Votes: 3)

GNU Octave 是一个开源且免费分发的命令行软件项目,旨在提供功能强大,易于使用且可扩展的高级语言,可用于处理数值计算


可用于数值求解线性和非线性问题

该软件可用于数值解决线性和非线性问题,以及执行各种数值实验。它与多范例数值计算环境Matlab兼容,可以用作面向批处理的语言。

此外,GNU Octave提供各种实用程序,允许您解决常见的数值线性代数问题,操纵多项式,集成普通函数,发现非线性方程的根,以及集成普通的微分代数和微分方程。 / p>

您可以使用动态加载的模块或用户定义的函数来扩展GNU Octave。这些可以用Octave自己的编程语言编写,也可以用C,C ++,Fortran等编写。

GNU Octave入门

有两种方法可以在GNU / Linux操作系统上安装GNU Octave。第一个是最简单的,涉及搜索“octave”和“ocdve”。在您的发行版的软件中心应用程序(例如Synaptic Package Manager)中打包。

第二种方法将帮助您安装最新版本的产品,但它涉及在终端仿真器中执行命令。如果您对此感到失望,请从Softoware或项目的官方主页下载最新的源代码包(请参阅文章末尾的链接),将其保存在您的PC上并打开包装。

打开终端模拟器应用,运行‘ cd’命令后跟提取的存档文件位置的路径(例如cd /home/softoware/octave-3.8.2),运行&。&configure / amp;&让&rsquo的;命令配置和编译程序,然后运行‘ sudo make install’命令安装它。通过运行‘ octave’从命令行界面使用它。命令。

引擎盖下

看看GNU Octave程序的内幕,我们可以注意到它完全是用C ++编程语言编写的。我们已经使用上一节中提供的说明将它安装在GNU / Linux的几个发行版中,包括Arch Linux和Ubuntu。该软件与32位和64位计算机平台兼容。

此新版本中的新功能

  • 一个Octave 3.8.x发布系列中最大的新功能是图形用户界面。这是用户在过去几年中经常要求的一件事,现在几乎已经准备好了。但是因为它没有我们想要的那么精致,所以我们决定等到4.0.x发布系列之后再将GUI作为默认界面(在此之前,您可以使用--force-gui选项启动GUI )。

版本中的新功能

  • Octave 3.8.x发布系列的最大新功能之一是图形用户界面。这是用户在过去几年中经常要求的一件事,现在几乎已经准备好了。但是因为它没有我们想要的那么精致,所以我们决定等到4.0.x发布系列之后再将GUI作为默认界面(在此之前,您可以使用--force-gui选项启动GUI )。

版本4.2.0中的新功能

  • Octave 3.8.x发布系列的最大新功能之一是图形用户界面。这是用户在过去几年中经常要求的一件事,现在几乎已经准备好了。但是因为它没有我们想要的那么精致,所以我们决定等到4.0.x发布系列之后再将GUI作为默认界面(在此之前,您可以使用--force-gui选项启动GUI )。

版本4.0.3中的

新功能

  • Octave 3.8.x发布系列的最大新功能之一是图形用户界面。这是用户在过去几年中经常要求的一件事,现在几乎已经准备好了。但是因为它没有我们想要的那么精致,所以我们决定等到4.0.x发布系列之后再将GUI作为默认界面(在此之前,您可以使用--force-gui选项启动GUI )。

版本4.0.1中的新功能

  • Octave 3.8.x发布系列的最大新功能之一是图形用户界面。这是用户在过去几年中经常要求的一件事,现在几乎已经准备好了。但是因为它没有我们想要的那么精致,所以我们决定等到4.0.x发布系列之后再将GUI作为默认界面(在此之前,您可以使用--force-gui选项启动GUI )。

版本4.0.0中的新功能

  • Octave 3.8.x发布系列的最大新功能之一是图形用户界面。这是用户在过去几年中经常要求的一件事,现在几乎已经准备好了。但是因为它没有我们想要的那么精致,所以我们决定等到4.0.x发布系列之后再将GUI作为默认界面(在此之前,您可以使用--force-gui选项启动GUI )。

版本3.8.2中

什么是新

  • Octave 3.8.x发布系列的最大新功能之一是图形用户界面。这是用户在过去几年中经常要求的一件事,现在几乎已经准备好了。但是因为它没有我们想要的那么精致,所以我们决定等到4.0.x发布系列之后再将GUI作为默认界面(在此之前,您可以使用--force-gui选项启动GUI )。

版本3.8.0中的新功能

  • Octave 3.8最大的新功能之一是图形用户界面。这是用户在过去几年中经常要求的一件事,现在几乎已经准备好了。但是因为它没有我们想要的那么精致,所以我们决定等到4.0.x发布系列之后再将GUI作为默认界面(在此之前,您可以使用--force-gui选项启动GUI )。
  • 鉴于自上次主要版本Octave以来的时间长度以及错误修复和改进的数量,我们还决定不再推迟所有这些新改进的发布,只是为了完善GUI。所以请享受Octave的3.8版本和新GUI的预览。我们相信它运作得相当好,但我们也知道有一些明显的粗糙点和许多可以改进的东西。

版本3.4.0中的新功能

  • 现在需要BLAS和LAPACK库来构建Octave。已从Octave源中删除了参考BLAS和LAPACK库的子集。
  • `lookup'函数被扩展为对通用二进制搜索更有用。使用此改进,重写了ismember函数以获得更好的性能。
  • 当在索引中使用时,实数,整数和逻辑矩阵现在将在成功用作索引时缓存内部index_vector值(从零开始的索引),从而消除了由相同矩阵进行后续索引的转换代价。特别是,这意味着不再需要为了性能原因而使用find来避免逻辑数组重复索引。
  • 当用作索引时,逻辑矩阵现在被更有效地处理。 Octave将索引保持为逻辑掩码,除非使用专门的代码,真实元素的比例足够小。以前,所有逻辑矩阵始终首先转换为索引向量。这样可以节省内存和计算时间。
  • `sub2ind'和`ind2sub'函数作为编译函数重新实现,以获得更好的性能。这些函数现在更快,可以为范围提供更节约的结果,并且可以重用前一段中描述的索引缓存机制。
  • 关联运算符(`plus',`times',`mtimes',`和',和'或')的内置函数已经扩展为接受多个参数。这对于对象(可能是不同类型)的求和(乘法等)列表特别有用:
  • matrix_sum = plus(matrix_list {:});
  • 已实现基于libcurl的FTP对象类型。这些对象允许管理ftp连接,下载和上载。例如,
  • fp = ftp(“ftp.octave.org); cd(fp,”gnu / octave“); mget(fp,”octave-3.2.3.tar.bz2“); close(fp);
  • `assert(observe,expected)'的默认行为已经放宽,采用不太严格的检查,不需要值的内部匹配。由于未来Octave版本中引入了新的内部类,这可以避免以前有效的测试中断。
  • 例如,由于新的优化和改进,所有这些断言在Octave 3.0.x中都是正确的,但在3.2.x中是错误的:
  • 断言(2 * linspace(1,5,5),2 *(1:5))断言(零(0,0),[])置位(2 *个(1,5),(2) ((1,5)))
  • 库函数`ismatrix',`issquare'和`issymmetric'的行为已经改变,以提高一致性。对于所有数字,逻辑和字符2-D或N-D矩阵,`ismatrix'函数现在返回true。以前,如果第一维或第二维为零,则`ismatrix'返回false。因此,`ismatrix([])'是假的,而`ismatrix(零(1,2,0))'是真的。
  • `issquare'函数现在返回一个逻辑标量,相当于表达式
  • ismatrix(x)&& ndims(x)== 2&& rows(x)== columns(x)
  • 不再返回尺寸。结果,`issquare([])'现在产生真。 `issymmetric'函数现在检查对称性而不是Hermitianness。对于后者,ishermitian被创造了。此外,返回逻辑标量而不是维度,因此`issymmetric([])'现在为真。函数句柄现在可以识别重载的函数。如果函数过载,则句柄在其引用时确定要调用哪个函数。不需要存在非重载版本。
  • 内置类(double,int8,cell等)的重载函数现在与Matlab兼容。
  • 现在可以将函数句柄与==和!=运算符以及`isequal'函数进行比较。
  • 多维数组已经改进了串联(使用[])和函数`cat',`horzcat'和`vertcat'的性能。
  • 在某些情况下,操作赋值运算符+ =, - =,* =和/ =现在表现得更有效。例如,如果M是矩阵而S是标量,那么语句
  • M + = S;

  • 如果没有其他变量共享,
  • 将对M的数据进行就地操作,通常会增加时间和内存效率。只有选定的常见组合受到影响,即:矩阵+ =矩阵矩阵 - =矩阵矩阵。* =矩阵矩阵./=矩阵
  • 矩阵+ =标量矩阵 - =标量矩阵* =标量矩阵/ =标量
  • 逻辑矩阵| =逻辑矩阵逻辑矩阵& =逻辑矩阵
  • 其中矩阵和标量属于同一个类。左侧必须是一个简单的变量引用。
  • 此外,当表达式中出现一元运算符时,如果它的参数是临时表达式,Octave也会尝试就地执行操作。
  • 应用于复数的比较运算符(,=)的效果已更改为与“max”,“min”和“sort”函数定义的严格排序一致。更具体地,通过对“[abs(z),arg(z)]”的词典比较来比较复数。以前,只比较实际零件;这可以通过将操作数包装在real()。
  • 中来实现
  • 复杂计算结果的自动简化已经改变。 Octave现在将简化具有零虚部或任何复数矩阵的任何复数,其中所有元素具有零虚部到实数值。以前,这只是针对正零来完成的。请注意,复数函数的行为不变,即使虚部为零,它仍会产生复数值。
  • 作为liboctave中代码重构的副作用,二进制逻辑操作现在更容易适应编译器优化,因此显着更快。
  • Octave现在允许用户定义的“subsasgn”方法来优化冗余副本。有关详细信息,请参阅手册。
  • 更有效的矩阵划分处理。 Octave现在能够处理表达式M'V M.' V V / M
  • 在某些情况下,
  • (M是矩阵,V是矢量)更有效。特别是,如果M是三角形,则所有三个表达式都将通过对xTRTRS(来自LAPACK)的单次调用来处理,并带有适当的标志。以前,所有三个表达式都需要M的物理转置。
  • 更有效地处理某些混合实复矩阵运算。例如,如果RM是真实矩阵而CM是复数矩阵,则RM CM
  • 现在可以评估为
  • 复杂(RM real(CM),RM imag(CM))
  • complex(RM)CM,
  • 取决于尺寸。第一种形式需要更多的临时和复制,但是FLOP计数减半,如果RM有足够的行,通常会带来更好的性能。以前,总是使用第二种形式。
  • 矩阵划分同样受到影响。
  • 更有效地处理从分解中返回的三角矩阵因子。用于计算QR,LU和Cholesky因子分解的函数现在将自动返回具有适当内部matrix_type集的三角矩阵因子,因此当矩阵用于除法时不需要计算它。
  • 内置的“sum”函数现在可以更有效地处理非本机求和(即单个或整数输入的双精度和),从而避免将整个输入数组临时转换为双精度。此外,“sum”现在可以接受额外的选项参数,使用补偿求和算法而不是直接求和,如果在求和中发生大量取消,则可以显着提高精度。
  • 内置的`bsxfun'函数现在使用优化代码来处理传入内置运算符句柄的某些情况。即,优化涉及运算符'plus',`minus',`times',`ldivide' ,`rdivide',`power',`和',`或'(对于逻辑数组),关系运算符`eq',`ne',`lt',`le',`gt',`ge',和函数“min”和“max”。优化仅适用于两个操作数具有相同内置类的情况。混合的实数/复数和单/双操作将首先将两个操作数转换为通用类型。
  • `strfind'和`strrep'函数现在已经编译了实现,有助于显着提高字符串中的搜索和替换效率,特别是对于更长的模式。 'strcat'的代码已经过矢量化,现在连接多个字符串时效率更高。 `strcmpi'和`strncmpi'函数现在是内置函数,提供更好的性能。
  • 现在支持使用波浪号(〜)忽略输入和输出函数参数的Matlab样式。可以使用内置函数“isargout”从函数中检测忽略的输出参数。有关详细信息,请参阅手册。
  • 自引入单元格以来不推荐使用的list数据类型已被删除。
  • accumarray功能已经过优化,现在在某些重要情况下显着更快。
  • isreal和isnumeric函数的行为被更改为更兼容Matlab。
  • 整数数学&转换警告(Octave:int-convert-nan,Octave:int-convert-non-int-val,Octave:int-convert-overflow,Octave:int-math-overflow)已被删除。
  • rem和mod现在是内置函数。它们还使用整数运算有效地处理整数类型。
  • 稀疏索引和索引分配大部分已被重写。由于Octave使用压缩列存储用于稀疏矩阵,因此主要关注操作整列的操作。此类操作现在明显更快,以及其他一些重要案例。
  • 此外,现在可以预先分配稀疏矩阵,并随后通过分配填充它,前提是它们满足某些条件。有关更多信息,请参阅`spalloc'函数,它不再仅仅是虚拟函数。因此,在Octave中,nzmax和nnz不再总是相等。 Octave也可以产生nnz <1的矩阵。 nzmax是其他操作的结果,所以除非你真的想使用nzmax(即为非零元素分配的空间),否则你应该始终使用nnz。
  • 稀疏连接也受到影响,并且连接稀疏矩阵,尤其是更大的集合,现在效率更高。这适用于[]运算符和cat / vertcat / horzcat函数。
  • 现在可以选择使用xGESDD LAPACK驱动程序,使用配置伪变量svd_driver,使用svd()而不是默认的xGESVD来计算奇异值分解。当请求奇异向量时,xGESDD驱动程序的速度可提高6倍,但据报道,在病态严重的矩阵中,它的稳定性会稍差。
  • 配置伪变量,例如page_screen_output或confirm_recursive_rmdir(或上面提到的svd_driver),现在接受“local”选项作为第二个参数,请求在当前函数返回时撤消更改:function [status,msg] = rm_rf(dir)confirm_recursive_rmdir(false,“local”); [status,msg] = rmdir(dir,“s”); ... endfunction返回时,confirm_recursive_rmdir将恢复为进入函数时的值,即使函数rm_rf或其调用的任何函数中的变量有后续更改。
  • pkg现在接受-forge选项,用于自动从Octave Forge下载和安装软件包。例如,pkg install -forge general将自动下载常规包的最新版本并尝试安装它。不提供自动解析依赖关系。此外,
  • pkg list -forge可用于列出所有可用包。
  • **结构的内部数据表示已完全重写,以使某些优化可行。现在可以在具有相同键但具有不同维度或值的结构之间共享字段数据,从而使得更快地保留字段的操作。经济型存储现在用于标量结构(就像大多数其他标量一样),使其使用更具内存效率。结构上的某些类似数组的操作(连接,统一cellfun,num2cell)已经获得了显着的加速。另外,octave_scalar_map类现在提供了一个更简单的接口来处理C ++ DLD函数中的标量结构。
  • **有两种新格式可用于显示数字:
  • format short eng format long eng
  • 两个以工程符号显示数字,即尾数+指数,其中指数是3的倍数。
  • **以下功能是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 strread divergence merge ppjumps textread
  • **不再支持使用图像功能查看具有外部程序(如display,xv和xloadimage)的图像。 image_viewer功能也已删除。
  • **结构分配给非结构值的行为已更改。以前,可以覆盖任意值:a = 1; a.x = 2;
  • 除非a是空矩阵或单元格数组,否则不再可能。
  • ** dlmread函数已扩展为允许为空字段指定自定义值。
  • **除文件名外,dlmread和dlmwrite函数已被修改为接受文件ID(由fopen返回)。
  • ** Octave现在可以优化匿名函数句柄的解释器开销,如果函数只是调用另一个函数或句柄,其某些参数绑定到某些值。示例:f = @(x)sum(x,1);
  • 当调用f时,调用将被转发到@sum并附加常量1,并且调用堆栈上不会发生匿名函数调用。
  • 弃用功能。
  • 以下功能在Octave 3.2中已弃用,将从Octave 3.6中删除(或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
  • 以下函数已在Octave 3.4中弃用,将从Octave 3.8中删除(或3.4版之后的第二个主要版本):
  • autocor cellidx gammai krylovb值autocov dispatch glpkmex replot betai fstat is_global saveimage
  • 为了与Matlab兼容,mu2lin(x)现在相当于mu2lin(x,0)。
  • ARPACK库现在与Octave一起分发,因此在构建Octave时不再需要作为外部依赖项使用。

版本3.2.3中的新功能

  • Octave 3.2.3是一个修复错误的版本

版本3.0.4中的新功能

  • Octave 3.0.4是一个修复错误的版本。自3.0.3版本发布以来报告的大多数错误已得到修复。请注意,Octave 3.0与Octave 2.1.x有很大不同,特别是在图形,路径处理和内置变量方面。

类似的软件

KBasic
KBasic

2 Jun 15

CURSEL
CURSEL

3 Jun 15

CMake
CMake

16 Aug 18

Pyrex
Pyrex

3 Jun 15

显影剂的其他软件 John W. Eaton

Octave
Octave

2 Jun 15

意见 GNU Octave

评论没有发现
添加评论
打开图片!