linux 科学计算器

科学界的Linux

Linux在科学界中占有举足轻重的地位也就不足为奇了。 从高性能计算集群到可视化软件的解决方案比比皆是。 甚至还有一个完整的基于Red Hat Enterprise Linux的Linux发行版,该发行版专门用于科学计算,并适当地命名为Scientific Linux。

贤哲和热情的Python发行版

本文研究了使用Linux工作站进行科学计算的两种不同方式。 第一个是Sage开源数学系统,第二个是Enthought Python发行版(EPD)。 两者都使用了许多核心的开源Python工具进行了繁重的工作。 如果要尝试使用它们,请使用Ubuntu软件管理器安装各个组件。

Sage是两者中较全面的,因为它在许多不同的基础引擎上更像是一个外壳。 在Sage命令行中,您甚至可以与诸如MATLAB或Mathematica之类的商业产品进行交互。 在Sage提示符下,您实际上可以与IPython交互以访问其所有功能。 当您开始探索Sage的功能时,还必须考虑对象和方法。 Sage包含许多不同的计算机代数系统,并允许用户从命令行与其进行交互。

重要的是要注意,Sage是基于Python的,但是会在将每个语句传递给Python解释器之前进行预解析。 当查看简单的交互式Sage命令时,这可能会引起一些混乱。 这种行为的基本原理是希望从数学意义上尽可能直观地在Sage中键入命令。 一个很好的例子是求幂的符号。 在纯Python中,您必须键入2**4才能将2提高到四次方。 在Sage中,使用向上箭头符号(^),如2^4 。 Sage还处理某些操作(例如整数除法),而不同于基本的Python。

NumPy和SciPy

Sage和EDP的基本难题中最著名的两个部分是NumPy和SciPy。 这两个项目都是从1990年代中期到后期开始的,最初是由现为Enthought的员工Travis Oliphant启动的。 NumPy提供了处理数组和矩阵的核心数值方法。 SciPy依赖于NumPy的基本数组数据结构,并且包含从线性代数到信号处理的各种模块。 Enthought是这两个项目的赞助商,并将继续为新版本做出重大贡献。

安装鼠尾草

有几个选项可用于安装Sage。 要在不进行实际安装的情况下让Sage外观,您可以使用实时CD版本。 您还可以在虚拟机(例如Oracle VM VirtualBox或VMware Player)中运行实时CD。 本文着眼于在运行最新版本Ubuntu(12.04)的物理机和虚拟机上安装Sage。

物理机

从源代码安装Sage是在Unbuntu 12.04上启动和运行的最可靠方法,因为该操作系统是最近才发布的。 下载源tarball并将其解压缩到方便的目录中。 您还需要在构建之前安装一些先决条件,您可以使用以下命令来完成这些先决条件:

sudo apt-get install build-essential gfortran
sudo apt-get install texlive xpdf evincesudo apt-get install tk8.5-dev

安装必备组件之后,就应该准备构建Sage,可以使用以下命令启动它:

make

此时,去看电影或小睡一下。 在典型的台式机上,整个构建过程可能需要几个小时。 如果一切正常,您应该会看到如图1所示的屏幕。

图1. Sage构建屏幕

虚拟机

如果您不太喜欢冒险,只想开始使用Sage,则在虚拟机上进行安装是一个不错的选择。 可在Sage站点上下载Open Virtualization Archive(OVA)软件包以及Fedora 16和Ubuntu 10.04.3。的二进制软件包。 OVA是单个软件包文件(通常是tar文件),其中包含以开放虚拟化格式(OVF)启动虚拟机所需的所有文件。

使用鼠尾草

安装了Sage之后,就可以开始数学发现和探索的旅程了。 Sage同时具有命令行和基于Web的界面。

命令行界面

要从构建Sage的目录中启动命令行版本,只需键入以下命令:

./sage

图2显示了Sage解释器的示例以及前面提到的一些数学解释。

图2. Sage命令行界面和数学解释

整数除法的差异与Python处理操作类型(整数,浮点数等)的方式有关。 在Python中,表达式2/3分配一个整数结果,该结果四舍五入为零。 Sage将除法运算符视为有理数的构造函数,这意味着您可以像在纸上一样对分数进行运算。 例如,如果在Sage提示符下键入2/3 + 2/3 ,则结果为4/3 。 如果在Python中键入相同的内容,则结果为0 。 您可以使用float()int()隐式地强制使用文字类型, 如图2所示 。

基于Web的界面

要使用Sage Notebook,可以在启动Sage之后键入notebook()或使用以下命令:

./sage --notebook

这将启动Sage服务器,并打开默认的Web浏览器到Sage Notebook主页。 您会在笔记本中找到许多有助于操作的功能,例如将工作表保存和加载到文件中,以及常规的复制,删除和重命名功能。 Sage通过图3中的共享和发布功能促进了协作工作。

图3. Sage Notebook功能

计算机代数包

基本的Sage发行版包括许多计算机代数软件包,包括GAP,Maxima,PARI和Singular。 每个人在数学界都有自己的追随者,并提供略有不同的功能。 这里的关键是Sage在基本发行版中包括了每个软件包,这意味着您不必单独下载和安装它们。

图4显示了使用Maxima执行几个矩阵运算的示例。 这是使用Sage Notebook完成的,它以黑色显示用户输入,以蓝色显示输出。 前两行创建一个矩阵,其条目等于i / j,其中i和j的范围是1到4。请注意,这些是有理数(分数)。

图4. Maxima的矩阵运算

发表科学论文

发表科学论文是教育界许多人的要求。 Sage要求每个对象都具有LaTeX表示形式。 这与使用TeX语言生成具有出版质量的图形和文本的需求直接相关。 请注意,您需要完整安装TeX才能利用Sage提供的所有功能。

安装EPD

使用Python进行科学计算是作为一家公司的宗旨。 Enthought的商业产品产品和支持是支付账单的主要方式,但是它们仍然以很大的方式为开源社区做出了贡献。 他们的贡献来自直接在NumPy和SciPy代码库上的工作,并在年度PyCon会议上进行介绍并主办了SciPy会议。

您可以使用Ubuntu软件管理器来安装与IPython,NumPy和SciPy一起运行所需的各种程序,也可以简单地下载并安装EPD的免费版本,称为EPD Free。 Enthought提供了32位和64位版本的EPD Free,这些版本已在Red Hat,Ubuntu和openSUSE上进行了测试。 他们确实警告说,某些64位Linux系统不包含32位库,因此需要该软件包的64位版本。

要安装EPD Free,请先下载安装程序脚本,然后使用以下命令运行它:

bash epd_free-7-2-2-rh5-x86.sh

为了将来更容易启动EPD,您需要在Shell启动文件中添加几行(.cshrc或.bash_profile)。 Ubuntu使用bash shell作为默认设置,因此我将基于此显示代码。 对于本文,我使用了以下几行:

export PATH=/home/paul/Downloads/epd_free-7.2-2-rh5-x86_64/bin:$PATH

使用EPD

IPython是EPD和Sage之间的另一个共同点,因为它是主要的用户界面工具。 EPD既安装了命令行界面又安装了基于Web的笔记本,就像Sage一样。

命令行界面

基于Qt的控制台提供了一些增强的功能,包括使用Pygments库突出显示完整的语法。 它还提供了进行在线绘图的功能。 要获得此功能,可以使用以下命令启动IPython:

ipython --pylab

图5显示了带有嵌入式图的Qt控制台。

图5.创建一个新的PyDev项目

基于Web的界面

IPython(0.12)的最新版本包括与Sage类似的基于Web的笔记本功能。 要获得笔记本的功能,您需要安装多个依赖项,包括ZeroMQ和Tornado Web服务器。 要从命令行启动笔记本,请在终端窗口中键入以下内容:

ipython notebook

这将启动Tornado Web引擎,并启动向仪表板页面打开的默认Web浏览器。 如果然后选择默认笔记本,应该会看到一个如图6所示的新窗口。

图6. iPython Notebook

与Web笔记本不同的一件事是,要执行代码,需要使用Control-Enter 。 这样就可以输入多行代码, 如图6所示 ,并使输入框中的所有内容顺序执行。 因此,您可以轻松地将功能分解为可管理的块。

您可以使用Markdown语法注释笔记本。 如果您不熟悉Markdown,从本质上讲,它是使用纯文本创建带格式的超文本标记语言(HTML)的一种方法。 例如,在HTML中,一个井号(#)后面加一个空格表示H1,而对H2则使用两个井号,依此类推。 这使您可以添加注释或文档以补充代码和图形。

大熊猫

Python数据分析库(或pandas)是与SciPy和NumPy有联系的另一种工具,专门为解决数据分析的任务而创建。 Pandas包含大量库以及一些标准数据模型,以提供有效处理大型数据集所需的工具。 逗号分隔值(CSV)文件代表在相关方之间分发数据的最常用方法之一。 熊猫提供了优化的库功能,可以读写多种文件格式,包括CSV和高效的HDF5格式。

read_csv模块知道如何解析第一行中带有标题信息的典型CSV文件。 它还知道如何使用内置的解析器处理带有日期或时间的文件。 Pandas包含一个datetools模块,其中包含一长串用于执行各种日期数学的操作例程。 清单1显示了pandas文档中的代码片段,展示了如何查找距另一个日期四个月零五天的日期:

清单1.熊猫日期投影示例
d = datetime(2012, 4, 20)
d + pandas.DateOffset(months=4, days=5)
datetime.datetime(2012, 8, 25, 0, 0)

在对大型数据集进行切片和切块时,Pandas确实令人眼前一亮。 在将数据导入本机数据结构之后,您便可以使用各种各样的工具来执行任何类型的操作。 您可以使用标准的Python切片语法对数据进行切片,对全部或部分数据执行操作,或使用matplotlib对其进行绘制。 如果您需要执行任何数据操作任务,那么您肯定想跟上熊猫的发展。

结语

毫无疑问,Linux具有很高的资格,可以支持您可以执行的几乎任何科学计算任务。 它在学术界得到了大力支持,并Swift吸引了新的行业用户,他们正在寻找减少软件预算的方法。 这些工具提供了足以替代其商业对手的工具,而且最重要的是,它们都是免费的。 对于寻求全面支持软件的客户,有Enthought及其EPD商业产品。 他们为所有付费客户提供全面的客户支持和培训。


翻译自: https://www.ibm.com/developerworks/opensource/library/l-science-compute/index.html

linux 科学计算器

linux 科学计算器_探索Linux作为科学计算平台相关推荐

  1. centos 计算器_在Linux命令行中使用计算器的5个命令详解

    大家好,我是良许. 在使用 Linux 时,我们有时会需要做一些计算,那么我们就可能需要用到计算器.在 Linux 命令行里,有许多计算器工具,这些命令行计算器可以让我们执行科学计算.财务计算或者一些 ...

  2. 数据科学项目_完整的数据科学组合项目

    数据科学项目 In this article, I would like to showcase what might be my simplest data science project ever ...

  3. linux用计算器的命令,linux计算器命令

    linux 自带了2个命令可以支持做基本的数学计算,不想使用命令可以用python或其他 2个命令很好记,一个是dc 其实是表达式求值栈操作,另一个是bc,其实是一种解释性语言了,支持各种while ...

  4. 科学型计算机开四次方,电脑上的科学计算器怎么开根号(科学计算器开4次方根操作方法)...

    原标题:电脑上的科学计算器怎么开根号(科学计算器开4次方根操作方法) 大家应该都知道,2017年中级会计职称考试全面实行无纸化,考生要在电脑上完成整个答题过程.说起这个,最让考生们头疼的可能就是计算器 ...

  5. c linux time微秒_学习linux,看这篇1.5w多字的linux命令详解(6小时讲明白Linux)

    用心分享,共同成长 没有什么比每天进步一点点更重要了 本篇文章主要讲解了一些linux常用命令,主要讲解模式是,命令介绍.命令参数格式.命令参数.命令常用参数示例.由于linux命令较多,我还特意选了 ...

  6. centos linux引导修复_【Linux 运维】 Centos7.x 系统修复模式

    一.linux的运行级别: 运行级别就是来确定系统启动时到底启动那个服务. linux默认有7个运行级别: 0 关机 1 单用户模式,用于系统修复 2 不完全的命令模式,不含NFS服务 3 完全的命令 ...

  7. linux 日志乱码_这些 Linux 技巧大大提高你的工作效率

    (给Linux爱好者加星标,提升Linux技能) 作者:守望(本文来自作者投稿,简介见末尾) www.yanbinghu.com/2019/03/24/44171.html 前言 linux中的一些小 ...

  8. linux系统安装金蝶_金蝶linux启动 金蝶智慧记进销存

    linux如何启动? 1.在Linux的首页使用Ctrl alt T,打开终端. 2.Linux支持多终端,可以再使用Ctrl alt T命令打开多个终端. 3.通过"search your ...

  9. linux 嵌入式 快照_基于Linux的嵌入式启动优化的研究

    基于Linux的嵌入式启动优化的研究 论文 开题分析 周报 启动 基于Linux嵌入式系统启动加速的研究 一. 所选课题的目的和意义 随着科学技术的蓬勃发展,计算机被更多的人使用,并与人类对额生活结合 ...

最新文章

  1. LeetCode Non-overlapping Intervals(dp,greedy)
  2. C/C++: libcurl获取网页内容
  3. SAP 质检使用非物料基本单位
  4. 使用 ADS 渲染 SAP Adobe Form 的性能分析
  5. 闰秒导致MySQL服务器的CPU sys过高
  6. SecureDrop 0.3,LibreOffice Online和更多新闻
  7. 【干货】31篇关于深度学习必读论文汇总(附论文下载地址)
  8. 纯js分页代码(简洁实用)
  9. input type=file与cursor:pointer的兼容性问题
  10. 使用GDB进行系统调用过程简析
  11. 第四次团队作业--选题
  12. vray5.1 for sketchup 安装教程
  13. 批量导入手机通讯录_大批量手机号导入通讯录软件
  14. 1005打印任务取消不了 hp_1005打印任务取消不了 hp_解决hp1005打印机无法打印故障...
  15. QS排名前70-100的英国大学怎么选?
  16. 疯狂创客圈 JAVA 高并发 总目录
  17. gradle project sync failed.please fix your project and try again-Android Studio3.1.2运行出错
  18. 非常值得收藏的书签栏,程序员学习与设计相关的网站(有附件下载)
  19. 国内CDN行业优质服务商
  20. 2.控制结构(选择、循环)

热门文章

  1. 俄语使用计算机怎么说,计算机专业中常用的俄语词汇
  2. java 每天执行_java Timer 定时每天凌晨1点执行任务
  3. 页面第一次数据不出来,刷新一次数据才会出来
  4. flex布局还要使用overflow-x:scroll;的问题
  5. [附源码]JAVA+ssm计算机毕业设计房地产销售系统(程序+Lw)
  6. 针对提出的意见的改进
  7. 程序员笑话 ps 有点老
  8. 百亿Cloud VR市场空间将打开,华为云驱动5G+XR新裂变
  9. Axure RP小技巧:如何利用矩形制作各种形状
  10. 动漫插画网课学费大概多少钱