숫자에서는 불안정한 체계를 식별하고 안정성을 향상시키는 것이 매우 중요합니다. 불안정한 부동 소수점 계산을 식별하는 방법은 무엇입니까?
많은 수치 체계가 함께 작동하는 매우 복잡한 시뮬레이션을 진행 중이며 약한 부분을 식별하는 방법을 찾고 있습니다. 미분 방정식과 관련된 물리적 모델을 연구 중입니다. 전체 프로세스의 조감도는 다음과 같습니다.
(예비 단계) 실제 관측 수집 P를 .
시뮬레이션의 초기 매개 변수를 결정하십시오. 이것은 최적화 알고리즘을 사용하는데, 여기서 우리는 매개 변수 공간을 걷고 일부 오류 함수 E (F (C), P) 가 최소화 되도록 매개 변수 C를 찾습니다 . 여기서 F 는 매개 변수의 파생 수량입니다.
플러그 C 시뮬레이션 엔진이다. 이것은 EDP의 오일러 체계이므로 매번 단계마다 역 동성을 유도하는 용어를 계산하고 (각각 복잡한 기능이며 잠재적으로 불안정 할 수 있음) 오일러 체계에 이러한 동적 용어를 공급하여 다음을 계산합니다. 상태. 이것은 수천 시간 동안 계속됩니다.
시뮬레이션이 끝나면 최종 상태 S 의 일부 Proof (S) 함수를 계산 하고 관찰 된 수량에서 추론 된 Require (P) 수량과 비교합니다 . 이것은 결과에 대한 공식적인 증거가 아니며, 타당성 점검입니다.
또한 복잡한 작업 타워 (Euler 체계 내, Proof 내에서 동적 용어 계산 )를 봅니다. 그리고 "나쁜 부분"을 인식하고 수정하고 싶습니다.
부동 소수점 수의 소프트웨어 구현을 정확도를 낮추면 수치 체계의 불안정성이 확대되어 다른 구현 간의 비교가 쉬워 질 것이라고 추측합니다. 이 질문을 조사하는 일반적인 기술입니까? 프로그램을 변경하지 않고 가상 머신을 Bochs로 사용하여이를 달성 할 수 있습니까?
안정성 문제를 적절하게 처리하기 위해 수치 절차의 일반적인 입력을 목표로하는 것이 허용 될 수 있으므로 해당 입력에 대해 잘 수행되고 다른 유효하지만 가능성이 낮은 입력에 대해서는 덜 적합하도록 조정될 수 있습니다. 일반적인 입력 샘플이 제공되면 일부 중간 결과 를 스누핑 하고 통계 프로파일을 준비 할 수 있습니다. 다시, 이것은 안정성 문제를 연구하는 일반적인 기술입니까? 가상 머신이 이것에 유용합니까?