Степенная функция подходит - PullRequest
0 голосов
/ 30 августа 2010

Я хочу приспособить степенную функцию к набору данных.Я использую этот метод: http://mathworld.wolfram.com/LeastSquaresFittingPowerLaw.htmlНо результат не приемлем: б = -0,001901, а = 7,26

Мой набор данных:

8553600  458.2
17193600    373.6
25833600    694.16
34646400    738.33
44064000    817.89
54259200    1040.67
67910400    1032.69
76291200    1222.1
84844800    1245.65
94089600    1217.44
102211200   1579.38
110592000   1859.24
118886400   1711.67
127612800   2303.62
136684800   2658.26
219196800   3669.23
225676800   3525.02
225763200   3749.27

Является ли этот метод неадекватным, или я сделал миастера?Есть ли лучшее решение для этого?

Ответы [ 3 ]

2 голосов
/ 30 августа 2010

Методы подгонки - это методы "мусора внутрь, мусора": сначала вы должны убедиться, что есть отношение, подобное тому, которое вы пытаетесь установить.В вашем случае составьте точечный график и посмотрите, выглядит ли он как степенная функция.Возможно, вам придется добавить константу или выбрать неправильный показатель степени.В общем, нет способа легко оценить отношение.Лучший способ начать - найти теоретические аргументы, почему должно выполняться определенное отношение, и попытаться оценить параметры этого отношения.

1 голос
/ 30 августа 2010

Ваши данные больше похожи на линейную функцию, чем на степенной закон. Вы бы лучше подошли, подойдя к нему с f(x) = a*x+b.

0 голосов
/ 30 августа 2010

Я думаю, вы просто неправильно это реализовали.

Знаменатель для B равен

n*sum( x_i ^2 ) - (sum( x_i ))^2

в то время как похоже, что вы сделали

n*sum( x_i )^2 - (sum( x_i))^2
...