2014-11-20 4 views
0

matlab에서 기호 행렬 (3X3 크기)을 곱하려고합니다. 출력은 자체적으로 행렬 인 일부 요소가있는 행렬을 표시합니다. 일부 요소가 행렬 인 이유는 무엇입니까?기호 행렬을 곱할 때 행렬 내부의 행렬

예제 코드 :

syms a1 a2 a3 
F2 = [a1+0.0003 .0002 .0004; a2+.0003 .0005 .0003; a3+.0003 .0002 .0004]; 
C2 = F2'*F2; 
K = C2^(16/57); 
T = inv(K)*C2*inv(K); 
S = T - 0.5*T^2 + 0.33*T^3; 
+0

의 형식인지 알 수 있습니다. 어떤 프로그래밍 언어/환경에서이 현상이 발생합니까? – Aleksandar

+0

죄송합니다. 언급하지 않으 셨습니다. Matlab을 사용하고 있습니다. – chaung1989

+1

예제를 제공해 주시겠습니까? – Aleksandar

답변

0

문제는 K = C2^(16/57) 것 같다. 행렬의 근원을 잡는 것은 쉬운 일이 아니며 솔루션이 항상 존재하는 것은 아닙니다. 이것이 MATLAB이이 표현을 해결할 수없는 이유입니다. 예를 들어보십시오 :

A = syms('A',[3,3]); % create 3x3 symbolic matrix 
B = A^(1/3);   % calculate the 3rd root of A 

결과는

ans = matrix([[a1_1, a1_2, a1_3], [a2_1, a2_2, a2_3], [a3_1, a3_2, a3_3]])^(1/3) 

같은 귀하의 경우에 발생 될 것입니다. 자세히 살펴보면 S(1,1)matrix 표현식은 matrix(...)^(32/57)

+0

감사합니다 !!! 이 어려움을 극복 할 수있는 방법이 있습니까? 정말 코드 에서이 표현을 사용하여 솔루션을 얻을 필요가있다. 아마 대략 해결책. – chaung1989

+0

결과가 상징적이어야합니까, 아니면 'a1','a2', a3'에 대한 값을 어느 시점에 삽입하고 이것들에 대해'S'를 평가할 것입니까? – hbaderts