autodiff.Dual¶
- class autodiff.Dual(val, der=1)¶
- Primary data structure for forward mode automatic differentiation. - Dual numbers can be used as a data structure to store the value and derivative of a function. The value and derivative can be stored as the real and “dual” part of a dual number, respectively. The properties of a dual number lend itself nicely to a straightforward implementation of forward mode automatic differentiation. - Parameters
- valfloat
- The value of the Dual number. 
- derndarray
- The derivative of the Dual number. 
 
 - See also - Examples - Construct a Dual number for a univariate function: - >>> x = ad.Dual(42) >>> x Dual(42, array([1])) - Construct a Dual number for a multivariate function with user-defined seed vector: - >>> x = ad.Dual(42, [1, 2]) >>> x Dual(42, array([1, 2])) - Construct multiple Dual numbers from array of scalars: - >>> x, y, z = ad.Dual.from_array([1, 2, 4]) >>> x Dual(1, array([1, 0, 0])) >>> y Dual(2, array([0, 1, 0])) - Create a function from multiple Dual numbers: - >>> x, y, z = ad.Dual.from_array([1, 2, 4]) >>> f = (x * y)/z >>> f.val 0.5 >>> f.der array([0.5, 0.25, -0.125]) - Attributes
- ndim
- Return the number of dimensions of the Dual number. 
 
 - Methods - constant(val[, ndim])- Create a Dual number representing a constant. - from_array(X)- Generate Dual numbers for a multivariable function. - property ndim¶
- Return the number of dimensions of the Dual number. - Parameters
- selfDual
 
- Returns
- outint
- Number of dimensions. 
 
 - Examples - >>> ad.Dual(-5, [6.2]).ndim 1 - More than one dimension: - >>> ad.Dual(42, [1, 2]).ndim 2 
 - static constant(val, ndim=1)¶
- Create a Dual number representing a constant. - Parameters
- valint or float
- Value of dual number. 
- ndimint, optional
- ndimis the number of dimensions of the zero derivative vector.
 
- Returns
- outDual
- Dual number of value - valwith zero derivative vector.
 
 - Notes - Derivative vector of length - ndimwill be filled with zeros.- Examples - >>> ad.Dual.constant(42) Dual(42, array([0.])) - Constant with more than one dimension: - >>> ad.Dual.constant(7, 2) Dual(7, array([0., 0.])) 
 - static from_array(X)¶
- Generate Dual numbers for a multivariable function. - Parameters
- Xarray
- Array of numbers which will be values of Dual numbers. 
 
- Returns
- outDual number generator
- Dual numbers of value - X[i]with zero derivative vector where the i-th element has a value of 1.
 
 - Examples - >>> x, y = ad.Dual.from_array([1, 42]) >>> x Dual(1, array([1., 0.])) >>> y Dual(42, array([0., 1.]))