Skip to content

Commit fd0724e

Browse files
committed
minimos cuadrados
0 parents  commit fd0724e

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

MinimosCuadrados/MinimosCuadrados.py

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#Programa de minimos cuadrados(Metodos Numericos
2+
import math
3+
#Se ingresa la cantidad de pares ordenados(x,y)
4+
print(f"Metodo de minimos cuadrados,para aproximar una recta\nde la forma y = mx+b")
5+
print("\n\n")
6+
def Min(n):
7+
puntosX=[]
8+
puntosY=[]
9+
sx=0
10+
sy=0;
11+
sxy=0
12+
sxx=0
13+
syy=0
14+
r=0
15+
m=0
16+
b=0
17+
for i in range(n):
18+
19+
EntradaX = float(input(f"Ingresar el valor de x{i}: "))
20+
21+
puntosX.append(EntradaX)
22+
sx+=EntradaX
23+
sxx+=math.pow(EntradaX,2)
24+
EntradaY = float(input(f"Ingresar el valor de y{i}: "))
25+
puntosY.append(EntradaY)
26+
sy+=EntradaY
27+
syy+=math.pow(EntradaY,2)
28+
sxy+=(EntradaX*EntradaY)
29+
r=(n*sxy-sx*sy)/((math.sqrt(n*sxx-sx*sx))*(math.sqrt(n*syy-sy*sy)))
30+
m=(n*sxy-sx*sy)/(n*sxx-sx*sx)
31+
b=(sy*sxx-sx*sxy)/(n*sxx-sx*sx)
32+
imprime(r,m,b,puntosX,puntosY)
33+
puntosX.clear()
34+
puntosY.clear()
35+
36+
def imprime(r,m,b,puntosX,puntosY):
37+
print("\n\n")
38+
print("{:<10} {:<10} {:<10}".format('r','m','b',))
39+
print("{:<10} {:<10} {:<10}".format(r,m,b))
40+
print(f"ecuacion de la recta\n")
41+
print(f"y={m}x+{b}")
42+
print("\n")
43+
print("{:<10} {:<10} {:<10} {:<10} {:<10} {:<10}".format('i','X','Y','X^2','Y^2','X*Y'))
44+
for i in range(n):
45+
imprimirX=puntosX[i]
46+
imprimirY=puntosY[i]
47+
print("{:<10} {:<10} {:<10} {:<10} {:<10} {:<10}".format(i,imprimirX,imprimirY,math.pow(imprimirX,2),math.pow(imprimirY,2),imprimirY*imprimirX))
48+
49+
50+
51+
n = int(input("ingresar datos: "))
52+
Min(n)
53+
r=input("desea ingresar otra iteracion: ")
54+
while r!='n' or r=='N':
55+
n = int(input("ingresar datos: "))
56+
57+
Min(n)
58+
59+
r=input("desea ingresar otra iteracion: ")
60+
61+
62+
63+
64+
65+
66+

0 commit comments

Comments
 (0)