from IPython.display import HTML
import matplotlib.pyplot as plt
HTML('''<iframe src="https://he.wikipedia.org/wiki/%D7%A9%D7%99%D7%98%D7%AA_%D7%9E%D7%95%D7%A0%D7%98%D7%94_%D7%A7%D7%A8%D7%9C%D7%95"
width=900 height=700"></iframe>''')
<font color = green>
from random import uniform #הבאת פונקציה שתביא מספר רנדומאלי לא שלם בתחום שנכתב
N=10000#מספר הנסיונות\נקודות
count=0#מספר הקליעות
for i in range(N):
x=uniform(-1,1)#הגרלה של שיעור ה-איקס בין 1- ל1
y=uniform(-1,1)#הגרלה של שיעור הוואי בין 1- ל1
if x**2+y**2<=1:# בדיקה אם הוא נמצא בתוך או על המעגל
count=count+1
float(count)/N*4
<font color = blue>
<font color = green>
from random import uniform
def pi_Evaluation(N):
count=0
for i in range(N):
x=uniform(0,1)
y=uniform(0,1)
if x**2+y**2<=1:
count=count+1
return float(count)/N*4
pi_Evaluation(100000)
#הדיוק בחישוב פאי תלוי במספר ההרצות
<font color =green>
השלימו את קטע הקוד שבהמשך.
</div><def get_trails(k,N):
pi_list=[pi_Evaluation(N) for i in range(k)]
return pi_list
get_trails(5,10000)
<font color = green>
import matplotlib.pyplot as plt
N=5000
trails=10000
o=plt.hist(get_trails(trails,N),bins=30)
<font color = green>
<font color = green>
import py_compile
py_compile.compile('my_statistics.py')
from my_statistics import mean
def mean_for_pi(k,N):
return mean(get_trails(k,N))
mean_for_pi(5,10000)
<font color =green>
from my_statistics import std
import matplotlib.pyplot as plt
get_trails(5,1000)
<font color = green>
<div dir =rtl> <font color = blue>אליפסה היא המקום הגיאומטרי של כל הנקודות שסכום מרחקיהן משתי נקודות קבועות המכונות מוקדי האליפסה הוא קבוע ושווה לקוטר הגדול של האליפסה, 2a, הקוטר הקטן של האליפסה שווה ל-2b. </font>
<font color =green> כתבו פונקציה בשם ellipse_area המקבל שלושה פרמטרים a, b ו- tol המחשבת שטח של אליפסה שחצי הקוטר הגדול שלה הוא a וחצי הקוטר הקטן הוא b בדיוק של tol. השגיאה בחישוב השטח היא מסדר גודל של סטיית התקן.</font></div>
import random
from math import pi
def ellipse_area(a,b,tol):
rec_area = 2*a*2*b
con1=0
con2=0
ellipse_area1=pi*a*b#חישוב לפי נוסחא
for i in range(tol):
x=uniform(-a,a)
y=uniform(-b,b)
if ((x*x)/(a*a) + (y*y)/(b*b) <= 1):
count=count+1
ellipse_area2=(float(count)/tol)*rec_area#חישוב לפי שיטת מונטה קרלו
return ellipse_area1, ellipse_area2#השוואה בין השטחים
ellipse_area(6,3,10000)