|
|
Line 15: |
Line 15: |
| | | |
| == Numeric Quest modules hosted on haskell.org == | | == Numeric Quest modules hosted on haskell.org == |
− |
| |
− | === Rational numbers ===
| |
− |
| |
− | ;[http://darcs.haskell.org/numeric-quest/Fraction.hs Fraction.hs]
| |
− |
| |
− | :This is a generalized Rational in disguise. Rational, as a type
| |
− | synonim, could not be directly made an instance of any new class
| |
− | at all.
| |
− | But we would like it to be an instance of Transcendental, where
| |
− | trigonometry, hyperbolics, logarithms, etc. are defined.
| |
− | So here we are tiptoe-ing around, re-defining everything from
| |
− | scratch, before designing the transcendental functions -- which
| |
− | is the main motivation for this module.
| |
− |
| |
− | :Aside from its ability to compute transcendentals, Fraction
| |
− | allows for denominators zero. Unlike Rational, Fraction does
| |
− | not produce run-time errors for zero denominators, but use such
| |
− | entities as indicators of invalid results -- plus or minus
| |
− | infinities. Operations on fractions never fail in principle.
| |
− |
| |
− | === Polynomials ===
| |
− |
| |
− | ;[http://darcs.haskell.org/numeric-quest/Roots.hs Roots.hs]
| |
− |
| |
− | :List of complex roots of a polynomial
| |
− | a0 + a1*x + a2*x^2...
| |
− |
| |
− | === General linear algebra ===
| |
− |
| |
− | ;[http://darcs.haskell.org/numeric-quest/Eigensystem.hs Eigensystem.hs]
| |
− |
| |
− | :This module extends the QuantumVector module by providing functions
| |
− | to calculate eigenvalues and eigenvectors of Hermitian operators.
| |
− | Such toolkit is of primary importance due to pervasiveness of
| |
− | eigenproblems in Quantum Mechanics.
| |
− |
| |
− | ;[http://darcs.haskell.org/numeric-quest/EigensystemNum.hs EigensystemNum.hs]
| |
− |
| |
− | === Tensors ===
| |
− |
| |
− | ;[http://darcs.haskell.org/numeric-quest/Tensor.lhs Tensor.lhs]
| |
− |
| |
− | :This is a quick sketch of what might be a basis of a real
| |
− | Tensor module.
| |
− |
| |
− | :Datatype Tensor defined here is an instance
| |
− | of class Eq, Show and Num.
| |
− | In addition, several
| |
− | customized operations are defined for
| |
− | variety of inner products.
| |
− |
| |
− | :Tensor components are Doubles.
| |
− |
| |
− | :The shape of tensors defined here involves two parameters:
| |
− | dimension and rank. Rank is associated with the
| |
− | depth of the tensor tree and corresponds to a total number
| |
− | of indices by which you can access the individual components.
| |
− |
| |
− | === Quantum mechanics ===
| |
− |
| |
− | ;[http://darcs.haskell.org/numeric-quest/QuantumVector.lhs QuantumVector.lhs]
| |
− |
| |
− | :This is our attempt to model the abstract Dirac's formalism
| |
− | of Quantum Mechanics in Haskell.
| |
− |
| |
− | :We recognize a quantum state as an abstract vector | x >,
| |
− | which can be represented in one of many possible bases -- similar
| |
− | to many alternative representations of a 3D vector in rotated systems
| |
− | of coordinates. A choice of a particular basis is controlled
| |
− | by a generic type variable, which can be any Haskell object
| |
− | -- providing that it supports a notion of equality and ordering.
| |
− | A state which is composed of many quantum subsystems, not
| |
− | necessarily of the same type, can be represented in a vector
| |
− | space considered to be a tensor product of the subspaces.
| |
− |
| |
− | :With this abstract notion we proceed with Haskell definition of two
| |
− | vector spaces: Ket and its dual Bra. We demonstrate
| |
− | that both are properly defined according to the abstract
| |
− | mathematical definition of vector spaces. We then introduce inner
| |
− | product and show that our Bra and Ket can be indeed
| |
− | considered the vector spaces with inner product.
| |
− |
| |
| | | |
| [[Category:Mathematics]] | | [[Category:Mathematics]] |
| {{LibrariesPage}} | | {{LibrariesPage}} |