,의 당신이이 행렬을 가정 해 봅시다 :MATLAB에서 행렬식을 어떻게 풀 수 있습니까? 간단한 예를 들어
M = [omega 1;
2 omega];
당신은 조건 det M = 0
을 만족 omega
의 값을 해결해야합니다. 어떻게 이것을 MATLAB에서합니까?
분명히 간단하지만 아직 기능을 찾지 못했습니다.
,의 당신이이 행렬을 가정 해 봅시다 :MATLAB에서 행렬식을 어떻게 풀 수 있습니까? 간단한 예를 들어
M = [omega 1;
2 omega];
당신은 조건 det M = 0
을 만족 omega
의 값을 해결해야합니다. 어떻게 이것을 MATLAB에서합니까?
분명히 간단하지만 아직 기능을 찾지 못했습니다.
행렬이 무엇이든 일반적 일 수있는 경우 행렬의 상징적 표현을 작성하고 행렬식을 계산하고 관심있는 변수를 푸는 것이 좋습니다.
>> A = sym('[w 1; 2 w]'); % Create symbolic matrix
>> solve(det(A),'w') % Solve the equation 'det(A) = 0' for 'w'
ans =
2^(1/2)
-2^(1/2)
>> double(ans) % Convert the symbolic expression to a double
ans =
1.4142
-1.4142
또한 초기 매트릭스 A
을 만들 수있는 여러 가지 방법이 있습니다 : 당신은 기능은 Symbolic Math Toolbox에서 SYM, DET 및 SOLVE 각각 사용하여이 작업을 수행 할 수 있습니다. 위, 나는 하나의 문자열 표현으로 그것을했다.
syms w
A = [w 1; 2 w];
지금 A
은 첫 번째 예제에 있었던 것처럼 상징적 행렬이다 : 그러나, 대신 당신은 보통 MATLAB에서와 같은 매트릭스를 구성, 상징적 인 변수로 w
를 정의하는 SYMS를 사용할 수 있습니다.
그럼 확정은 다음과 같습니다 OM * 톰 - 1 * 2 = 0
그래서 당신은 얻을 것이다 : 톰 * 톰 = 2
공식적인 정의는 다음과 같습니다 [A B를; c]] = a d - b c
나는 결정을 단순화하고 미지의 문제를 풀 수있는 해법을 찾는다.
분명히. 그러나 위의 예는 단지 예일뿐입니다. 내 문제에는 그런 사소한 사건이 없습니다. – Rook
기호 도구 상자가없는 경우 파일 교환에있는 sympoly 도구 상자를 사용하십시오.
sympoly omega
roots(det([omega 1;2 omega]))
ans =
-1.4142
1.4142
나는 상징적 인 행렬에 대해 몰랐다. 그것은 꽤 멋지다. 내 표를 얻었 어. – monksy
스티븐 <- 그가 말한 것. 그리고 정확히 내가 바라는 무엇인가 ... ftw. – Rook
어, 다른 matlabism ... 나는 이것에 완전히 만족하지 않습니다. 나는 sym가 행렬이 아니라 문자열을 사용하는 것을 좋아한다. 그 일로 인해 좌절감이 생길 수 있습니다. – monksy