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

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

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

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

Q&A

0回答

1807閲覧

matlabでのボール投げの軌跡についてのプロット

退会済みユーザー

退会済みユーザー

総合スコア0

MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

0グッド

0クリップ

投稿2020/08/05 06:35

編集2020/08/05 17:24

matlabでボール投げの軌跡をグラフにプロットしたいです。作ったプログラムに空気抵抗と跳ね返りの軌跡のプログラムを付け加えたいです。
空気抵抗の式として考えているのは
vx=vx-kvvxdt
vy=vy-g
dt-kvvy*dt
のような式を考えています。
跳ね返る回数は4回としてy<0の時に、直前の速度vに跳ね返り係数eをかけて、vx,vyに分解する

コードは
function ball1
% ボール投げの軌跡
% v0: 初速度
% ang: 投げ上げの角度(度)
v0=5
g = 9.8; % 重力加速度
dt = 0.05; % 時間の刻み幅
ang=10
e=0.8
s = angpi/180; % ラジアンに変換
% 位置の初期値
x = 0;
y = 0;
% 速度の分解
vx0 = v0
cos(s);
vy0 = v0*sin(s);

% 初期値を図に描く.タイトルやラベルも付ける
plot(x,y,'bo')
title('Air resistant ball throw')
xlabel('x'), ylabel('y')
hold on % 軌跡を残す

% 速度の初期値
vx = vx0;
vy = vy0;
while y >=0 % 空中にいる間は継続
x = x + vxdt; % x方向の位置変化
y = y + vy
dt; % y方向の位置変化
vy = vy - g*dt; % y方向の速度変化
plot(x,y,'bo')
pause(0.1) % 表示のために0.1秒止める

end
hold off
コードはここまでできており跳ね返り係数e=0.85として考えてもらいたいです。
よろしくお願いします!

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

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

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

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

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

ikadzuchi

2020/08/05 16:31

空気抵抗と跳ね返りについて一切手を付けられていないように見えます。 丸投げと判断します。
退会済みユーザー

退会済みユーザー

2020/08/05 17:26

跳ね返りの回数など所々追加してみました。具体的にどこが悪いか指摘をお願いします。すみません
ikadzuchi

2020/08/06 16:40

どこが悪いといいますか、単純に何も問題解決の努力をせず課題を丸投げしているように見えたのです。 (式だけでなく実際にコードに起こす努力も見せてほしいところですが)一応改善されたので低評価取り消します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問