설명
고유값/벡터 테스트.
알려진 고유값/벡터를 갖도록 A를 구성합니다. A X = X lam
A = 2 1 X = 1 1 램 = 1
1 2 -1 1 3
기고자: Steve Dirkse, 2008년 10월
소형 모델 유형 :메가 슬롯
카테고리 : 메가 슬롯 테스트 라이브러리
메인 파일 : eigvec02.gms
$title 고유벡터/고유값 유틸리티 테스트(EIGVEC02,SEQ=413)
$onText
고유값/벡터 테스트.
알려진 고유값/벡터를 갖도록 A를 구성합니다. A X = X lam
A = 2 1 X = 1 1 램 = 1
1 2 -1 1 3
기고자: Steve Dirkse, 2008년 10월
$offText
I / i1 * i2 / 설정;
별칭(I,J,K);
매개변수
A(I,J) '알려진 고유벡터/값을 갖도록 구성됨'
X0(I,J) '알려진 고유벡터'
X(I,J)
lam0(I) '알려진 고유값' /
나는1 1
i2 3
/,
램(나)
s(J) '고유벡터 비교를 위한 척도'
;
테이블 A(I,J)
i1 i2
나는1 2 1
i2 1 2 ;
테이블 X0(I,J)
i1 i2
나는1 1 1
i2 -1 1 ;
ExecuteTool.checkErrorLevel 'linalg.eigenvalue I A 램';
* 기호 lam은 ExecuteTool에 의해 암시적으로 로드되었습니다. 컴파일러 명령어
* 다음 줄에서는 아마도 할당되지 않은 기호에 대한 오류를 억제합니다.
$onImplicitAssign
abort$[smaxI, abs(lam(I)-lam0(I)) > 1e-8] 'lam (1)의 잘못된 고유값';
ExecuteTool.checkErrorLevel 'linalg.eigenVector I A 램 X';
abort$[smaxI, abs(lam(I)-lam0(I)) > 1e-8] 'lam (2)의 잘못된 고유값';
s(J) = X0('i1',J) / X('i1',J);
X(I,J) = X(I,J) * s(J);
abort$[smax(I,J), abs(X(I,J)-X0(I,J)) > 1e-8] 'X의 잘못된 고유벡터';