숫자 : 다음 ODE를 다시 정규화하는 방법


9

이 질문은 문제를 수치 적으로 해결하는 방법에 관한 것입니다.

작은 프로젝트에서 나는 Janus와 Epimetheus의 coorbital motion을 시뮬레이션하고 싶었습니다. 이것은 기본적으로 3 신체 문제입니다. 토성을 원점에 고정시키기 위해 토성을 선택하고, 과 를 각각 janus와 epimetheus의 위치 벡터로 하자 . Janus와 Epimetheus가 매우 가까이있을 때 효과가 발생하므로 및 보다 나은 해상도를 위해 상대 좌표를 선택했습니다 . 이제 다음과 같은 운동 방정식을 얻습니다.아르 자형1아르 자형2아르 자형=아르 자형1아르 자형2아르 자형=아르 자형1+아르 자형2

22(아르 자형아르 자형)=(미디엄2±미디엄1)아르 자형아르 자형4미디엄(아르 자형+아르 자형(아르 자형+아르 자형)아르 자형아르 자형(아르 자형아르 자형))

여기서 미디엄나는 는 달의 질량에 해당하고 미디엄 은 토성의 질량이고 는 중력 상수입니다. 이 수치를 해결하려고 할 때 문제가 발생합니다. 완전히 다른 크기의 값, 즉 미디엄이자형28미디엄나는이자형17 합니다. 그리고 아르 자형 , 아르 자형 은 0에서 150,000의 영역에 있습니다.

솔직히 말해서 나는 이것이 그러한 수치 적 문제를 논의하기위한 장소 포럼인지 확실하지 않습니다.

추가 정보:

코드는 Matlab으로 작성되었으며 표준 ODE 솔버를 사용하여 결과를 얻습니다. 그러나 기계 정밀도 하에서 스텝 크기를 줄일 수 없기 때문에 이것은 고장입니다. (이것은 이미 언급 된 크기의 순서를 처리해야하기 때문에 놀라운 일이 아닙니다.)


2
이 시뮬레이션을 SI 단위로 실행하고 있습니까? 최소한 요소로 모든 것을 나누어야 몇 자릿수를 제거 할 수 있습니다. 미디엄2

안녕하세요, 저는 여전히 작동하지 않습니다 ... 이전과 같은 문제가 발생합니다. :(

질량 단위를 달 질량 중 하나로 설정하고 길이 / 시간 단위를 설정하여 1로 설정해야합니다. 글을 잘 쓰면 1/100보다 작아서는 안됩니다. 처방전없이 구입할 수있는 솔버가 필요하지 않습니다. 이 단계를 제어하는 ​​코드를 직접 작성하십시오. 이러한 유형의 전위를 사용하여 단계별로 세분화하면 충돌에서 발생할 수 있으며, 솔버는 수렴이있을 때까지 단계 화를 줄이려고하며 충돌시 수렴이 없습니다. 궤도가 동일 선상에 있지 않은지 확인해야하므로 시뮬레이션을 봐야합니다. 있는 그대로 답변을 얻을 수 없습니다.
Ron Maimon

1
약어는 피하십시오. DGL = 디퍼 럴 글레이 청?

어떤 표준 ODE 솔버를 사용하고 있습니까?
Geoff Oxberry

답변:


2

현재 접근 방식은 수치 안정성을 떨어 뜨립니다. 사실 당신은 아마 이런 식으로 해상도를 잃을 것입니다.

각 위성의 케플러 변수 및 위성 위치, 속도 및 원점을 포함하는 평면의 각도를 좌표로 사용하십시오. 위성 간의 상호 작용이없는 미분 방정식은 사소하게 단순하며 상호 작용 만 다소 복잡해집니다. 위성이 멀리 있으면 상호 작용이 작기 때문에 그 결과로 나타나는 역학은 수치 적으로 안정적이어야합니다.



0

시뮬레이션에 세 단계가 있다면 어떨까요?

  1. 야누스-토성 힘을 계산하여 야누스 위치를 업데이트합니다.
  2. Epimetheus-토성 힘을 계산하여 Epimetheus 위치를 업데이트합니다.
  3. 야누스-에피메테우스 힘을 계산하여 야누스와 에피메테우스 위치를 업데이트합니다.

# 3에 더 미세한 타임 스텝을 사용할 수 있습니다.

이것이 도움이 될지 확실하지 않습니다. 실제 문제는 달이 가까이있는 경우를 제외하고 달-달과 달-토성의 경우 힘의 크기가 다르다는 것입니다.

또는

  1. 달이 닫히면 질량 중심 벡터를 사용하여 대략적인 달-토성 힘을 계산하고 두 위치를 동일한 벡터로 업데이트하십시오.
  2. 멀리 떨어져 있으면 별도로 업데이트하십시오.
  3. 이전과.

행운을 빌어 요!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.