CoCalc Public FilesYud Aleph class / מבחן.ipynb
Author: may elimelech
Views : 16
Compute Environment: Ubuntu 18.04 (Stable)
In [ ]:
np.diff()#עושה חיסור של איבר קודם ואיבר עכשיו
np.heaviside(y,0)#מינוס הופך לאפס ,פלוס הופך לאחד ואפס זה מה שאני בוחרת
np.arange()
np.array([])#יוצרת מערך

In [4]:
import matplotlib.pyplot as plt

import numpy as np

b=np.zeros([51])

b[0]=1

b[1]=1

for j in range(2,50):

b[j]=b[j-1]+b[j-2]

for h in range(len(b)-1):

if(b[h]%5==0):

print(b[h])

5.0 55.0 610.0 6765.0 75025.0 832040.0 9227465.0 102334155.0 1134903170.0 12586269025.0
In [ ]:
#אלגוריתם שיטת הטרפז חישוב שטח

In [3]:
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,1,0.001)
y=x**2
myint=np.sum(((y[1:]+y[:-1])/2)*np.diff(x))
print(myint)

0.33233449950000005
In [ ]:
#דוגמה לשאלה

In [4]:
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(3,5,0.001)
y=(x-1)*(x-3)*(x-5)*(x-7)
myint=np.sum(((y[1:]+y[:-1])/2)*np.diff(x))
print(myint)

11.733322668668595
In [72]:
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(2,8,0.001)
y=x*(x**2-1)*(np.sin(x)-0.5)*(6*x-2)
x2=np.arange(7,8,0.001)
y2=x2*(x2**2-1)*(np.sin(x2)-0.5)*(6*x2-2)
myint=np.sum(((y2[1:]+y2[:-1])/2)*np.diff(x2))
print(myint)
plt.plot(x,y)

7439.919927740341
[<matplotlib.lines.Line2D at 0x7efc46d8db90>]
In [35]:
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(2,3,0.001)
y=(x**3-1)*(np.sin(x)**2-1)*(4*x-4)-np.sin(x)+1
x2=np.arange(2,4,0.001)
y2=(x2**3-1)*(np.sin(x2)**2-1)*(4*x2-4)-np.sin(x2)+1
myint=np.sum(((y2[1:]+y2[:-1])/2)*np.diff(x2))
print(myint)
plt.plot(x,y)

-402.6129253735211
[<matplotlib.lines.Line2D at 0x7f9124628e90>]
In [36]:
import matplotlib.pyplot as plt
import numpy as np
print(np.diff(np.diff([1,1,1,2,2,2])))

[ 0 1 -1 0]
In [ ]:
#///////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#///////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#נגזרת

In [10]:
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,2,0.001)
y=x**3-9*x**2-23*x-15
y1=np.diff(y)/np.diff(x)
plt.plot(x,y)
plt.plot(x[1:],y1)

[<matplotlib.lines.Line2D at 0x7efc47936bd0>]
In [ ]:


In [ ]:
#///////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#///////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#שורשים ונקודות קיצון

In [67]:
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,3,0.01)
y=x**3-4.5*x**2+5.75*x-1.875
z1=np.heaviside(y,0)
z2=np.abs(np.diff(z1))#אפשר גם בלי זה פשוט הופך את המינוס לפלוס
vec=np.argwhere(z2==1)
print(x[vec])
plt.plot(x,y)
plt.plot(x[1:],z2)

[[0.5 ] [1.49] [2.5 ]]
[<matplotlib.lines.Line2D at 0x7efc4754cf10>]
In [12]:
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0.5,2.2,0.01)
y=x**3-4.5*x**2+6.5*x-3
yroots=np.diff(np.heaviside(y,0))
roots=np.argwhere(yroots!=0)
plt.plot(x,y)
plt.plot(x[roots],y[roots],'go')
print(x[roots])

[[0.99] [1.49] [2. ]]
In [ ]:
#מציאת נקודות קיצון

In [41]:
x=[-1,0,-1,-1]
for j in range(2000):
x=np.heaviside(np.heaviside(x,-1),-1)
print(x)

[-1. 0. -1. -1.]
In [15]:
import matplotlib.pyplot as plt
import numpy as np
def find_roots(x,y):
z=np.diff(np.heaviside(y,0))
return np.argwhere(z!=0)
x=np.arange(0,6,0.01)
y=x**5-25*x**4+230*x**3-950*x**2+1689*x-945
y1=np.diff(y)/np.diff(x)
vec2=find_roots(x[1:],y1)

plt.plot(x,y)
plt.plot(x[vec2],y[vec2],'go')


[<matplotlib.lines.Line2D at 0x7efc4752d190>]
In [ ]:
#מציאת נק קיצון ושורשים

In [2]:
import matplotlib.pyplot as plt
import numpy as np
def find_roots(x,y):
z=np.diff(np.heaviside(y,0))
return np.argwhere(z!=0)

x=np.arange(0.5,2.2,0.01)
y=x**3-4.5*x**2+6.5*x-3
yroots=np.diff(np.heaviside(y,0))
roots=np.argwhere(yroots!=0)

y1=np.diff(y)/np.diff(x)
vec2=find_roots(x[1:],y1)

plt.plot(x,y)
plt.plot(x[roots],y[roots],'go')
plt.plot(x[vec2],y[vec2],'ro')

In [13]:
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(-3,3,0.01)
y=x*(x+1)*(x+2)*(x-1)*(x-2)

yroots=np.diff(np.heaviside(y,0))
roots=np.argwhere(yroots!=0)

plt.plot(x[roots],y[roots],'go')
plt.plot(x,y)
print(x[roots])


[[-2.00000000e+00] [-1.00000000e+00] [-6.39488462e-14] [ 1.00000000e+00] [ 2.00000000e+00]]
In [73]:
import matplotlib.pyplot as plt
import numpy as np
def find_roots(x,y):
z=np.diff(np.heaviside(y,0))
return np.argwhere(z!=0)
x=np.arange(-3,3,0.01)
y=x*(x+1)*(x+2)*(x-1)*(x-2)
y1=np.diff(y)/np.diff(x)

vec2=find_roots(x[1:],y1)

plt.plot(x,y)
plt.plot(x[vec2],y[vec2],'go')

[<matplotlib.lines.Line2D at 0x7f9117f74d50>]
In [64]:
import matplotlib.pyplot as plt
import numpy as np
def find_roots(x,y):
z=np.diff(np.heaviside(y,0))
return np.argwhere(z!=0)
x=np.arange(-3,3,0.01)
y=x*(x+1)*(x+2)*(x-1)*(x-2)
g=np.diff(y)/np.diff(x)
#g1=np.diff(g)/np.diff(x)
yroots=np.diff(np.heaviside(g,0))
roots=np.argwhere(yroots!=0)

plt.plot(x[roots],g[roots],'go')
plt.plot(x[1:],g)
#print(x[roots])

[<matplotlib.lines.Line2D at 0x7f9124091890>]
In [88]:
import matplotlib.pyplot as plt
import numpy as np
def find_roots(x,y):
z=np.diff(np.heaviside(y,0))
return np.argwhere(z!=0)
x=np.arange(-3,3,0.01)
y=x*(x+1)*(x+2)*(x-1)*(x-2)
y1=np.diff(y)/np.diff(x)
x2=x[1:]
g=np.diff(y1)/np.diff(x2)
vec2=find_roots(x2[1:],g)
plt.plot(x[1:],y1)
plt.plot(x[vec2],y1[vec2],'go')

[<matplotlib.lines.Line2D at 0x7f91179dfd90>]
In [72]:
import matplotlib.pyplot as plt
import numpy as np
def find_roots(x,y1):
z=np.diff(np.heaviside(y1,0))
return np.argwhere(z!=0)

x=np.arange(-3,3,0.01)
y=x*(x+1)*(x+2)*(x-1)*(x-2)
y1=np.diff(y)/np.diff(x)
#y11=np.diff(y1)/np.diff(x)
vec2=find_roots(x[1:],y1)

plt.plot(x[1:],y1)
plt.plot(x[vec2],y1[vec2],'ro')

[<matplotlib.lines.Line2D at 0x7f9124bfb190>]
In [80]:
print(np.diff(np.heaviside([1,1,1,2,2,2,1,1,1],0)))

[0. 0. 0. 0. 0. 0. 0. 0.]
In [76]:
import matplotlib.pyplot as plt

import numpy as np

x=np.arange(-3,3,0.01)

y=x*(x+1)*(x+2)*(x-1)*(x-2)

yroots=np.diff(np.heaviside(y,0))

roots=np.argwhere(yroots!=0)

plt.plot(x[roots],y[roots],'go')

plt.plot(x,y)

print(x[roots])


[[-2.00000000e+00] [-1.00000000e+00] [-6.39488462e-14] [ 1.00000000e+00] [ 2.00000000e+00]]
In [31]:
import matplotlib.pyplot as plt
import numpy as np
def mse(x):
b=np.sum(x**2)
c=b/len(x)
print(c)
mse(np.array([1,2,3,4,5]))

11.0
In [78]:
import matplotlib.pyplot as plt

import numpy as np

x=np.arange(2,3,0.001)

y=(x**3-1)*(np.sin(x)**2-1)*(4*x-4)-np.sin(x)+1

x2=np.arange(2,4,0.001)

y2=(x2**3-1)*(np.sin(x2)**2-1)*(4*x2-4)-np.sin(x2)+1

myint=np.abs(np.sum(((y2[1:]+y2[:-1])/2)*np.diff(x2)))

print(myint)

plt.plot(x,y)

402.6129253735211
[<matplotlib.lines.Line2D at 0x7f9117c462d0>]
In [45]:
import matplotlib.pyplot as plt
import numpy as np
x=np.array([1,2,3])
y=x[1:]*x[:-1]-x[0]
print(y)

[1 5]
In [33]:
import matplotlib.pyplot as plt
import numpy as np
def mse(x):
b=np.sum(x**2)
c=b/len(x)
print(c)
y1=np.array([1,2,3])
y2=np.array([3,4,5])
t=y1-y2
mse(t)

4.0
In [ ]:
#///////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#///////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#טור טיילור

In [16]:
import matplotlib.pyplot as plt
import numpy as np
der=np.array([np.cos(0),-np.sin(0),-np.cos(0),np.sin(0)])
x= np.arange(0,0.1,0.01)
y=x*0
for n in range(20):
y=y+der[n%4]*(x**n)/np.math.factorial(n)
plt.plot(x,y)

[<matplotlib.lines.Line2D at 0x7efc47499210>]
In [17]:
import matplotlib.pyplot as plt
import numpy as np
der=np.array([np.sin(0),2*np.cos(0),-4*np.sin(0),-8*np.cos(0)])
x= np.arange(0.0001,12.56,0.01)
y=x*0
plt.figure(figsize=(15,15))
for n in range(20):
y=y+der[n%4]*(2*x**n)/np.math.factorial(n)
plt.subplot(5,4,n+1)
plt.plot(x,y)

In [ ]:
#///////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#///////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#משוואות דיפרנציליות

In [18]:
import matplotlib.pyplot as plt#y1=0.6y-1
import numpy as np
h=5/100
x=np.linspace(0,5,100)
y=x*0
y[0]=-6
for j in range (len(x)-1):
y[j+1]=h*(0.6*y[j]-1)+y[j]
plt.plot(x,y,'r')

[<matplotlib.lines.Line2D at 0x7efc46f89050>]
In [48]:
import matplotlib.pyplot as plt#y1=0.6y-1
import numpy as np
h=0.0001
x=np.arange(2,5,h)
y=x*0
y[2]=2

y1=np.diff(y)/np.diff(x)
for j in range (len(x)-1):
y[j+1]=2*h*y[j]+y[j]
plt.plot(x,y,'r')
plt.plot(x[1:],y1,'r')

[<matplotlib.lines.Line2D at 0x7f9124c09c10>]
In [12]:
import matplotlib.pyplot as plt#y1=0.6y-1
import numpy as np
h=2/100
x=np.linspace(0,2,100)
y=x*0
y[0]= 1
for j in range (len(x)-1):
y[j+1]=h*(y[j]+np.cos(y[j]))+y[j]
plt.plot(x,y,'r')

[<matplotlib.lines.Line2D at 0x7fe6acf3cfd0>]
In [ ]:
#///////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#///////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#וקטורים

In [4]:
#כפל מספר קדימה ועכשווי
import numpy as np
y=np.array([1,2,3,4,5])
b=y[1:]*y[:-1]
print(b)

[ 2 6 12 20]
In [11]:
#כפל שלוש מספרים קדימה ועכשווי
import numpy as np
y