Open main menu

Changes

DPL94 derivatives

2,135 bytes removed, 09:30, 1 September 2014
=== sympy ===
<source lang="python">
from sympy import * # In contrast to other Computer Algebra Systems, in SymPy you have to declare symbolic variables explicitly:R1 = Symbol('R1')theta = Symbol('theta')R1rho_p = Symbol('R1rho_p')phi_ex = Symbol('phi_ex')kex = Symbol('kex')we = Symbol('we') # Define functionf = R1 * cos(theta)**2 + (R1rho_p + ( (phi_ex * kex) / (kex**2 + we**2) ) ) * sin(theta)**2 print("Now calculate the Jacobian. The partial derivative matrix.\n")print("Jacobian is m rows with function derivatives and n columns of parameters.") d_f_d_R1 = diff(f, R1)d_f_d_theta = diff(f, theta)d_f_d_R1rho_p = diff(f, R1rho_p)d_f_d_phi_ex = diff(f, phi_ex)d_f_d_kex = diff(f, kex)d_f_d_we = diff(f, we) print("""Form the Jacobian matrix by:------------------------------------------------------------------------------from numpy import array, cos, sin, pi, transpose R1 = 1.1theta = pi / 4R1rho_p = 10.phi_ex = 1100.kex = 2200.we = 3300. d_f_d_R1 = %sd_f_d_theta = %sd_f_d_R1rho_p = %sd_f_d_phi_ex = %sd_f_d_kex = %sd_f_d_we = %sjacobian_matrix = transpose(array( [d_f_d_R1 , d_f_d_theta, d_f_d_R1rho_p, d_f_d_phi_ex, d_f_d_kex, d_f_d_we] ) ) print jacobian_matrix------------------------------------------------------------------------------""" % (d_f_d_R1, d_f_d_theta, d_f_d_R1rho_p, d_f_d_phi_ex, d_f_d_kex, d_f_d_we) ) #### Method 2# http://docs.sympy.org/0.7.2/modules/matrices/matrices.html # The vectorial function.X = Matrix([R1 * cos(theta)**2 + (R1rho_p + ( (phi_ex * kex) / (kex**2 + we**2) ) ) * sin(theta)**2])# What to derive for.Y = Matrix([R1, theta, R1rho_p, phi_ex, kex, we]) # Make the JacobianJacobian = X.jacobian(Y) jac_string = str(Jacobian)jac_string_arr = jac_string.replace("Matrix", "array") print("""Form the Jacobian matrix by:------------------------------------------------------------------------------from numpy import array, cos, sin, pi, transpose R1 = 1.1theta = pi / 4R1rho_p = 10.phi_ex = 1100.kex = 2200.we = 3300. jacobian_matrix_2 = %s print jacobian_matrix_2------------------------------------------------------------------------------""" % (jac_string_arr) )as
</source>