dポイントプレゼントキャンペーン実施中!

matlabの質問です
軌道長半径a=8176.5km、離心率e=0.1521の楕円軌道において近地点通過する時刻tpを基準時刻とし
この時基準時刻から100分後の平均近点離角M、離心近点離角Eを計算するmatlabスクリプトを作りソースコードと実行結果を示す。地球の重力定数は398,600km3 s-2とする。という問題についてスクリプトの作り方わかる方いらっしゃったら教えてほしいです

質問者からの補足コメント

  • これだと違いますよね?

    「matlabの質問です 軌道長半径a=8」の補足画像1
      補足日時:2020/10/17 09:36
  • そうです!

      補足日時:2020/10/17 15:16
  • 脱出条件書いてないです!

      補足日時:2020/10/17 16:49
  • 写真の例のようにE0などは使わないですか?

      補足日時:2020/10/17 16:52
  • これと同じようにするとできますか?

    「matlabの質問です 軌道長半径a=8」の補足画像5
      補足日時:2020/10/18 12:29
  • これはどう?

    これと同じようにするとできますか?

    「matlabの質問です 軌道長半径a=8」の補足画像6
      補足日時:2020/10/18 12:30
  • 例なんですけど
    これと同じようにするとできますか?

    「matlabの質問です 軌道長半径a=8」の補足画像7
      補足日時:2020/10/18 12:31
  • 例なんですけど
    これと同じようにするとできますか?

    「matlabの質問です 軌道長半径a=8」の補足画像8
      補足日時:2020/10/18 12:31
  • うーん・・・

    質問です
    これってあってますかね?

    「matlabの質問です 軌道長半径a=8」の補足画像9
      補足日時:2020/10/18 19:24
  • つらい・・・

    こうなってしまいました笑

    「matlabの質問です 軌道長半径a=8」の補足画像10
      補足日時:2020/10/19 15:51

A 回答 (19件中11~19件)

> コード自体はこれを正しく入力すればよいんですよね?



いいと思いますよ。

それと。

基本的に「写真で投稿する」なら、ケータイで撮るのは止めた方が良いでしょう。見づらくてしょーがないです。何が書かれてるか判別するのが厄介なんで。
コンピュータ上ではPrtScrキーを押せばデスクトップの写真を撮る事が出来ます。(あるいはAlt + PrtScrキーでアクティブウィンドウを撮影出来ます)
Matlabを扱うより先に「コンピュータの使い方」をまずは覚えましょう。
    • good
    • 0
この回答へのお礼

補足越えしてあたらしく投稿したんですけど赤線のとこ➖が違うのかとおもったんですけどあっててどこがまちがってるかわからないです笑

お礼日時:2020/10/19 19:25

> エディターにコマンドウィンドとおなじのを描きました!



もはや物理全然関係ねぇんだけどなぁ(苦笑)。

例えば、

fprintf("%2d %10.7f %8.3f\n", k, abs(E1ーE0), E1*180/pi);
                   ↑
エラー : テキスト文字が正しくあ
りません。サポートされていない
記号、非表示の文字、または非
ASCII 文字の貼り付けをチェッ
クしてください。

と言うのは、E1-E0で使ってるマイナス記号が全角文字・・・要するに計算の為の記号じゃない、って言ってるんでしょう。そんなの使えばエラーが出て当然です。

あとはプログラムの「書き方」の問題じゃなくってデバッグの問題なんで・・・そんなの全部ここで付き合ってるわけにも行きませんよねぇ。
Matlabのエラー表示を「良く読んで」1つづつ潰して行くしかありませんよ。
    • good
    • 0
この回答へのお礼

コード自体はこれを正しく入力すればよいんですよね?

お礼日時:2020/10/19 19:12

> こうなってしまいました笑



んーーー。あれ?
これ、直接ターミナル(Matlabの実行面)に書き込んでる?
どうしてエディタ側にコード書かないんですか?
間違って修正するのもメンド臭いでしょう。

写真: Matlab互換と言われるGNU Octaveの画面。
右手に「コマンドウィンドウ」って書かれてるが、ここに記述する場合、簡単な計算やテストのみに限る。
本格的にプログラムを書く(例えば今回のケプラーの式とか)場合、エディタを開いてそこでプログラムを編集しないと、ちょっとした間違いで全てがおじゃんになってしまう。
まずはエディタを開いてプログラムを書こう。
「matlabの質問です 軌道長半径a=8」の回答画像7
    • good
    • 0
この回答へのお礼

補足が上限こえてしまったみたいです

お礼日時:2020/10/19 18:33

> これってあってますかね?



多分大丈夫なんじゃないですか?
角度的には285度ちょっとでしょうしね。
    • good
    • 0
この回答へのお礼

エディターにコマンドウィンドとおなじのを描きました!

お礼日時:2020/10/19 18:34

> これと同じようにするとできますか?



ああ、大丈夫なんじゃないかしらん。
っつーか基本的にNo.4と同じですよね。

No.4だとE一つで解決してるけど、写真に貼られてるのはE1とE0と2つ変数を用意して、E0にE1を代入しなおす、ってやってるだけなんで、意味的にはNo.4で見せたコアの部分と全く同じ事をしていると思います。
    • good
    • 0
この回答へのお礼

エラーなく正しくできました!

お礼日時:2020/10/19 20:30

> 写真の例のようにE0などは使わないですか?



いや、使っても構いませんよ。
僕が書いたのはFixed-point iterationと言ってニュートン法の簡単なやり方です。
貴方がやりたいカタチは概形的には多分、

E = M
for i = 1:10
 E = E - (E-e*sin(E)-M)/(1-e*cos(E))
endfor

ですよね。E0を作る、と言うよりも最初にE=Mを定義しておいて、古いEを使って新しいEの値を定義していく、って方式ですよね。
どっち使っても、結局、

E = 4.9767

に比較的早く(Matlab/GNU Octave上では)収束するんじゃないでしょうか。
    • good
    • 0

ん〜、脱出条件をどうするか、ってのは設問に書いてないんですかね?


もし、10回ループさせたい、ってぇのなら、単純に、

E = M
for k = 1:10
 E = M + e*sin(E)
endfor

で充分なんじゃないか、って思うんですけどねぇ。
恐らく早い段階で、

E = 4.9767

に収束すると思いますけど。
    • good
    • 0

ん〜、結局、離心近点離角を解析的に求めるのが難しいから、数値計算で求めたい、って話なんですかね?

    • good
    • 0

ん〜。

Matlabかぁ。
Matlabを個人的に持ってる人って少ないんじゃないかしらん。

一応、(ある程度の)Matlab互換がある、GNU Octave使えば次のようになるんじゃないですかねぇ。スクリプトって程じゃないんですが。

%% ここから

a = 8176.5 % 軌道長半径
e = 0.1521 % 離心率
mu = 398600 % 地心重力定数
n = 1/sqrt(a^3/mu) % 2π/周期
M = n * 100 * 60 % 平均近点離角
E = M + e*sin(M) + e^2/2 * sin(2*M) + e^3/8 * (3*sin(3*M) - sin(M)) % 離心近点離角
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!