How to create a symbolic matrix which is symmetric?

조회 수: 18 (최근 30일)
Will Bolton
Will Bolton 2018년 3월 1일
댓글: Walter Roberson 2018년 3월 1일
Hello, I essentially want to create something with the form you would get from doing:
A = sym('A', [6,6])
but additionally I would like A to be symmetric and I'm not sure if there is an easy way to generate this?

채택된 답변

John D'Errico
John D'Errico 2018년 3월 1일
편집: John D'Errico 2018년 3월 1일
A = sym('A', [6,6]);
A = tril(A,0) + tril(A,-1).'
A =
[ A1_1, A2_1, A3_1, A4_1, A5_1, A6_1]
[ A2_1, A2_2, A3_2, A4_2, A5_2, A6_2]
[ A3_1, A3_2, A3_3, A4_3, A5_3, A6_3]
[ A4_1, A4_2, A4_3, A4_4, A5_4, A6_4]
[ A5_1, A5_2, A5_3, A5_4, A5_5, A6_5]
[ A6_1, A6_2, A6_3, A6_4, A6_5, A6_6]
Looks symmetric to me.
  댓글 수: 3
Will Bolton
Will Bolton 2018년 3월 1일
Hmm so now I have the issue with this method that if I want to solve with this matrix, when I plug it back in I get the error:
One or more variables are used multiple times. Cannot distinguish between variables and equations. Use a vector of equations and a vector of variables to avoid ambiguity.
I essentially have a system of equations in the lower triangle of a matrix, with the upper portion all zeroes. I am trying to solve in terms of the elements of the symmetric matrix. There are the same number of variables as there are equations but what I'm trying isn't working. I have tried:
sol = solve(eqn, W)
sol = solve(eqn, tril(W))
The former gets the error above, the latter gets:
The second argument must be a vector of symbolic variables.
Walter Roberson
Walter Roberson 2018년 3월 1일
sol = solve(eqn, unique(W))

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Mathematics에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by