dual numbers을 처리 할 Matlab 클래스를 작성하여 automatic differentiation을 수행했습니다. 거의 모든 경우에 이것은 잘 작동하며 새로운 클래스는 대부분의 함수에서 다른 숫자 클래스를 대체합니다 (필드 'x'는 함수의 값을 제공하고 필드 d는 파생 된 값을 제공합니다. 그 때의 함수).할당 연산자의 왼쪽 부분 승격
>> x = mkdual([1 2 3]);
>> x.^2
ans =
Dual
Properties:
x: [1 4 9]
d: [2 4 6]
그러나, 함수 출력의 배열은 사전 - 할당 실패시, 그리고 그것으로 인덱싱하여 배열에 할당한다.
>> x=mkdual(1);
>> y(2,:)=x
??? The following error occurred converting from Dual to double:
Error using ==> double
Conversion to double from Dual is not possible.
: 그것은 이중 번호로 할당 연산자의 좌측에 배열을 촉진 할 수 없기 때문에
>> y=zeros(2) // Pre-allocate for speed
y =
0 0
0 0
>> x = 1;
>> y(1,:)=x
y =
1 1
0 0
불행하게도이, 내 수업에 실패 예를 들어, 다음은 매트랩 일반적인 패턴이다
누구나 수정이나 해결 방법을 제안 할 수 있습니까? y
을 Dual
으로 자동 승격시킬 수있는 방법이 있습니까?
깔끔한 아이디어입니다. 감사합니다. –