Scientific Computing with Scala

Vytautas Jancauskas

  • 出版商: Packt Publishing
  • 出版日期: 2016-04-29
  • 售價: $1,830
  • 貴賓價: 9.5$1,739
  • 語言: 英文
  • 頁數: 232
  • 裝訂: Paperback
  • ISBN: 1785886940
  • ISBN-13: 9781785886942
  • 相關分類: JVM 語言
  • 下單後立即進貨 (約3~4週)

買這商品的人也買了...

商品描述

Learn to solve scientific computing problems using Scala and its numerical computing, data processing, concurrency, and plotting libraries

About This Book

  • Parallelize your numerical computing code using convenient and safe techniques.
  • Accomplish common high-performance, scientific computing goals in Scala.
  • Learn about data visualization and how to create high-quality scientific plots in Scala

Who This Book Is For

Scientists and engineers who would like to use Scala for their scientific and numerical computing needs. A basic familiarity with undergraduate level mathematics and statistics is expected but not strictly required. A basic knowledge of Scala is required as well as the ability to write simple Scala programs. However, complicated programming concepts are not used in the book. Anyone who wants to explore using Scala for writing scientific or engineering software will benefit from the book.

What You Will Learn

  • Write and read a variety of popular file formats used to store scientific data
  • Use Breeze for linear algebra, optimization, and digital signal processing
  • Gain insight into Saddle for data analysis
  • Use ScalaLab for interactive computing
  • Quickly and conveniently write safe parallel applications using Scala's parallel collections
  • Implement and deploy concurrent programs using the Akka framework
  • Use the Wisp plotting library to produce scientific plots
  • Visualize multivariate data using various visualization techniques

In Detail

Scala is a statically typed, Java Virtual Machine (JVM)-based language with strong support for functional programming. There exist libraries for Scala that cover a range of common scientific computing tasks – from linear algebra and numerical algorithms to convenient and safe parallelization to powerful plotting facilities. Learning to use these to perform common scientific tasks will allow you to write programs that are both fast and easy to write and maintain.

We will start by discussing the advantages of using Scala over other scientific computing platforms. You will discover Scala packages that provide the functionality you have come to expect when writing scientific software. We will explore using Scala's Breeze library for linear algebra, optimization, and signal processing. We will then proceed to the Saddle library for data analysis. If you have experience in R or with Python's popular pandas library you will learn how to translate those skills to Saddle. If you are new to data analysis, you will learn basic concepts of Saddle as well. Well will explore the numerical computing environment called ScalaLab. It comes bundled with a lot of scientific software readily available. We will use it for interactive computing, data analysis, and visualization. In the following chapters, we will explore using Scala's powerful parallel collections for safe and convenient parallel programming. Topics such as the Akka concurrency framework will be covered. Finally, you will learn about multivariate data visualization and how to produce professional-looking plots in Scala easily. After reading the book, you should have more than enough information on how to start using Scala as your scientific computing platform

Style and approach

Examples are provided on how to use Scala to do basic numerical and scientific computing tasks. All the concepts are illustrated with more involved examples in each chapter. The goal of the book is to allow you to translate existing experience in scientific computing to Scala.

商品描述(中文翻譯)

學習使用Scala及其數值計算、數據處理、並行處理和繪圖庫來解決科學計算問題。

關於本書:
- 使用方便且安全的技術並行化您的數值計算代碼。
- 在Scala中實現常見的高性能科學計算目標。
- 學習數據可視化以及如何在Scala中創建高質量的科學圖表。

本書適合對科學和數值計算需求使用Scala的科學家和工程師。預期讀者具備本科水平的數學和統計基礎知識,但不是必需的。同時需要基本的Scala知識和編寫簡單Scala程序的能力。然而,本書不使用複雜的編程概念。任何希望探索使用Scala編寫科學或工程軟件的人都能從本書中受益。

您將學到的內容包括:
- 編寫和讀取各種常用的用於存儲科學數據的文件格式。
- 使用Breeze進行線性代數、優化和數字信號處理。
- 了解Saddle進行數據分析。
- 使用ScalaLab進行交互式計算。
- 使用Scala的並行集合快速方便地編寫安全的並行應用程序。
- 使用Akka框架實現並部署並發程序。
- 使用Wisp繪圖庫生成科學圖表。
- 使用各種可視化技術對多變量數據進行可視化。

Scala是一種靜態類型的、基於Java虛擬機(JVM)的語言,對函數式編程有很好的支持。Scala存在一些涵蓋常見科學計算任務的庫,從線性代數和數值算法到方便且安全的並行化和強大的繪圖功能。學習使用這些庫來執行常見的科學任務將使您能夠編寫既快速又易於編寫和維護的程序。

我們將首先討論使用Scala相對於其他科學計算平台的優勢。您將發現Scala提供了您在編寫科學軟件時所期望的功能。我們將探索使用Scala的Breeze庫進行線性代數、優化和信號處理。然後,我們將介紹Saddle庫進行數據分析。如果您有R或Python的pandas庫的經驗,您將學習如何將這些技能轉化為Saddle。如果您對數據分析是新手,您也將學習Saddle的基本概念。我們還將探索名為ScalaLab的數值計算環境。它捆綁了大量的科學軟件,可以隨時使用。我們將用它進行交互式計算、數據分析和可視化。在接下來的章節中,我們將探索使用Scala強大的並行集合進行安全和方便的並行編程。還將涵蓋Akka並發框架等主題。最後,您將學習多變量數據可視化以及如何輕鬆在Scala中生成專業外觀的圖表。閱讀本書後,您將獲得足夠的信息,以便開始使用Scala作為您的科學計算平台。

本書以示例介紹如何使用Scala執行基本的數值和科學計算任務。每章都有更多深入的示例來說明所有概念。本書的目標是讓您能夠將現有的科學計算經驗轉化為Scala。