How to get numerical answers for solving determinant is 0

8 views (last 30 days)
I want to solve determinant of an 8x8 matrix is zero. Some of the element of the matrix has symbolic "p" in it. I want to know what value of "p" will make the determinat of the matrix to be 0.
The result returns a different super long functions with Z. Each funtion is displayed on a line.
I am not really sure if this is the correct result and I want a numerical answer for "p".
format shortE
E = 210 * 10^9;
k1 = zeros(8, 8);
k2 = zeros(8, 8);
syms p
k1(1, 1) = 15.24;
k1(1, 2) = 2.28;
k1(1, 3) = -15.24;
k1(1, 4) = 2.28;
k1(2, 1) = 2.28;
k1(2, 2) = 0.46;
k1(2, 3) = -2.28;
k1(2, 4) = 0.23;
k1(3, 1) = -15.24;
k1(3, 2) = -2.28;
k1(3, 3) = 22.86;
k1(3, 4) = 0;
k1(3, 5) = -7.63;
k1(3, 6) = 2.28;
k1(4, 1) = 2.28;
k1(4, 2) = -0.23;
k1(4, 3) = 0;
k1(4, 4) = 1.37;
k1(4, 5) = -2.28;
k1(4, 6) = -0.46;
k1(5, 3) = -7.62;
k1(5, 4) = -2.28;
k1(5, 5) = 22.86;
k1(5, 6) = 0;
k1(5, 7) = -15.24;
k1(5, 8) = 2.28;
k1(6, 3) = 2.28;
k1(6, 4) = 0.46;
k1(6, 5) = 0;
k1(6, 6) = 1.37;
k1(6, 7) = -2.28;
k1(6, 8) = 0.23;
k1(7, 5) = -15.24;
k1(7, 6) = -2.28;
k1(7, 7) = 15.24;
k1(7, 8) = -2.28;
k1(8, 5) = 2.28;
k1(8, 6) = -0.23;
k1(8, 7) = -2.28;
k1(8, 8) = 0.46;
k2(1, 1) = 4;
k2(1, 2) = 0.1;
k2(1, 3) = -4;
k2(1, 4) = 0.1;
k2(2, 1) = 0.1;
k2(2, 2) = 0.04;
k2(2, 3) = -0.1;
k2(2, 4) = -0.01;
k2(3, 1) = -4;
k2(3, 2) = -0.1;
k2(3, 3) = 6;
k2(3, 4) = 0;
k2(3, 5) = -2;
k2(3, 6) = 0.1;
k2(4, 1) = 0.1;
k2(4, 2) = -0.01;
k2(4, 3) = 0;
k2(4, 4) = 0.12;
k2(4, 5) = -0.1;
k2(4, 6) = -0.02;
k2(5, 3) = -2;
k2(5, 4) = -0.1;
k2(5, 5) = 6;
k2(5, 6) = 0;
k2(5, 7) = -4;
k2(5, 8) = 0.1;
k2(6, 3) = 0.1;
k2(6, 4) = -0.02;
k2(6, 5) = 0;
k2(6, 6) = 0.12;
k2(6, 7) = -0.1;
k2(6, 8) = -0.01;
k2(7, 5) = -4;
k2(7, 6) = -0.1;
k2(7, 7) = 4;
k2(7, 8) = -0.1;
k2(8, 5) = 0.1;
k2(8, 6) = -0.01;
k2(8, 7) = -0.1;
k2(8, 8) = 0.04;
k = k1 .* E .* (10^-5) - p .* k2;
result = det(k);
solve(result == 0)

Accepted Answer

Torsten
Torsten on 22 Nov 2022
Edited: Torsten on 22 Nov 2022
This is a generalized eigenvalue problem. Use "eig" to solve for p:
E = 210 * 10^9;
k1 = zeros(8, 8);
k2 = zeros(8, 8);
k1(1, 1) = 15.24;
k1(1, 2) = 2.28;
k1(1, 3) = -15.24;
k1(1, 4) = 2.28;
k1(2, 1) = 2.28;
k1(2, 2) = 0.46;
k1(2, 3) = -2.28;
k1(2, 4) = 0.23;
k1(3, 1) = -15.24;
k1(3, 2) = -2.28;
k1(3, 3) = 22.86;
k1(3, 4) = 0;
k1(3, 5) = -7.63;
k1(3, 6) = 2.28;
k1(4, 1) = 2.28;
k1(4, 2) = -0.23;
k1(4, 3) = 0;
k1(4, 4) = 1.37;
k1(4, 5) = -2.28;
k1(4, 6) = -0.46;
k1(5, 3) = -7.62;
k1(5, 4) = -2.28;
k1(5, 5) = 22.86;
k1(5, 6) = 0;
k1(5, 7) = -15.24;
k1(5, 8) = 2.28;
k1(6, 3) = 2.28;
k1(6, 4) = 0.46;
k1(6, 5) = 0;
k1(6, 6) = 1.37;
k1(6, 7) = -2.28;
k1(6, 8) = 0.23;
k1(7, 5) = -15.24;
k1(7, 6) = -2.28;
k1(7, 7) = 15.24;
k1(7, 8) = -2.28;
k1(8, 5) = 2.28;
k1(8, 6) = -0.23;
k1(8, 7) = -2.28;
k1(8, 8) = 0.46;
k2(1, 1) = 4;
k2(1, 2) = 0.1;
k2(1, 3) = -4;
k2(1, 4) = 0.1;
k2(2, 1) = 0.1;
k2(2, 2) = 0.04;
k2(2, 3) = -0.1;
k2(2, 4) = -0.01;
k2(3, 1) = -4;
k2(3, 2) = -0.1;
k2(3, 3) = 6;
k2(3, 4) = 0;
k2(3, 5) = -2;
k2(3, 6) = 0.1;
k2(4, 1) = 0.1;
k2(4, 2) = -0.01;
k2(4, 3) = 0;
k2(4, 4) = 0.12;
k2(4, 5) = -0.1;
k2(4, 6) = -0.02;
k2(5, 3) = -2;
k2(5, 4) = -0.1;
k2(5, 5) = 6;
k2(5, 6) = 0;
k2(5, 7) = -4;
k2(5, 8) = 0.1;
k2(6, 3) = 0.1;
k2(6, 4) = -0.02;
k2(6, 5) = 0;
k2(6, 6) = 0.12;
k2(6, 7) = -0.1;
k2(6, 8) = -0.01;
k2(7, 5) = -4;
k2(7, 6) = -0.1;
k2(7, 7) = 4;
k2(7, 8) = -0.1;
k2(8, 5) = 0.1;
k2(8, 6) = -0.01;
k2(8, 7) = -0.1;
k2(8, 8) = 0.04;
A = k1 .* E .* (10^-5);
B = k2;
format long
p = eig(A,B)
p =
1.0e+18 * -7.109617135584235 + 0.000000000000000i -0.000000000002034 + 0.000000000000000i 0.000000000000558 + 0.000000000000000i 0.000000000003757 + 0.000000000000000i 0.000000000025064 + 0.000000000008017i 0.000000000025064 - 0.000000000008017i 0.000000000025735 + 0.000000000002401i 0.000000000025735 - 0.000000000002401i

More Answers (0)

Categories

Find more on Linear Algebra in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!