این برنامه ابتدا مقدار x را دریافت میکند، سپس n نقطه بهصورت جفتهای (xᵢ, yᵢ) از ورودی میگیرد.
با استفاده از فرمولهای رگرسیون خطی، شیب m و عرض از مبدأ b را محاسبه کرده و معادله خطی y = mx + b را نمایش میدهد.
x̄ = (∑xᵢ) / n میانگین xهاȳ = (∑yᵢ) / n میانگین yها∑xᵢyᵢ = x₁y₁ + x₂y₂ + ... + xₙyₙ∑xᵢ² = x₁² + x₂² + ... + xₙ²m = (∑xᵢyᵢ - ȳ ∑xᵢ) / (∑xᵢ² - x̄ ∑xᵢ)b = ȳ - m x̄
n = int(input("تعداد نقاط را وارد کنید: "))
x_vals = []
y_vals = []
for i in range(n):
x_i = float(input(f"x[{i+1}] = "))
y_i = float(input(f"y[{i+1}] = "))
x_vals.append(x_i)
y_vals.append(y_i)
sum_x = sum(x_vals)
sum_y = sum(y_vals)
sum_xy = sum(x * y for x, y in zip(x_vals, y_vals))
sum_x2 = sum(x ** 2 for x in x_vals)
x_mean = sum_x / n
y_mean = sum_y / n
m = (sum_xy - y_mean * sum_x) / (sum_x2 - x_mean * sum_x)
b = y_mean - m * x_mean
print(f"معادله خط: y = {round(m, 4)}x + {round(b, 4)}")
تعداد نقاط را وارد کنید: 3
x[1] = 1
y[1] = 2
x[2] = 2
y[2] = 3
x[3] = 3
y[3] = 5
معادله خط: y = 1.5x + 0.0
- ابتدا لیستهای x و y پر میشوند
- مجموعها و میانگینها محاسبه میشوند
- با استفاده از فرمولهای رگرسیون، m و b بهدست میآیند
- معادله نهایی با تقریب چهار رقم اعشار چاپ میشود