Автор Тема: Найти эмпирическую формулу для функции, заданной таблицей  (Прочитано 4981 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Дудулька

  • Пользователь
  • **
  • Сообщений: 89
    • Просмотр профиля
Методом наименьших квадратов найти эмпирическую формулу у=ах+в для функции, заданной таблицей. Изобразить на графике эмпирические значения и прямую.
Х   -1,0   -1,5   -2,0   -3,0   -3,2   
У   8,1   9,0   11,2   13,8   14,7   
« Последнее редактирование: 20 Января 2012, 00:51:44 от Asix »

Оффлайн Дудулька

  • Пользователь
  • **
  • Сообщений: 89
    • Просмотр профиля
Re: Методом наименьших квадратов найти
« Ответ #1 : 13 Декабря 2011, 20:00:24 »
Делала по образцу,как-то что-то.Зашла в тупик,не знаю как дальше быть!Помогите! :(


Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Re: Методом наименьших квадратов найти
« Ответ #3 : 14 Декабря 2011, 01:18:15 »
Делал этот пример своим методом Монте-Карло, получил решение:



Сравнение линии с точками вполне правдоподобны.

У Вас должно получиться примерно такое же уравнение.
За жизнью надо тщательно следить, все время избегая с ней разлуки.

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Re: Методом наименьших квадратов найти
« Ответ #4 : 14 Декабря 2011, 01:23:07 »
Программа на Yabasic

dim y(10),x(10),f(10)
z=.001
y(1)=8.1:y(2)=9:y(3)=11.2:y(4)=13.8:y(5)=14.7
x(1)=-1:x(2)=-1.5:x(3)=-2:x(4)=-3:x(5)=-3.2
for i=1 to 5
print i,x(i),y(i)
next i
a0=-1:b0=1
s1=10^100:nn=10000000
for j=1 to nn
a=a0*(1+z*(ran()-.5))
b=b0*(1+z*(ran()-.5))
s=0
for i=1 to 5
x=x(i)
f(i)=a*x+b
s=s+(y(i)-f(i))^2
next i
if s<=s1 then
print a,b,s
s1=s
a0=a:b0=b
fi
next j

График чертил в Maple

with(plots): X := [-1, -1.5, -2, -3, -3.2]: Y := [8.1, 9, 11.2, 13.8, 14.7]:
Digits := 7; f := -3.03118*x+4.87328;                    
g1 := plot(f(x), x = -3.5 .. 0, color = black):
g2 := plot([[X, Y]$i = 1 .. 5)], x = -3.5 .. 0, style = POINT, symbol = CIRCLE, color = red):
display(g1, g2);
« Последнее редактирование: 14 Декабря 2011, 01:38:16 от renuar911 »
За жизнью надо тщательно следить, все время избегая с ней разлуки.

Оффлайн Дудулька

  • Пользователь
  • **
  • Сообщений: 89
    • Просмотр профиля
Re: Методом наименьших квадратов найти
« Ответ #5 : 15 Декабря 2011, 20:00:22 »
вот :)

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Re: Методом наименьших квадратов найти
« Ответ #6 : 16 Декабря 2011, 01:21:11 »
А что "вот"? Коэффициентов  a  и   b  не вижу...
За жизнью надо тщательно следить, все время избегая с ней разлуки.

Оффлайн Дудулька

  • Пользователь
  • **
  • Сообщений: 89
    • Просмотр профиля
Re: Методом наименьших квадратов найти
« Ответ #7 : 16 Декабря 2011, 22:29:37 »
А что "вот"? Коэффициентов  a  и   b  не вижу...
мне не понятен ваш способ решения! :o

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Re: Методом наименьших квадратов найти
« Ответ #8 : 16 Декабря 2011, 22:52:01 »
Мой способ решения разработан лично мной. Он хорошо виден в распечатке программы. Сначала задаюсь приближенными значениями  a0=-1 и b0=1. Знаки я определил, построив точки. Раз наклон обратный, то коэффициент при x - отрицательный.
Потом начинаю случайным образом менять эти два параметра в небольших диапазонах по командам
a=a0*(1+z*(ran()-.5))
b=b0*(1+z*(ran()-.5))
Для этих новых параметров вычисляю сумму квадратов отклонений по команде
f(i)=a*x+b
s=s+(y(i)-f(i))^2,
Если эта сумма меньше, чем в предыдущем варианте, то принимаю новые  a  и b. Если же меньше, то вариант пропускаю. Постепенно циклы сходятся к оптимуму, когда сумма квадратов отклонений минимальна.



Первая колонка - параметр  a ,  вторая колонка - параметр b, третья колонка - сумма квадратов откленений прямой от экспериментальных точек.

Вам же надо делать по стандартной методике, но результаты должны мало отличаться от моих.
« Последнее редактирование: 16 Декабря 2011, 23:06:11 от renuar911 »
За жизнью надо тщательно следить, все время избегая с ней разлуки.

 

"Найти площадь фигуры, огран. линиями" и "Вычислить криволинейный интеграл"

Автор junkiejoints

Ответов: 1
Просмотров: 10983
Последний ответ 18 Февраля 2011, 00:10:42
от Данила
Найти собственные векторы и собственные значения

Автор hellsv

Ответов: 5
Просмотров: 9439
Последний ответ 03 Декабря 2010, 23:03:09
от tig81
Найти общее решение диф-ого ур-ия и частное решение

Автор chupa

Ответов: 5
Просмотров: 9786
Последний ответ 24 Марта 2011, 02:11:13
от chupa
найти собственные значения и собственные векторы матрицы

Автор nooob

Ответов: 9
Просмотров: 30260
Последний ответ 20 Декабря 2009, 15:35:43
от Данила
Помогите найти значения выражений и значения переменной

Автор Deizag

Ответов: 1
Просмотров: 11653
Последний ответ 27 Октября 2010, 22:42:09
от Dlacier