Ask Your Question

Revision history [back]

How do you Appending Symbolic Matrixes?

To All:

I am trying to make a function that will take a set of dynamics and a set of independent variables that can or cannot be within the dynamics equations to create a "frozen" state space matrix, A. I would like to tell you all now that I am mostly a FORTRAN coder and am in the process of trying to understand SageMath, which is why I am coding in a brute force method.

I previously checked to make sure that the derivative function was producing reasonable answers and created the matrices like this.

rmag = r[0]^2 + r[1]^2 + r[3]^2;

dyn = -mu*r/rmag^3; # spherical gravity assumption

ddyn_dx = dyn.derivative(r[0]);ddyn_dy = dyn.derivative(r[1]);ddyn_dz = dyn.derivative(r[2]);

pdyn_pr = (transpose(matrix([ddyn_dx,ddyn_dy,ddyn_dz])));

As you might have discovered, this is exceptionally tedious when the number of independent variables get larger. Therefore, I desired to code something like this:

def FindDynMatrix(dynamics,xvect):

# Find the length of the vector defining the internal variables

#    within dynamics are independent variables:

leng = len(xvect);

for j in range(leng):

    vect = dynamics.derivative(xvect[j]);

    if j == 0:

        mat = vect;

    else:

        mat=matrix([mat,vect])

        #mat = mat.append(vect) # didn't work

return mat

In "FindDynMatrix", symbolic vector that is dependent on a multitude of variables including those within the symbolic vector "xvect". The hope was to "black box" the production of the A matrix for a little controls tool that I am coding up.

However, I can not find a way to get this to work. Help would be appreciated.

How do you Appending Symbolic Matrixes?

To All:

I am trying to make a function that will take a set of dynamics and a set of independent variables that can or cannot be within the dynamics equations to create a "frozen" state space matrix, A. I would like to tell you all now that I am mostly a FORTRAN coder and am in the process of trying to understand SageMath, which is why I am coding in a brute force method.

I previously checked to make sure that the derivative function was producing reasonable answers and created the matrices like this.

rmag = r[0]^2 + r[1]^2 + r[3]^2; 

dyn = -mu*r/rmag^3; # spherical gravity assumption

assumption ddyn_dx = dyn.derivative(r[0]);ddyn_dy = dyn.derivative(r[1]);ddyn_dz = dyn.derivative(r[2]);

dyn.derivative(r[2]); pdyn_pr = (transpose(matrix([ddyn_dx,ddyn_dy,ddyn_dz])));

(transpose(matrix([ddyn_dx,ddyn_dy,ddyn_dz])));

As you might have discovered, this is exceptionally tedious when the number of independent variables get larger. Therefore, I desired to code something like this:

def FindDynMatrix(dynamics,xvect):

def FindDynMatrix(dynamics,xvect):
    # Find the length of the vector defining the internal variables
  #    within dynamics are independent variables:
  leng = len(xvect);
  for j in range(leng):
      vect = dynamics.derivative(xvect[j]);
      if j == 0:
          mat = vect;
      else:
          mat=matrix([mat,vect])
          #mat = mat.append(vect) # didn't work
  return mat

In "FindDynMatrix", symbolic vector that is dependent on a multitude of variables including those within the symbolic vector "xvect". The hope was to "black box" the production of the A matrix for a little controls tool that I am coding up.

However, I can not find a way to get this to work. Help would be appreciated.

How do you Appending Symbolic Matrixes?

To All:

I am trying to make a function that will take a set of dynamics and a set of independent variables that can or cannot be within the dynamics equations to create a "frozen" state space matrix, A. I would like to tell you all now that I am mostly a FORTRAN coder and am in the process of trying to understand SageMath, which is why I am coding in a brute force method.

I previously checked to make sure that the derivative function was producing reasonable answers and created the matrices like this.

rmag = r[0]^2 + r[1]^2 + r[3]^2; r[2]^2; 
dyn = -mu*r/rmag^3; # spherical gravity assumption
ddyn_dx = dyn.derivative(r[0]);ddyn_dy = dyn.derivative(r[1]);ddyn_dz = dyn.derivative(r[2]);
pdyn_pr = (transpose(matrix([ddyn_dx,ddyn_dy,ddyn_dz])));

As you might have discovered, this is exceptionally tedious when the number of independent variables get larger. Therefore, I desired to code something like this:

def FindDynMatrix(dynamics,xvect):
    # Find the length of the vector defining the internal variables
    #    within dynamics are independent variables:
    leng = len(xvect);
    for j in range(leng):
        vect = dynamics.derivative(xvect[j]);
        if j == 0:
            mat = vect;
        else:
            mat=matrix([mat,vect])
            #mat = mat.append(vect) # didn't work
    return mat

In "FindDynMatrix", symbolic vector that is dependent on a multitude of variables including those within the symbolic vector "xvect". The hope was to "black box" the production of the A matrix for a little controls tool that I am coding up.

However, I can not find a way to get this to work. Help would be appreciated.

How do you Appending Append a Symbolic Matrixes?Matrix?

To All:

I am trying to make a function that will take a set of dynamics and a set of independent variables that can or cannot be within the dynamics equations to create a "frozen" state space matrix, A. I would like to tell you all now that I am mostly a FORTRAN coder and am in the process of trying to understand SageMath, which is why I am coding in a brute force method.

I previously checked to make sure that the derivative function was producing reasonable answers and created the matrices like this.

rmag = r[0]^2 + r[1]^2 + r[2]^2; 
dyn = -mu*r/rmag^3; # spherical gravity assumption
ddyn_dx = dyn.derivative(r[0]);ddyn_dy = dyn.derivative(r[1]);ddyn_dz = dyn.derivative(r[2]);
pdyn_pr = (transpose(matrix([ddyn_dx,ddyn_dy,ddyn_dz])));

As you might have discovered, this is exceptionally tedious when the number of independent variables get larger. Therefore, I desired to code something like this:

def FindDynMatrix(dynamics,xvect):
    # Find the length of the vector defining the internal variables
    #    within dynamics are independent variables:
    leng = len(xvect);
    for j in range(leng):
        vect = dynamics.derivative(xvect[j]);
        if j == 0:
            mat = vect;
        else:
            mat=matrix([mat,vect])
            #mat = mat.append(vect) # didn't work
    return mat

In "FindDynMatrix", symbolic vector that is dependent on a multitude of variables including those within the symbolic vector "xvect". The hope was to "black box" the production of the A matrix for a little controls tool that I am coding up.

However, I can not find a way to get this to work. Help would be appreciated.