# Solve system of equations with the symbolic matrix

21 views (last 30 days)
Cengizhan Demirbas on 26 Feb 2021
I have a 4x4 matrix T, and I know its last row to be [0 0 0 1]. I also know these equations:
After solving these by hand, I find that third column has no solution (except for [4,3], which i know to be 0).
My question is how can I keep these unsolved variables symbolic while solving the system?
I tried the following code:
T = sym('x', [4 4]);
T(4,:) = [0 0 0 1];
T
p_new1 = [2 0 0 1].';
p_old1 = [0 0 0 1].';
p_new2 = [3 0 0 1].';
p_old2 = [1 0 0 1].';
p_new3 = [2 0 1 1].';
p_old3 = [0 1 0 1].';
eqn1 = p_new1 == T*p_old1;
eqn2 = p_new2 == T*p_old2;
eqn3 = p_new3 == T*p_old3;
sol = solve([eqn1, eqn2, eqn3])
This results in a strut with 9 elements that are solved. It completely excludes third column which i want to remain symbolic like x13 x23 x33. How can I do this?

Walter Roberson on 26 Feb 2021
T = sym('x', [4 4]);
T(4,:) = [0 0 0 1];
T
T =
p_new1 = [2 0 0 1].';
p_old1 = [0 0 0 1].';
p_new2 = [3 0 0 1].';
p_old2 = [1 0 0 1].';
p_new3 = [2 0 1 1].';
p_old3 = [0 1 0 1].';
eqn1 = p_new1 == T*p_old1;
eqn2 = p_new2 == T*p_old2;
eqn3 = p_new3 == T*p_old3;
s = solve([eqn1, eqn2, eqn3], reshape(T(1:3,[1:2,4]),1,[]))
s = struct with fields:
x1_1: [1×1 sym] x2_1: [1×1 sym] x3_1: [1×1 sym] x1_2: [1×1 sym] x2_2: [1×1 sym] x3_2: [1×1 sym] x1_4: [1×1 sym] x2_4: [1×1 sym] x3_4: [1×1 sym]
subs(T,s)
ans =
Cengizhan Demirbas on 26 Feb 2021
Thanks!!

R2020b

### Community Treasure Hunt

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

Start Hunting!

Translated by