質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2302閲覧

4元連立微分方程式で衛星の軌道計算

HaruKasu

総合スコア6

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/01/18 17:33

前提・実現したいこと

衛星が惑星の周りを軌道運動している時、潮汐力の影響による衛星のひょうどう運動を、連立微分方程式を解くことで数値計算したいです。

発生している問題・エラーメッセージ

(t,r)グラフを表示してrがtに対して周期的であれば良いのですが、直線的なグラフになってしまい、修正の仕方がわかりません。エラーが出て困っているのではなく、微分方程式が正しく解けていないことはグラフから明らかだが修正箇所及び方法がわからない、という質問です。こんな時間ですが、宜しければどなたかお願い致します…!

エラーメッセージ

該当のソースコード

import math import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt day = 3000 t_min = 0.0 t_max = day*24*60*60 N = 10**5 n = 2*np.pi a = 1.0 e = 0.1 k = n*a*pow(1-e*e, -1/2) def func(u, t, k, n, a, e): r = u[0] f = u[1] x1 = u[2] # γ x2 = u[3] # dγ/dt drdt = k*e*np.sin(f) dfdt = k*(1+e*np.cos(f))/r dx1dt = x2 dx2dt = -0.02*n*n*pow(a/r, 3)*np.sin(2*x1-2*f) return ([drdt, dfdt, dx1dt, dx2dt]) t = np.linspace(t_min, t_max, N) # 時間刻み u0 = [1.0, 10.0, 10.0, 10.0] # r,f,γ,dγ/dtの初期値 u_list = odeint(func, u0, t, args=(k, n, a, e)) plt.plot(t, u_list[:,0])

試したこと

そもそも方程式を書き間違っていないかなどは確認済みです。

補足情報(FW/ツールのバージョンなど)

Python3をAnacondaで使っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

day = 0.1
N = 10**4
に変更する。

オリジナルは時間区間の設定が広すぎます。

投稿2020/01/20 23:05

WathMorks

総合スコア1582

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HaruKasu

2020/01/21 02:07

GradMisonTokyo 様 ありがとうございます!グラフがうまく出ない理由をいろいろ検討したつもりでしたが、そういったことが原因のひとつになりうるということを知ることができてとても感謝しています!今後も大学の研究でプログラミングが必須の日々が続くので、上手くいかない時の検討材料のひとつに組み込みます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問