Jacobian calculation of symbolic variables which are function of ot... (2025)

34 views (last 30 days)

Show older comments

A about 21 hours ago

  • Link

    Direct link to this question

    https://www.mathworks.com/matlabcentral/answers/2143031-jacobian-calculation-of-symbolic-variables-which-are-function-of-other-variables

  • Link

    Direct link to this question

    https://www.mathworks.com/matlabcentral/answers/2143031-jacobian-calculation-of-symbolic-variables-which-are-function-of-other-variables

Commented: A about 18 hours ago

Open in MATLAB Online

Hi everyone,

I am trying to find the jacobian for a transformation matrix. I am using symbolic variables (T, l, m, n). Each of these variables are function of 4 others variables (delta1 delta2 delta3 and delta4), as:

syms u v w p q r phi theta psi x y z;

syms delta1 delta2 delta3 delta4;

% Aerodynamics

V = sqrt(u^2 + v^2 + w^2);

q_bar = (1/2) * rho * V^2;

m = (-1.35* Kf * delta1^2) + (1.35* Kf * delta2^2) + (1.35*K * Kf * delta3^2) + (-1.35* Kf * delta4^2);

l = (0.904* Kf *delta1^2) + (-0.904* Kf *delta2^2) + (0.904* Kf *delta3^2) + (-0.904* Kf *delta4^2);

n = (Km * delta1^2) + (Km * delta2^2) - (Km * delta3^2) - (Km * delta4^2);

T1= (Kf * delta1^2);

T2= (Kf * delta2^2);

T3= (Kf * delta3^2);

T4= (Kf * delta4^2);

T= T1 + T2 + T3 + T4;

phi_dot = p + tan(theta) * (q * sin(phi) + r * cos(phi));

theta_dot = q * cos(phi) - r * sin(phi);

psi_dot = (q * sin(phi) + r * cos(phi)) / cos(theta);

x_dot = cos(psi)*cos(theta)*u + (cos(psi)*sin(theta)*sin(phi) - sin(psi)*cos(phi))*v + (cos(psi)*sin(theta)*cos(phi) + sin(psi)*sin(phi))*w;

y_dot = (sin(psi)*cos(theta))*u + (sin(psi)*sin(theta)*sin(phi) + cos(psi)*cos(phi))*v + (sin(psi)*sin(theta)*cos(phi) - cos(psi)*sin(phi))*w;

z_dot = -sin(theta)*u + cos(theta)*sin(phi)*v + cos(theta)*cos(phi)*w;

f_x = - mass*g * sin(theta);

f_y = mass*g * sin(phi) * cos(theta);

f_z = mass*g * cos(phi) * cos(theta) - T ;

u_dot = r*v - q*w + (1/mass) * (f_x);

v_dot = p*w - r*u + (1/mass) * (f_y);

w_dot = q*u - p*v + (1/mass) * (f_z);

p_dot = gam(1)*p*q - gam(2)*q*r + gam(3)*l + gam(4)*n;

q_dot = gam(5)*p*r - gam(6)*(p^2 - r^2) + (1/J_yy) * m;

r_dot = gam(7)*p*q - gam(1)*q*r + gam(4)*l + gam(8)*n;

% Collect dynamics

f = [ x_dot;

y_dot;

z_dot;

phi_dot;

theta_dot;

u_dot;

v_dot;

w_dot;

p_dot;

q_dot;

r_dot];

jacobian(f,[T l m n]);

So when calculating jacobian(f,[T l m n]) , i have the error:

"Invalid argument at position 2. Argument must be a variable, a symfun without a formula, or a symfun whose formula is a variable."

Can someone please give me a solution to the problem ?

0 Comments

Show -2 older commentsHide -2 older comments

Sign in to comment.

Sign in to answer this question.

Answers (1)

Steven Lord about 21 hours ago

  • Link

    Direct link to this answer

    https://www.mathworks.com/matlabcentral/answers/2143031-jacobian-calculation-of-symbolic-variables-which-are-function-of-other-variables#answer_1494826

  • Link

    Direct link to this answer

    https://www.mathworks.com/matlabcentral/answers/2143031-jacobian-calculation-of-symbolic-variables-which-are-function-of-other-variables#answer_1494826

Open in MATLAB Online

I tried running your code but there are several variables that are not defined: rho, Kf, K, Km, mass, g, gam, J_yy. Specifying dummy values for those variables, let's look at your f variable and see if it's functions of T, l, m, and n.

rho = 42;

Kf = 999;

K = 17;

Km = 18;

mass = 12345;

g = 9.8;

gam = 9:-1:1;

J_yy = 343455;

syms u v w p q r phi theta psi x y z;

syms delta1 delta2 delta3 delta4;

% Aerodynamics

V = sqrt(u^2 + v^2 + w^2);

q_bar = (1/2) * rho * V^2;

m = (-1.35* Kf * delta1^2) + (1.35* Kf * delta2^2) + (1.35*K * Kf * delta3^2) + (-1.35* Kf * delta4^2);

l = (0.904* Kf *delta1^2) + (-0.904* Kf *delta2^2) + (0.904* Kf *delta3^2) + (-0.904* Kf *delta4^2);

n = (Km * delta1^2) + (Km * delta2^2) - (Km * delta3^2) - (Km * delta4^2);

T1= (Kf * delta1^2);

T2= (Kf * delta2^2);

T3= (Kf * delta3^2);

T4= (Kf * delta4^2);

T= T1 + T2 + T3 + T4;

phi_dot = p + tan(theta) * (q * sin(phi) + r * cos(phi));

theta_dot = q * cos(phi) - r * sin(phi);

psi_dot = (q * sin(phi) + r * cos(phi)) / cos(theta);

x_dot = cos(psi)*cos(theta)*u + (cos(psi)*sin(theta)*sin(phi) - sin(psi)*cos(phi))*v + (cos(psi)*sin(theta)*cos(phi) + sin(psi)*sin(phi))*w;

y_dot = (sin(psi)*cos(theta))*u + (sin(psi)*sin(theta)*sin(phi) + cos(psi)*cos(phi))*v + (sin(psi)*sin(theta)*cos(phi) - cos(psi)*sin(phi))*w;

z_dot = -sin(theta)*u + cos(theta)*sin(phi)*v + cos(theta)*cos(phi)*w;

f_x = - mass*g * sin(theta);

f_y = mass*g * sin(phi) * cos(theta);

f_z = mass*g * cos(phi) * cos(theta) - T ;

u_dot = r*v - q*w + (1/mass) * (f_x);

v_dot = p*w - r*u + (1/mass) * (f_y);

w_dot = q*u - p*v + (1/mass) * (f_z);

p_dot = gam(1)*p*q - gam(2)*q*r + gam(3)*l + gam(4)*n;

q_dot = gam(5)*p*r - gam(6)*(p^2 - r^2) + (1/J_yy) * m;

r_dot = gam(7)*p*q - gam(1)*q*r + gam(4)*l + gam(8)*n;

% Collect dynamics

f = [ x_dot;

y_dot;

z_dot;

phi_dot;

theta_dot;

psi_dot;

u_dot;

v_dot;

w_dot;

p_dot;

q_dot;

r_dot]

f=

Jacobian calculation of symbolic variables which are function of ot... (3)

I don't see variables named T, l, m, or n in the array f. You have defined expressions in T, l, m, and n but you cannot use those as the second input to the jacobian function. Take a look at T:

T

T=Jacobian calculation of symbolic variables which are function of ot... (4)

What exactly would you expect the derivative of f(10) with respect to T to be?

f(10)

ans=

Jacobian calculation of symbolic variables which are function of ot... (5)

3 Comments

Show 1 older commentHide 1 older comment

A about 20 hours ago

Direct link to this comment

https://www.mathworks.com/matlabcentral/answers/2143031-jacobian-calculation-of-symbolic-variables-which-are-function-of-other-variables#comment_3230186

  • Link

    Direct link to this comment

    https://www.mathworks.com/matlabcentral/answers/2143031-jacobian-calculation-of-symbolic-variables-which-are-function-of-other-variables#comment_3230186

Open in MATLAB Online

Sorry, i forgot to share the constants (rho, g , ...) because it was defined in another script, here are my values:

rho = 1.225;

Kf = 0.0121;

K = 1;

Km = 3.5e-04;

mass = 60;

g = 9.8;

gam = [0.1752 0.7835 0.365 0.0036 0.65 0.2042 0.2204 0.025];

J_yy = 16.53;

the array f includes variables which contains the variables T,l,m,n so technically, it contains these variables.

My objective is to linearize my non-linear system to obtain a state space representation, with this code:

vars = [x y z u v w p q r phi theta psi T l m n];

trim = [1000 1000 -1000 0 0 0 0 0 0 0 0 0 mass*g 0 0 0];

A_lon = double(subs(jacobian(f,[x y z phi theta psi u v w p q r]),vars,trim));

% B_lon = double(subs(jacobian(f,[delta_t_mr1 delta_t_mr2 delta_t_mr3 delta_t_mr4]),vars,trim));

B_lon = double(subs(jacobian(f,[T l m n]),vars,trim));

I get the A matrix without any problem. But when comming to the B matrix, i get the error.

I actually want (T, l, m, n) as inputs for my system. That's why, i don't want to use the variables (delta1 delta2 delta3 delta4) in the B jacobian.

Steven Lord about 19 hours ago

Direct link to this comment

https://www.mathworks.com/matlabcentral/answers/2143031-jacobian-calculation-of-symbolic-variables-which-are-function-of-other-variables#comment_3230201

  • Link

    Direct link to this comment

    https://www.mathworks.com/matlabcentral/answers/2143031-jacobian-calculation-of-symbolic-variables-which-are-function-of-other-variables#comment_3230201

the array f includes variables which contains the variables T,l,m,n so technically, it contains these variables.

Which element of f contains the character T?

The array f was created using the expressions stored in the variable T, but that's not the same as saying that f contains the variable T.

To repeat my question from the end of my answer, what exactly would you expect the derivative of f(10) with respect to T to be? [You can use the values of the constants from your comment instead of the dummy values I added to generate f(10), but show us the values of T, f(10), and the specific value you expect Jacobian calculation of symbolic variables which are function of ot... (8) to have.]

A about 18 hours ago

Direct link to this comment

https://www.mathworks.com/matlabcentral/answers/2143031-jacobian-calculation-of-symbolic-variables-which-are-function-of-other-variables#comment_3230311

  • Link

    Direct link to this comment

    https://www.mathworks.com/matlabcentral/answers/2143031-jacobian-calculation-of-symbolic-variables-which-are-function-of-other-variables#comment_3230311

The derivative of f(10) with respect to T should be -1/mass, which should give -0.016667. That's what I am trying to verify with my script.

Sign in to comment.

Sign in to answer this question.

See Also

Tags

  • jacobian

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

An Error Occurred

Unable to complete the action because of changes made to the page. Reload the page to see its updated state.


Jacobian calculation of symbolic variables which are function of ot... (10)

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list

Americas

  • América Latina (Español)
  • Canada (English)
  • United States (English)

Europe

  • Belgium (English)
  • Denmark (English)
  • Deutschland (Deutsch)
  • España (Español)
  • Finland (English)
  • France (Français)
  • Ireland (English)
  • Italia (Italiano)
  • Luxembourg (English)
  • Netherlands (English)
  • Norway (English)
  • Österreich (Deutsch)
  • Portugal (English)
  • Sweden (English)
  • Switzerland
    • Deutsch
    • English
    • Français
  • United Kingdom(English)

Asia Pacific

  • Australia (English)
  • India (English)
  • New Zealand (English)
  • 中国
  • 日本Japanese (日本語)
  • 한국Korean (한국어)

Contact your local office

Jacobian calculation of symbolic variables which are function of ot... (2025)

FAQs

What is the Jacobian of the function of three variables? ›

The Jacobian determinant J(u,v,w) in three variables is defined as follows: J(u,v,w)=|∂x∂u∂y∂u∂z∂u∂x∂v∂y∂v∂z∂v∂x∂w∂y∂w∂z∂w|.

What is an example of a Jacobian matrix of a function? ›

For example, if (x′, y′) = f(x, y) is used to smoothly transform an image, the Jacobian matrix Jf(x, y), describes how the image in the neighborhood of (x, y) is transformed. If a function is differentiable at a point, its differential is given in coordinates by the Jacobian matrix.

How to find the Jacobian of a function? ›

The goal for this section is to be able to find the "extra factor" for a more general transformation. We call this "extra factor" the Jacobian of the transformation. We can find it by taking the determinant of the two by two matrix of partial derivatives. ∂(x,y)∂(u,v)=|∂x∂u∂x∂v∂y∂u∂y∂v|=∂x∂u∂y∂v−∂y∂u∂x∂v.

What are functions of three variables? ›

Three-Variable Calculus considers functions of three real variables. A function f of three real variables assigns a real number f(x, y, z) to each set of real numbers (x, y, z) in the domain of the function. The domain of a function of three variables is a subset of coordinate 3-space { (x,y,z) | x, y, z ∈ {R} }.

How do you differentiate a function with 3 variables? ›

If we have a function in terms of three variables x , y , and z we will assume that z is in fact a function of x and y . In other words, z=z(x,y) z = z ( x , y ) . Then whenever we differentiate z 's with respect to x we will use the chain rule and add on a ∂z∂x ∂ z ∂ x .

What is the Jacobian of two variables? ›

The Jacobian ∂(x,y)∂(u,v) may be positive or negative. Change-of-variable formula: If a 1-1 mapping Φ sends a region D∗ in uv-space to a region D in xy-space, then ∬Df(x,y)dxdy = ∬D∗f(Φ(u,v))|∂(x,y)∂(u,v)|dudv.

What does the Jacobian matrix tell us? ›

The Jacobian matrix is used to analyze the small signal stability of the system. The equilibrium point Xo is calculated by solving the equation f(Xo,Uo) = 0. This Jacobian matrix is derived from the state matrix and the elements of this Jacobian matrix will be used to perform sensitivity result.

What is Jacobian determinant function? ›

If m = n , the Jacobian determinant specifies the local behavior of the vector-valued function f. Thus, f is locally differentiable if and only if the Jacobian determinant is nonzero. The following Examples 3.10–3.12 were drawn from Wikipedia. and the Jacobian determinant is J x y = 2 x y cos y − 5 x 2 .

Is The Jacobian The derivative of a function? ›

The Jacobian of a function with respect to a scalar is the first derivative of that function. For a vector function, the Jacobian with respect to a scalar is a vector of the first derivatives. Compute the Jacobian of [x^2*y,x*sin(y)] with respect to x .

What is the Jacobian of an ode? ›

The Jacobian is a matrix of partial derivatives of the functions that define the system of differential equations. For stiff ODE solvers ( ode15s , ode23s , ode23t , and ode23tb ), providing information about the Jacobian matrix is critical for reliability and efficiency.

What is Jacobian rule? ›

If the Jacobian determinant at p is non-zero, then the continuously differentiable function f is invertible near a point p ∈ ℝn. This is the inverse function theorem. Moreover, f preserves orientation near p, if the Jacobian determinant at p is positive. Similarly, f reverses orientation, if it is negative.

What is Jacobian independent function? ›

Jacobian is defined as- If u and v are functions of the two independent variables x and y , then the determinant, is known as the jacobian of u and v with respect to x and y.

What is the difference between the Jacobian hessian and the gradient function? ›

Simply, the Hessian is the matrix of second order mixed partials of a scalar field. In summation: Gradient: Vector of first order derivatives of a scalar field. Jacobian: Matrix of gradients for components of a vector field.

What is the Jacobian of exponential function? ›

The Jacobian of the exponential function F ( X ) = exp ( X ) is given by ∇ ( X ) = ∂ vec F ∂ ( vec X ) ′ = ∑ k = 0 ∞ ∇ k + 1 ( X ) ( k + 1 ) ! , where. The Jacobian can also be obtained as the appropriate submatrix of an augmented matrix, following ideas in van Loan (1978, pp. 395–396).

How do you Visualise a function with 3 variables? ›

Hence, we cannot visualize functions of three variables through their graphs. We can visualize functions of three variables through level surfaces. Level surfaces are analogous to level curves for a function of two variables z = f(x, y). How were level curves (also called contours) obtained?

What is the Hessian of a function with 3 variables? ›

The Hessian matrix H of a function f(x,y,z) is defined as the 3 * 3 matrix with rows [fxx, fxy, fxz], [fyx, fyy, fyz], and [fzx, fzy, fzz]. For twice continuously differentiable functions, a critical point will be a maximum or minimum if and only if the solutions λ to det(H - λI) = 0 are all positive.

What are equations with 3 variables called? ›

Linear equations in three variables. If a, b, c and r are real numbers (and if a, b, and c are not all equal to 0) then ax + by + cz = r is called a linear equation in three variables. (The “three variables” are the x, the y, and the z.) The numbers a, b, and c are called the coefficients of the equation.

References

Top Articles
Latest Posts
Recommended Articles
Article information

Author: Kieth Sipes

Last Updated:

Views: 6159

Rating: 4.7 / 5 (67 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Kieth Sipes

Birthday: 2001-04-14

Address: Suite 492 62479 Champlin Loop, South Catrice, MS 57271

Phone: +9663362133320

Job: District Sales Analyst

Hobby: Digital arts, Dance, Ghost hunting, Worldbuilding, Kayaking, Table tennis, 3D printing

Introduction: My name is Kieth Sipes, I am a zany, rich, courageous, powerful, faithful, jolly, excited person who loves writing and wants to share my knowledge and understanding with you.