Найти - Пользователи
Полная версия: Линейная апроксимация
Начало » Центр помощи » Линейная апроксимация
1
layt
Мне нужно Ароксимуват результати експеременти методом Меньших квадратов!!
Считать Дание експеременту с файла и вивести кривую на екран
doza_and
Методы разные бывают - напишите какая у вас аппроксимирующая формула должна быть, какие коэффициенты искать.
layt
должна бить Линейна апроксимация с помощю метода Гауса в котором ми ищем акспромоцийной полином
Програма должна считувать рядки с тексттового файла
тоисть
x1 y1
x2 y2
x3 y3
……..
xn yn
cookie-god
import numpy as np
import matplotlib.pyplot as plt
g = [lambda t: t**3,
lambda t: t**2,
lambda t: t**1,
lambda t: 1.0]
def approximate(x,y,basis):
N = len(y)
m = len(basis)
#A*x = b
A = np.matrix(np.zeros((m,m)))
b = np.matrix(np.zeros((m,1)))
for j in xrange(0,m):
for i,xi in enumerate(x):
b[j] += basis[j](xi)*y[i]
for k in xrange(0,m):
A[j,k] += basis[j](xi)*basis[k](xi)
try:
return np.linalg.inv(A)*b
except Exception,ex:
return np.linalg.pinv(A)*b

x = [1,2,3,4,7]
y = [5,3,2,5,9]
p = approximate(x,y,g)
p = np.array(p.flatten())[0]
def ap_s(basis,param,x):
return sum(b(x)*p for (b,p) in zip(basis,param))

a = plt.subplot(111)

a.plot(x,y)
xx = np.linspace(min(x),max(x),100)
a.plot(xx,ap_s(g,p,xx))
plt.show()
x,y - это ваши входные данные
g - массив базисных функций
layt
Спасиб иду разберусь в коде))
layt
А можно под 3 питон
А то вибивает ошибку в
except Exception,ex:
cookie-god
Не работал с третьим питоном, наверное,
except Exception as ex
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB