Trying to run a differentiation loop

3 Ansichten (letzte 30 Tage)
Saim
Saim am 23 Okt. 2022
Beantwortet: Torsten am 23 Okt. 2022
I have a matrix X_dot =
3*g*k*x1*t^2 - 2*g*k*x1*t - k*x2
g*x1 - 2*g*t*x1
0
Another matrix, x =
[x1, x2, x3]
when I run these codes separately:
diff(X_dot(2,1),x(1,1))
diff(X_dot(1,1),x(1,1))
I get good answers. But when I put it in a loop, I get weird conversion errors.
My loop looks like this:
L2 = zeros(3)
for r = 1:3
for c = 1:3
L2(r,c) = diff(X_dot(c,r),x(r,c));
end
end
The aim is to differentiate each row of X_dot by each column of x and get a 3x3 matrix output in symbolic form
This is the whole code:
clear all
clc
%%Ans1
syms X1 X2 X3 k t g x1 x2 x3
eqn1 = X1 + (k*t*X2) == x1;
eqn2 = (g*((t-1)*(t*X1))) + ((1+ (g*k)*((t-1)*(t^2)))*X2) == x2;
eqn3 = X3 == x3
[A,B] = equationsToMatrix([eqn1, eqn2, eqn3], [X1, X2, X3])
X = linsolve(A,B)
F = [1 k*t 0;(g*t)*(t-1) g*k*t^2*(t - 1)+1 0;0 0 1]
J = det(F)
F_inv = inv(F)
%%Ans3
F_d = simplify(diff(F,t))
L = simplify(F_d*F_inv)
expand(L(2,1))
X_dot = diff(X,t)
L2 = zeros(3)
x = [x1,x2,x3]
diff(X_dot(2,1),x(1,1))
for r = 1:3
for c = 1:3
L2(r,c) = diff(X_dot(c,r),x(r,c));
end
end
L2
Please help
  2 Kommentare
KSSV
KSSV am 23 Okt. 2022
Copy the full code here.
Saim
Saim am 23 Okt. 2022
Post is updated with the whole code, hope that helps

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Torsten
Torsten am 23 Okt. 2022
clear all
clc
%%Ans1
syms X1 X2 X3 k t g x1 x2 x3
eqn1 = X1 + (k*t*X2) == x1;
eqn2 = (g*((t-1)*(t*X1))) + ((1+ (g*k)*((t-1)*(t^2)))*X2) == x2;
eqn3 = X3 == x3;
[A,B] = equationsToMatrix([eqn1, eqn2, eqn3], [X1, X2, X3]);
X = linsolve(A,B);
F = [1 k*t 0;(g*t)*(t-1) g*k*t^2*(t - 1)+1 0;0 0 1];
J = det(F);
F_inv = inv(F);
%%Ans3
F_d = simplify(diff(F,t));
L = simplify(F_d*F_inv);
expand(L(2,1));
X_dot = diff(X,t);
%L2 = zeros(3);
x = [x1;x2;x3];
diff(X_dot(2,1),x(1,1))
ans = 
for r = 1:3
for c = 1:3
L2(r,c) = diff(X_dot(r,1),x(c,1));
end
end
L2
L2 = 

Weitere Antworten (0)

Produkte


Version

R2015a

Community Treasure Hunt

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

Start Hunting!

Translated by