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

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

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

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Python

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

Q&A

4回答

924閲覧

Pythonのfor文を用いて積分計算を行いたい

east-site.3

総合スコア1

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Python

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

0グッド

0クリップ

投稿2023/04/21 08:47

実現したいこと

Pythonのfor文を用いて積分計算を行いたいです

前提

y=3*xという関数をxが0から10までの範囲で積分をしてさらにmatplotlib.pyplotを用いて描画を行いたいのです。

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

グラフに何も表示されません

該当のソースコード

Python

1import numpy as np 2import matplotlib.pyplot as plt 3 4x=0 5x=x+1 6y=3*x 7h=0.01 8for x in range(1,10,1): 9 y=y+h*y 10plt.plot(x,y)

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

can110

2023/04/21 09:03

x,y軸はどんな値をとり、どんな形(棒?折れ線?)なのか? といったどんなグラフを表示したいのか?を記載ください。
east-site.3

2023/04/21 10:46

xは0から10まで1つずつ、yは0から27まで3つずつ、グラフは折線でとります
can110

2023/04/21 13:40

xが0から10まで一つずつ、ならy=3*xは0から30までになりませんか? つまり「yは0から27まで3つずつ」とは「yは0から30まで3つずつ増えていく値」ということですか?
guest

回答4

0

描きたいグラフはこんな感じでしょうか。

Python

1import matplotlib.pyplot as plt 2 3xs = [i for i in range(11)] 4ys = [3*x for x in xs] 5plt.plot(xs,ys) 6plt.show()

イメージ説明

なお、積分結果は上記グラフ折れ線の下側の面積になるかと思いますが、ChatGPTに聞いてみました。

y=3*xという関数をxが0から10までの範囲で積分をした結果は?

y = 3x は、y軸とx軸に対して傾斜角が45度の直線であるため、原点を通る三角形の面積になります。したがって、0から10までの範囲での積分は、次のように計算できます。

∫[0, 10] 3x dx = [3/2 x^2]_0^10 = (3/2 * 10^2) - (3/2 * 0^2) = 150

したがって、求める積分の結果は150になります。

投稿2023/04/21 13:51

can110

総合スコア38262

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

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

0

こんな感じでしょうか。

python

1import numpy as np 2import matplotlib.pyplot as plt 3 4x = np.arange(11) 5y = 1.5 * x ** 2 # ∫3x dx == 3*(x**2/2) 6 7plt.plot(x, y) 8plt.gcf().tight_layout() 9plt.show()

イメージ説明

投稿2023/04/21 12:12

編集2023/04/21 13:19
melian

総合スコア19714

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

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

0

回答が付きにくそうな質問なのであえて書いてみます。

まず、pythonを使って積分をグラフにしたいのであれば、「python 積分」で検索した以下のサイトが参考になるでしょう。
https://www.sejuku.net/blog/69496
「やはりx軸についてはリストなどで定義するしかないのでしょうか」の回答はこれにあたるかと思います。

このサイトでは、sympyという、代数計算ライブラリを使っています。もうちょっとベタな数値計算的を使ってやりたいのであれば、xとyの値のペアをリストで生成するということになるでしょう。

どちらの場合でも、コメントにある通り、どのようなグラフを書きたいのかということが明確になっていないと、書くことはできません。

また、いずれにしても、pythonの基本的な文法/書き方を習得している必要がありますが、質問にあるコードの内容を見ると、まずはそこをちゃんと勉強してからがいいと思います。
特にscypyは、変数を特殊な方法で扱いますから、いきなりこれを使って何かしようとするのは無理があると思います。、

投稿2023/04/21 11:43

TakaiY

総合スコア12747

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

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

0

y=3*xという関数をxが0から10までの範囲で積分をしてさらにmatplotlib.pyplotを用いて描画を行いたいのです。

このコードはそうなっていませんね
y=y+h*y
を単に10回 9回繰り返しているだけ、です。xはどこに。。

投稿2023/04/21 09:21

編集2023/04/21 09:24
y_waiwai

総合スコア87749

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

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

east-site.3

2023/04/21 10:45

ご回答ありがとうございます。やはりx軸についてはリストなどで定義するしかないのでしょうか
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問