teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2018/03/12 16:11

投稿

TaroToyotomi
TaroToyotomi

スコア1461

answer CHANGED
@@ -12,4 +12,26 @@
12
12
  plt.show()
13
13
  ```
14
14
 
15
- ![イメージ説明](502d6b487452f2818b7d67d190e3b03a.png)
15
+ ![イメージ説明](502d6b487452f2818b7d67d190e3b03a.png)
16
+
17
+ ==追記==
18
+ 積分範囲はy1,y2の関数で取りうる値域をそのまま使うのではだめですか?
19
+ その場合、Xのmax/minを計算しなくても済みますが。
20
+ ```python
21
+ # locとscaleの値は仮想のもの
22
+ x = np.linspace(0,10,5000) #5000点に増やした
23
+ y1 = stats.norm.pdf(x,loc=2,scale=0.5)
24
+ y2 = stats.norm.pdf(x,loc=3,scale=0.8)
25
+ y3 = np.minimum(y1,y2)
26
+ abInteg=integrate.simps(y3, x) #AxBの面積を求める
27
+
28
+ plt.plot(x,y1,label='func A')
29
+ plt.plot(x,y2,label='func B')
30
+ plt.fill(x,y3,label="A*B")
31
+ AxB='AxB area={}'.format(abInteg)
32
+ plt.text(5,0.6,AxB)
33
+ plt.legend()
34
+ plt.show()
35
+ ```
36
+
37
+ ![イメージ説明](ccc7451f19b8efcbac73bdbf81b99983.png)

1

コードを追記

2018/03/12 16:11

投稿

TaroToyotomi
TaroToyotomi

スコア1461

answer CHANGED
@@ -1,1 +1,15 @@
1
- どこまでの精度が必要か分かりませんが、提示のコードからだと、xの範囲でy1とy2のリストについて小さい方の値をとったy3というリストを作って面積を求めるのではだめですか?
1
+ どこまでの精度が必要か分かりませんが、提示のコードからだと、xの範囲でy1とy2のリストについて小さい方の値をとったy3というリストを作って面積を求めるのではだめですか?
2
+
3
+ ```python
4
+ x = np.linspace(-10,10,100)
5
+ y1 = stats.norm.pdf(x,loc=2,scale=0.5)
6
+ y2 = stats.norm.pdf(x,loc=3,scale=0.8)
7
+ y3 = np.minimum(y1,y2)
8
+ plt.plot(x,y1,label='func A')
9
+ plt.plot(x,y2,label='func B')
10
+ plt.plot(x,y3,label="A*B")
11
+ plt.legend()
12
+ plt.show()
13
+ ```
14
+
15
+ ![イメージ説明](502d6b487452f2818b7d67d190e3b03a.png)