Skip to content

Commit 422c30f

Browse files
authored
Add files via upload
1 parent c1e4e49 commit 422c30f

9 files changed

+719
-0
lines changed

Diff for: Diferenças Divididas.py

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import sys
2+
print("->>[̲̅J̲̅.̲̅L̲̅υ̲̅c̲̅α̲̅s̲̅™̲̅]<<-\n")
3+
pontos=int(input("Numero de pontos: "))
4+
determinador=float(input("Digite o x da P"+str(pontos-1)+"(x): "))
5+
casas=int(input("Numero de casas decimais: "))
6+
if pontos<=0:
7+
print("Numero inválido!")
8+
sys.exit(1)
9+
vet=[]#contém todos os pontos
10+
vet_final=[] # contem os deltas (as diferenças)
11+
k=[] # guarda todos os xi iniciais
12+
k1=[]# guarda todos os yi iniciais
13+
for i in range(pontos):
14+
vet1=[]
15+
vet1.append(float(input("x"+str(i)+":" )))
16+
vet1.append(float(input("y"+str(i)+":" )))
17+
vet.append(vet1)
18+
k.append(vet1[0])#contem os valores de x
19+
k1.append(vet1[1]) #contem os valores de y
20+
vet_final.append(k1)
21+
cont=0
22+
while cont!=pontos-1: #ultima etapa de diferenças // menos dois pq cont começa do zero
23+
vet1=[]
24+
if cont==0: #primeira diferença dividida da tabela
25+
for i in range(pontos-1):# tanto de diferenças do inicio
26+
vet1.append((vet[i+1][1]-vet[i][1])/(k[i+1]-k[i]))
27+
vet_final.append(vet1)
28+
else:
29+
for i in range(len(vet_final[cont])-1):
30+
vet1.append((vet_final[cont][i+1]-vet_final[cont][i])/(k[cont+i+1]-k[i])) #cont+1 no caso em baixo seria a diferença
31+
vet_final.append(vet1)
32+
cont+=1
33+
matrix=[]
34+
for i in range(len(vet_final)):
35+
aux=[]
36+
for j in range(len(vet_final[i])):
37+
aux.append(vet_final[j][i])
38+
matrix.append(aux)
39+
# fazer esse append no final como um extend
40+
cont=0
41+
print("\tTabela das diferenças divididas\n")
42+
for i in matrix:
43+
print(round(k[cont],casas),end=" ")
44+
for j in range(len(i)):
45+
print(round(i[j],casas),end=" ")
46+
cont+=1
47+
print()
48+
k=""
49+
for i in range(pontos):
50+
if i==0:
51+
print("P(x) = yo",end=" ")
52+
else:
53+
k+=("(x-x%d)"%(i-1))
54+
print("+",k+str(("Δ%dyo"%(i-1))),end=" ")
55+
print()

Diff for: Gauss e Jordan.py

+90
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
import sys
2+
print("->>[̲̅J̲̅.̲̅L̲̅υ̲̅c̲̅α̲̅s̲̅™̲̅]<<-\n")
3+
print("----Bem Vindo---\n")
4+
a=int(input("Resolver o sistema linear Digite 1-Gauss ou 2-Jordan: "))
5+
matriz=[]
6+
termos_ind=[]
7+
n=int(input("Digite a ordem do sistema: "))
8+
resultado=[0]*n
9+
for i in range(n):
10+
vet=[]
11+
for j in range(n):
12+
vet.append(float(input("digite o coeficiente da icógnita "+str(i+1)+str(j+1)+": ")))
13+
matriz.append(vet)
14+
for i in range(n):
15+
termos_ind.append(float(input("digite o "+str(i+1)+"º valor do vetor dos termos independentes: ")))
16+
for i in range(n):
17+
matriz[i].append(termos_ind[i])
18+
if a==1:
19+
for i in range(n-1):#n-1 porque ta comparando de duas em duas listas/ zerando a linha abaixo da diag principal
20+
pivo=matriz[i][i]
21+
if pivo==0:
22+
print("Pivo não pode ser zero!")
23+
sys.exit(0)
24+
else:
25+
for j in range(i+1,n):
26+
coeficiente=matriz[j][i]/pivo
27+
for k in range(n+1):
28+
matriz[j][k]=matriz[j][k]-coeficiente*matriz[i][k]
29+
for i in matriz:
30+
for j in i:
31+
print(j,end=" | ")#matriz com duas casas decimais arredondadas
32+
print()
33+
print("\n\n")
34+
35+
36+
37+
termos_ind2=[]
38+
for i in range(n):
39+
termos_ind2.append(matriz[i][n])
40+
del(matriz[i][n])
41+
resultado[n-1]=termos_ind2[n-1]/matriz[n-1][n-1]
42+
for i in range(n-1,-1,-1):
43+
soma=0
44+
for j in range(1+i,n):
45+
soma+=matriz[i][j]*resultado[j]
46+
if matriz[i][i]==0:
47+
print("Sistema incompatível")
48+
sys.exit(0)
49+
else:
50+
resultado[i]=(termos_ind2[i]-soma)/matriz[i][i]
51+
print("\n")
52+
print("Vetor solução:")
53+
for i in resultado:
54+
print("|"+str("%f"%i)+"|")
55+
elif a==2:
56+
for i in range(n-1):#zerando a linha abaixo da dig principal
57+
pivo=matriz[i][i]
58+
if pivo==0:
59+
print("Pivo não pode ser zero!")
60+
sys.exit(0)
61+
else:
62+
for j in range(i+1,n):
63+
coeficiente=matriz[j][i]/pivo
64+
for k in range(n+1):
65+
matriz[j][k]=matriz[j][k]-coeficiente*matriz[i][k]
66+
for i in matriz:
67+
for j in i:
68+
print("%f"%j,end=" | ")
69+
print("\n")
70+
print("\n")
71+
72+
for i in range(n-1,0,-1): #zerando a linha acima da diag principal
73+
pivo=matriz[i][i]
74+
if pivo==0:
75+
print("Pivo não pode ser zero!")
76+
sys.exit(0)
77+
else:
78+
for j in range(i-1,-1,-1):
79+
coeficiente=matriz[j][i]/pivo
80+
for k in range(n+1):
81+
matriz[j][k]=matriz[j][k]-coeficiente*matriz[i][k]
82+
for t in matriz:
83+
for u in t:
84+
print("%f"%u,end=" | ")
85+
print("\n")
86+
print("\n\n")
87+
print("\n")
88+
print("Vetor solução:")
89+
for i in range(n):
90+
print("|"+str("%f"%(matriz[i][n]/matriz[i][i]))+"|")

Diff for: Gauss.py

+86
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
import sys
2+
print("->>[̲̅J̲̅.̲̅L̲̅υ̲̅c̲̅α̲̅s̲̅™̲̅]<<-\n")
3+
matriz=[]
4+
termos_ind=[]
5+
n=int(input("Digite a ordem do sistema: "))
6+
resultado=[0]*n
7+
for i in range(n):
8+
vet=[]
9+
for j in range(n):
10+
vet.append(float(input("digite o coeficiente da icógnita "+str(i+1)+str(j+1)+": ")))
11+
matriz.append(vet)
12+
13+
for i in range(n):
14+
termos_ind.append(float(input("digite o "+str(i+1)+"º valor do vetor dos termos independentes: ")))
15+
for i in range(n):
16+
matriz[i].append(termos_ind[i])
17+
res=int(input("Escolha um tipo de substituição: \n1-progressiva(Triangular inferior) 2-retroativa(Triangular superior): "))
18+
19+
if res!=1 and res!=2:
20+
while(res!=1 and res!=2):
21+
res=int(input("Escolha um tipo de substituição: \n1-progressiva(Triangular inferior) 2-retroativa(Triangular superior): "))
22+
23+
if res==2:
24+
for i in range(n-1):#n-1 porque ta comparando de duas em duas listas/ zerando a linha abaixo da diag principal
25+
ciclo=n
26+
pivo=matriz[i][i]
27+
while(pivo==0):
28+
matriz.append(matriz[i])
29+
del(matriz[i])#mudança de linha joga a linha do pivo para ultima linha
30+
pivo=matriz[i][i]
31+
ciclo=ciclo-1
32+
if pivo!=0: break
33+
if ciclo==0: #coluna toda zerada
34+
for xa in matriz:
35+
del(xa[i]) #deleta coluna zerada
36+
print("Sistema incompatível")
37+
sys.exit(0)
38+
break
39+
for j in range(i+1,n):
40+
coeficiente=matriz[j][i]/pivo
41+
for k in range(n+1):
42+
matriz[j][k]=matriz[j][k]-coeficiente*matriz[i][k]
43+
for i in matriz:
44+
for j in i:
45+
print(j,end=" | ")#matriz com duas casas decimais arredondadas
46+
print()
47+
print("\n\n")
48+
termos_ind2=[]
49+
for i in range(n):
50+
termos_ind2.append(matriz[i][n])
51+
del(matriz[i][n])
52+
resultado[n-1]=termos_ind2[n-1]/matriz[n-1][n-1]
53+
for i in range(n-1,-1,-1):
54+
soma=0
55+
for j in range(1+i,n):
56+
soma+=matriz[i][j]*resultado[j]
57+
if matriz[i][i]==0:
58+
print("Sistema incompatível")
59+
sys.exit(0)
60+
else:
61+
resultado[i]=(termos_ind2[i]-soma)/matriz[i][i]
62+
print("\n")
63+
print("Vetor solução:")
64+
for i in resultado:
65+
print("|"+str("%f"%i)+"|")
66+
67+
else:
68+
for i in range(n-1,0,-1): #zerando a linha acima da diag principal
69+
pivo=matriz[i][i]
70+
if pivo==0:
71+
print("Pivo não pode ser zero!")
72+
sys.exit(0)
73+
else:
74+
for j in range(i-1,-1,-1):
75+
coeficiente=matriz[j][i]/pivo
76+
for k in range(n+1):
77+
matriz[j][k]=matriz[j][k]-coeficiente*matriz[i][k]
78+
for t in matriz:
79+
for u in t:
80+
print("%f"%u,end=" | ")
81+
print("\n")
82+
print("\n\n")
83+
print("\n")
84+
print("Vetor solução:")
85+
for i in range(n):
86+
print("|"+str("%f"%(matriz[i][n]/matriz[i][i]))+"|")

Diff for: Interpolação Polinomial.py

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
import sys
2+
print("->>[̲̅J̲̅.̲̅L̲̅υ̲̅c̲̅α̲̅s̲̅™̲̅]<<-\n")
3+
determinador=float(input("Digite o x da f(x): "))
4+
pontos=int(input("Numero de pontos: "))
5+
if pontos<=0:
6+
print("Numero inválido!")
7+
sys.exit(1)
8+
vet=[]
9+
for i in range(pontos):
10+
vet1=[]
11+
x=float(input("x"+str(i)+":" ))
12+
y=float(input("y"+str(i)+":" ))
13+
vet1.append(x)
14+
vet1.append(y)
15+
vet.append(vet1)
16+
matriz=[]
17+
for i in range(pontos): #fazendo a matriz
18+
vet1=[]
19+
for j in range(pontos+1):
20+
if (j!=pontos):
21+
vet1.append((vet[i][0])**(pontos-1-j))
22+
else:
23+
vet1.append(vet[i][1])
24+
matriz.append(vet1)
25+
26+
#aplicar gauss
27+
n=pontos
28+
resultado=[0]*n
29+
for i in range(n-1):#n-1 porque ta comparando de duas em duas listas/ zerando a linha abaixo da diag principal
30+
pivo=matriz[i][i]
31+
if pivo==0:
32+
matriz.append(matriz[i])
33+
del(matriz[i])#mudança de linha joga a linha do pivo para ultima linha
34+
pivo=matriz[i][i]
35+
for j in range(i+1,n):
36+
coeficiente=matriz[j][i]/pivo
37+
for k in range(n+1):
38+
matriz[j][k]=matriz[j][k]-coeficiente*matriz[i][k]
39+
for i in matriz:
40+
for j in i:
41+
print(j,end=" | ")
42+
print()
43+
print("\n\n")
44+
termos_ind2=[]
45+
for i in range(n):
46+
termos_ind2.append(matriz[i][n])
47+
del(matriz[i][n])
48+
resultado[n-1]=termos_ind2[n-1]/matriz[n-1][n-1]
49+
for i in range(n-1,-1,-1):
50+
soma=0
51+
for j in range(1+i,n):
52+
soma+=matriz[i][j]*resultado[j]
53+
if matriz[i][i]==0:
54+
print("Sistema incompatível")
55+
sys.exit(0)
56+
else:
57+
resultado[i]=(termos_ind2[i]-soma)/matriz[i][i]
58+
print("\n")
59+
print("Vetor solução:")
60+
k=1;
61+
somador=0
62+
for i in resultado:
63+
somador+=((determinador)**(pontos-k))*i
64+
k+=1
65+
print("|"+str("%f"%i)+"|")
66+
w="" #escrever a f(x) na tela depois continuar*
67+
k=1
68+
for i in range(pontos):
69+
if resultado[i]<0:
70+
w=w[:-1]
71+
w+=("%f*(%f)**(%d)+"%(resultado[i],determinador,pontos-k))
72+
else:
73+
w+=("%f*(%f)**(%d)+"%(resultado[i],determinador,pontos-k))
74+
k+=1
75+
w=w[:-1]#exclui o ultimo sinal de "+"
76+
print("\nf(%f) = %s"%(determinador,w))
77+
print("\nf(%f) = %f"%(determinador,somador))

Diff for: Interpolação de Lagrange.py

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
import sys
2+
print("->>[̲̅J̲̅.̲̅L̲̅υ̲̅c̲̅α̲̅s̲̅™̲̅]<<-\n")
3+
pontos=int(input("Numero de pontos: "))
4+
determinador=float(input("Digite o x da P"+str(pontos-1)+"(x): "))
5+
if pontos<=0:
6+
print("Numero inválido!")
7+
sys.exit(1)
8+
vet=[]#contém todos os pontos
9+
vet_final=[]
10+
for i in range(pontos):
11+
vet1=[]
12+
vet1.append(float(input("x"+str(i)+":" )))
13+
vet1.append(float(input("y"+str(i)+":" )))
14+
vet.append(vet1)
15+
vet1=[]
16+
#a intenção é criar uma matriz com 2 colunas x 'pontos' linhas depois divide uma linha pela outra somando..
17+
18+
#print só das variáveis
19+
for i in range(pontos): #numerador
20+
k=("y%d"%i)
21+
for j in range(pontos):
22+
if j!=i:
23+
k+=("*(x-x%d)"%(j))
24+
vet1.append(k)
25+
vet_final.append(vet1)
26+
vet1=[]
27+
for i in range(pontos): #denominador
28+
k=""
29+
for j in range(pontos):
30+
if j!=i:
31+
k+=("(x%d-x%d)*"%(i,j))
32+
k=k[:-1] #tira o ultimo sinal de multiplicação
33+
vet1.append(k)
34+
vet_final.append(vet1)
35+
print()
36+
37+
for j in range(pontos): #Printar
38+
print(vet_final[0][j])
39+
print("-"*len(max(vet_final[0][j],vet_final[1][j])),"+")
40+
print(vet_final[1][j])
41+
print()
42+
print("\n\n")
43+
vet1=[]
44+
vet_final=[]
45+
46+
47+
#print dos valores das variáveis
48+
for i in range(pontos): #numerador
49+
k=""
50+
k=("%f"%vet[i][1])
51+
for j in range(pontos):
52+
if j!=i:
53+
k+=("*(%f-%f)"%(determinador,vet[j][0]))
54+
vet1.append(k)
55+
vet_final.append(vet1)
56+
vet1=[]
57+
58+
for i in range(pontos): #denominador
59+
k=""
60+
for j in range(pontos):
61+
if j!=i:
62+
k+=("(%f-%f)*"%(vet[i][0],vet[j][0]))
63+
k=k[:-1] #tira o ultimo sinal de multiplicação
64+
vet1.append(k)
65+
vet_final.append(vet1)
66+
somatorio=0
67+
k=""
68+
for j in range(pontos):
69+
print(vet_final[0][j])
70+
print("-"*len(max(vet_final[0][j],vet_final[1][j])),"+")
71+
print(vet_final[1][j])
72+
somatorio+=eval(vet_final[0][j])/eval(vet_final[1][j])
73+
if eval(vet_final[0][j])/eval(vet_final[1][j])>=0:
74+
k+=str(eval(vet_final[0][j])/eval(vet_final[1][j]))+str("+")
75+
else:
76+
k=k[:-1]
77+
k+=str(eval(vet_final[0][j])/eval(vet_final[1][j]))+str("+")
78+
print()
79+
k=k[:-1]#tirar o ultimo sinal de soma
80+
print("\n\n")
81+
print("P%d(%f)= %s"%((pontos-1),determinador,k))
82+
print("P%d(%f) = %f"%((pontos-1),determinador,somatorio))
83+

0 commit comments

Comments
 (0)