Solve for an unknown matrix like solve() for dimension one

1 view (last 30 days)
syms d
eqn = d^2 - 9 == 0;
sol = solve(eqn, d)
The above is a method of 'solving' in dimension one. Solve() wouldn't work
May I know the option(s) of 'solving' in multi-dimensions, especially when we have diagonal matrices? An example is provided below:
eqn2 = D^(-3) + D^(-2)*W1 + W2 == zeros(n)
where D, W1 and W2 are diagonal matrices and n is the length of D. D is positive. If W1 and W2 are known, how can we solve for D?
PS: I checked the fminunc family but they for optimization (minimum solvers).
  2 Comments
Torsten
Torsten on 28 Oct 2023
D = sym('D',[2 2]);
eqn = D*[1 4;-3 5] == [1 7;9 -12];
solve(eqn)
ans = struct with fields:
D1_1: 26/17 D1_2: 3/17 D2_1: 9/17 D2_2: -48/17

Sign in to comment.

Answers (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 28 Oct 2023
This exercise can be also simulated/solved by this way:
N=3; % Dimension
syms d [N N]
Eqn = d*randi(10, N)==randi(10,N);
SOL = solve(Eqn, d)
SOL = struct with fields:
d1_1: 7/6 d2_1: -1/28 d3_1: 59/84 d1_2: -1/6 d2_2: 37/84 d3_2: 19/84 d1_3: -1/2 d2_3: 1/4 d3_3: -1/4

Community Treasure Hunt

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

Start Hunting!