Java for Scientific Computing

Ideas for scientific computing in java

5.00 (4 reviews)

Java for Scientific Computing


58.5 hours


Oct 2020

Last Update
Regular Price

Unlimited access to 30 000 Premium SkillShare courses

What you will learn

Using java for solving scientific problems (engineering, physics, etc.)


Whether you are an experienced java developer or a high-school or college student, if you are a java enthusiast then this course is for you. This course will equip you with an in-depth understanding of the fundamental concepts of scientific computing such as optimization, finding roots, and solving differential equations. The lectures and the accompanying powerpoint slides are designed and prepared with the utmost quality.




Download git repository


java.lang.Math class

Expression Evaluation

Exp4j Library

Custom Functions & Operators

Example1: Computation Time of Expressions

Example2: GUI for Expression Evaluation

Operator Overloading in Java

Operator Overloading in Eclipse IDE

Examining the Bytecodes

Example: Vectors

Symbolic Functions

Abstract Symbolic Function

Create the Function Space

Composition of Functions

Addition, Subtraction, Multiplication, and Division of Symbolic Functions

String Representation of Symbolic Functions

Complex Numbers

Implementing Complex Numbers


Polynomial Class and String Representation

Algebraic Operations on Polynomials

Operator Overloading for Polynomials & Other Polynomial Libraries

Polynomial Division

Sequences and Series

Basics of Sequences & Java implementation

Basics of Series & Java implementation

Numerical Test of Convergence

Taylor Expansion and Taylor Series

Sequence Transformations & Convergence Acceleration -- Part 1

Sequence Transformations & Convergence Acceleration -- Part 2

Sequence Transformations & Convergence Acceleration -- Part 3

Operations on Sequences and Series

Example of Series: Perturbation Theory

Application of Sequence Transformations: Romberg Integration

Rate and Order of Convergence

Radius of Convergence of Power Series

Review of Sequences and Series

Root Finding Algorithms

Fundamental Lemma of Root Bracketing

Bi-section Method

Finding All the Roots in an Interval

Tri-section Method

Secant Method & Brent Method

Improved Secant Method

Newton-Raphson Method -- Part 1

Newton-Raphson Method -- Part 2

Comparison of All the Root Finding Methods

Other Root Finding Libraries

Particle Swarm Optimization

Introduction to Particle Swarm Optimization

Java Implementation of Particle Swarm Optimization

Examples of Particle Swarm Optimization

Finding Roots of an Equation using Particle Swarm Optimization

Bounded Particle Swarm Optimization

Solving Ineqalities with Particle Swarm Optimization

Constructor Visualization

Visualization of Java Code

Numerical Integration

Forward, Backward, and Center Rectangle Method

Trapezoid Method

Java Implementation of Trapezoid Method

Simpson's Method & Recursive Integration

Gauss-Legendre Quadrature Method

Legendre Polynomials

Java Implementation of Gauss-Legendre Method

2D Integration

3D Integration

Memoization of Integration

Example of Memoization

Other Integral Libraries

Richardson Extrapolation

The Basic Idea of Richardson Extrapolation

Java Implementation of Richardson Extrapolation

Solving Ordinary Differential Equations

Forward Euler Method -- Part 1

Forward Euler Method -- Part 2

Midpoint Method

Runge-Kutta Method

Solving a System of Ordinary Differential Equations

Examples of Solving a System of ODEs

ODEs of Complex Functions

Systems of ODEs of Complex Functions

Steady-State Solutions of ODE Systems

General Runge-Kutta Family for Solving ODEs

Boundary Value Problems for ODEs and the Shooting Method

Implicit (Backward) Euler Method for Solving ODEs

Finite Difference Method -- Part 1

Finite Difference Method -- Part 2

Special Functions

Bessel Function of the First Kind: Integral Formula for Integer Index

Bessel Function of the First Kind: Integral Formula for Non-integer Index

Bessel Function of the First Kind: Complex Arguments

Bessel Function of the First Kind: Small-Argument Expansion

Gamma Function

Bessel Function of the First Kind: Large-Argument Expansion

Bessel Function of the Second Kind (Neumann) & Hankel Functions

Derivatives of Bessel and Hankel Functions

Digamma Function

Beta Function

Error Function

Family of Error Functions

Other Error Function Libraries

Modified Bessel Function of the First Kind: Iv(x)

Modified Bessel Function of the Second Kind: Kv(x)

Spherical Bessel Functions

Airy Functions -- Part 1

Airy Functions -- Part 2

Struve Functions

Java Native Interface (JNI)

Introduction to Java Native Interface (JNI)

A Simple Example of Java/C++ Native Library Binding

A closer look at the JNI

Setting up JNI in Eclipse IDE -- Part 1

Setting up JNI in Eclipse IDE -- Part 2

Exporting Java Project to jar File With Dynamic Libraries

Configuring JNI in Eclipse IDE for JDK 9 or Later

Overloading Native Methods

Overriding Native Methods

Signature of Overloaded Native Methods in C++

Overloading of Static Native Methods

Order of Execution for Static Initializers in the Class Hierarchy

Working with JNI Primitive Types

Working with JNI Primitive Arrays

Working with JNI Object Arrays

Using GNU Scientific Library


Ashkan14 June 2020

i have worked with java for 20 years, but not in the scientific area. So this is a course i have been waiting for for a long time. Merci Mohandez


Udemy ID


Course created date


Course Indexed date
Course Submitted by