Форум Tolkien.SU
Паб «Eagle and Child» => Mad Gadgeteer's Lab => Тема начата: Tincas от 04/09/2007, 14:29:36
-
Ай опять нид хелп.
Есть некая строка в экселе, куда забиты данные. Прогрессия нелинейная, надо продолжить строку.
С линейной прогрессией понятно, а вот что сделать с нелинейной?
-
Что значит нелинейная? Геометрическая? тогда A10=A9^2/A8 (или I1=H1^2/G1 - для строки). Если какая-то другая - надо искать рекурретную формулу, она почти всегда существует.
Если известен знаменатель - еще проще: I1=H1*$A2 (в клетку A2 пишем знаменатель).
-
Что значит нелинейная? Геометрическая? тогда A10=A9^2/A8 (или I1=H1^2/G1 - для строки). Если какая-то другая - надо искать рекурретную формулу, она почти всегда существует.
Если известен знаменатель - еще проще: I1=H1*$A2 (в клетку A2 пишем знаменатель).
Нелинейная - значит, нелинейная. То есть не аримф. и не геометр.
Знаменатель, соответственно, неизвестен.
На данный момент проблема решена отрисовкой графика и средним трендом, но, может. есть способы проще и лучше?
-
Тогда это вообще не прогрессия. Хочется ее экстраполировать? А чем? Многочленом? Будут большие искажения на краю, соответственно, продолжение негладкое.
Какой она длины?
Я бы записал под строчкой первые разности (B2=B1-A1), под ней вторые (С3=С2-B2) и т.д. пока не построится треугольник, потом продлил последовательность последних разностей (K10=J10) и восстановил их обратно вверх (K9=J9+K10, K8=J8+K9, ... K1=J1+K2).
Делается за две минуты, но результат может разочаровать.
Если видно, что в какой-то строчке разности маленькие (на уровне шума), можно остановиться на ней, продолжить ее нулями и подняться вверх. Получится немного красивее.
-
Попробовал провести таким образом экстраполяцию.
Нужно было сэкстраполировать динамику численности населения.
Численность в нашем городе из года в год падает, динамика есть фактческая за 10 лет. Численность сокращается каждый год на 3- 6 тыс.человек.
2006 году была 123 тысячи. Проэкстраполировал предложенным методом на 2007 - получил 161 тысячу!
При том, что фактическое значение на 2007 год - 120 тысяч.
Не работает, увы.
С уважением,
Тимиров Дмитрий.
-
163597 157314 151643 146462 142029 137892 133523 130141 127510 123848 161362
-6283 -5671 -5181 -4433 -4137 -4369 -3382 -2631 -3662 37514
612 490 748 296 -232 987 751 -1031 41176
-122 258 -452 -528 1219 -236 -1782 42207
380 -710 -76 1747 -1455 -1546 43989
-1090 634 1823 -3202 -91 45535
1724 1189 -5025 3111 45626
-535 -6214 8136 42515
-5679 14350 34379
20029 20029
-
Как только получилась знакопеременная последовательность (или просто такая, чо положительные и отрицательные числа меняются беспорядочно), продолжать считать разности нет смысла - ее надо дополнять нулями или средним по строке значением. Получается так:
163597 157314 151643 146462 142029 137892 133523 130141 127510 123848 115827
-6283 -5671 -5181 -4433 -4137 -4369 -3382 -2631 -3662 -8021
612 490 748 296 -232 987 751 -1031 -4359
-122 258 -452 -528 1219 -236 -1782 -3328
380 -710 -76 1747 -1455 -1546 -1546
-1090 634 1823 -3202 -91 0
или даже так:
163597 157314 151643 146462 142029 137892 133523 130141 127510 123848 119155
-6283 -5671 -5181 -4433 -4137 -4369 -3382 -2631 -3662 -4693
612 490 748 296 -232 987 751 -1031 -1031
-122 258 -452 -528 1219 -236 -1782 0
-
Поздновато я прочитал ответ :)
Но все равно - спасибо!
Су важением,
Тимиров Дмитрий.