2009-11-10 4 views

답변

13

행렬이 무엇이든 일반적 일 수있는 경우 행렬의 상징적 표현을 작성하고 행렬식을 계산하고 관심있는 변수를 푸는 것이 좋습니다.

>> 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, DETSOLVE 각각 사용하여이 작업을 수행 할 수 있습니다. 위, 나는 하나의 문자열 표현으로 그것을했다.

syms w 
A = [w 1; 2 w]; 

지금 A은 첫 번째 예제에 있었던 것처럼 상징적 행렬이다 : 그러나, 대신 당신은 보통 MATLAB에서와 같은 매트릭스를 구성, 상징적 인 변수로 w를 정의하는 SYMS를 사용할 수 있습니다.

+0

나는 상징적 인 행렬에 대해 몰랐다. 그것은 꽤 멋지다. 내 표를 얻었 어. – monksy

+0

스티븐 <- 그가 말한 것. 그리고 정확히 내가 바라는 무엇인가 ... ftw. – Rook

+0

어, 다른 matlabism ... 나는 이것에 완전히 만족하지 않습니다. 나는 sym가 행렬이 아니라 문자열을 사용하는 것을 좋아한다. 그 일로 인해 좌절감이 생길 수 있습니다. – monksy

0

그럼 확정은 다음과 같습니다 OM * 톰 - 1 * 2 = 0

그래서 당신은 얻을 것이다 : 톰 * 톰 = 2

공식적인 정의는 다음과 같습니다 [A B를; c]] = a d - b c

나는 결정을 단순화하고 미지의 문제를 풀 수있는 해법을 찾는다.

+3

분명히. 그러나 위의 예는 단지 예일뿐입니다. 내 문제에는 그런 사소한 사건이 없습니다. – Rook

2

기호 도구 상자가없는 경우 파일 교환에있는 sympoly 도구 상자를 사용하십시오.

sympoly omega 
roots(det([omega 1;2 omega])) 
ans = 
     -1.4142 
     1.4142