v1.0

v1.0
v1.0

v1.0

v1.0

v1.0

v1.0

v1.0

v1.0

v1.0

v1.0

v1.0
This commit is contained in:
2020-05-16 15:38:24 -03:00
committed by Vitor Hideyoshi
parent bb2b938156
commit e444e2e7ed
13 changed files with 730 additions and 137 deletions

View File

@@ -26,11 +26,10 @@ class Algebra:
def __init__(self, function):
self.f = function
def riemann(self,interval):
def riemann(self,a,b,n=None):
a = interval[0]
b = interval[1]
n = interval[2]
if n is None:
n = 10**6
delta = (b-a)/n
@@ -46,15 +45,14 @@ class Algebra:
return integral
def simpson(self, interval):
def simpson(self,a,b,n=None):
if n is None:
n = 10**6
def x(i):
return a + i*h
a = interval[0]
b = interval[1]
n = interval[2]
h = (b-a)/n
eta = 0
@@ -81,15 +79,13 @@ class Algebra:
def __init__(self,function):
self.f = function
def riemann(self,x_interval,y_interval):
def riemann(self,a,b,c,d,n=None,m=None):
if n is None:
n = 10**4
a = x_interval[0]
b = x_interval[1]
n = x_interval[2]
c = y_interval[0]
d = y_interval[1]
m = y_interval[2]
if m is None:
m = n
dx = (b-a)/n
dy = (d-c)/m
@@ -109,15 +105,13 @@ class Algebra:
return theta*(dx)*(dy)
def simpson(self,x_interval,y_interval):
def simpson(self,a,b,c,d,n=None,m=None):
if n is None:
n = 10**4
a = x_interval[0]
b = x_interval[1]
n = x_interval[2]
c = y_interval[0]
d = y_interval[1]
m = y_interval[2]
if m is None:
m = n
dx = (b-a)/n
dy = (d-c)/m
@@ -178,12 +172,10 @@ class Algebra:
if function is not None:
self.f = function
def bissec(self, interval):
""" invertal = [a,b,e] ; with 'a' being the first value of the interval, 'b' the last value of the interval and 'e' the precision of the procedure. """
a = interval[0]
b = interval[1]
e = interval[2]
def bissec(self,a,b,e=None):
if e is None:
e = 10**(-6)
fa = self.f(a)
@@ -208,10 +200,10 @@ class Algebra:
def d(self, x, e):
return (self.f(x + e) - self.f(x - e))/(2*e)
def newton(self, interval):
def newton(self,a,e=None):
a = interval[0]
e = interval[1]
if e is None:
e = 10**(-6)
fa = self.f(a)
da = self.d(a,e)
@@ -227,11 +219,10 @@ class Algebra:
return a
def bissec_newton(self, interval):
def bissec_newton(self,a,b,e=None):
a = interval[0]
b = interval[1]
e = interval[2]
if e is None:
e = 10**(-6)
fa = self.f(a)
@@ -271,12 +262,10 @@ class Algebra:
def __init__(self, function):
self.f = function
def euler(self, interval):
def euler(self,a,y,b,n=None):
a = interval[0]
b = interval[1]
y = interval[2]
n = int(interval[3])
if n is None:
n = 10**7
dx = (b-a)/n
@@ -289,12 +278,10 @@ class Algebra:
return y
def runge(self, interval):
def runge(self,a,y,b,n=None):
a = interval[0]
b = interval[1]
y = interval[2]
n = int(interval[3])
if n is None:
n = 10**7
dx = (b-a)/n
@@ -315,6 +302,59 @@ class Interpolation:
self.data = data
self.polinomial = self.Polinomial(self.data)
def minimus(self,x):
theta = 0
# somatorio de x
for i in range(self.data.shape[0]):
theta += self.data[i][0]
eta = 0
#somatorio de y
for i in range(self.data.shape[0]):
eta += self.data[i][1]
sigma = 0
#somatorio de xy
for i in range(self.data.shape[0]):
sigma += self.data[i][0]*self.data[i][1]
omega = 0
#somatorio de x^2
for i in range(self.data.shape[0]):
omega += self.data[i][0]**2
self.a = (self.data.shape[0]*sigma - theta*eta)/(self.data.shape[0]*omega - (theta**2))
self.b = (theta*sigma - eta*omega)/((theta**2) - self.data.shape[0]*omega)
ym = 0
for i in range(self.data.shape[0]):
ym += self.data[i][1]/self.data.shape[0]
sqreq = 0
for i in range(self.data.shape[0]):
sqreq += ((self.a*self.data[i][0] + self.b) - ym)**2
sqtot = 0
for i in range(self.data.shape[0]):
sqtot += (self.data[i][1] - ym)**2
self.r2 = sqreq/sqtot
return self.a*x + self.b
class Polinomial:
def __init__(self, data):
@@ -437,57 +477,4 @@ class Interpolation:
y += d[i+1][0]*mult
i += 1
return y
def minimus(self,x):
theta = 0
# somatorio de x
for i in range(self.data.shape[0]):
theta += self.data[i][0]
eta = 0
#somatorio de y
for i in range(self.data.shape[0]):
eta += self.data[i][1]
sigma = 0
#somatorio de xy
for i in range(self.data.shape[0]):
sigma += self.data[i][0]*self.data[i][1]
omega = 0
#somatorio de x^2
for i in range(self.data.shape[0]):
omega += self.data[i][0]**2
self.a = (self.data.shape[0]*sigma - theta*eta)/(self.data.shape[0]*omega - (theta**2))
self.b = (theta*sigma - eta*omega)/((theta**2) - self.data.shape[0]*omega)
ym = 0
for i in range(self.data.shape[0]):
ym += self.data[i][1]/self.data.shape[0]
sqreq = 0
for i in range(self.data.shape[0]):
sqreq += ((self.a*self.data[i][0] + self.b) - ym)**2
sqtot = 0
for i in range(self.data.shape[0]):
sqtot += (self.data[i][1] - ym)**2
self.r2 = sqreq/sqtot
return self.a*x + self.b
return y

View File

@@ -1,2 +1,2 @@
from .Otter import Algebra
from .Otter import Interpolation
from .Otter import Algebra as algebra
from .Otter import Interpolation as interpolation