![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Тема во флейме, потому что ни под один другой раздел не подходит.
Нужна помощь, с нахождением формулы по которой высчитывается число в общем, представим что есть целочисленная шкала от 1 до бесконечности. 1, 2, 3... к каждому из этих делений привязано число. Точно известны некоторые числа: 1 -> 100 2 -> 110 3 -> 130 4 -> 150 15 -> 700 34 -> 10060 40 -> 23290 50 -> 94230 52 -> 124620 70 -> 1 542230 74 -> 2 697380 Нужна формула для вычисления остальных, если она тут вообще возможна. Уже всю голову сломал, но логическая цепочка обрывается на 70. п.с. Не принципиально, чтобы получались именно такие числа. Но нужно чтобы что-то примерное. Примерно такая же прогрессия. Даже если к 70 числа будут отличаться от этих на 250 - 500 тысяч, это уже хорошо. Последний раз редактировалось caseyryan; 07.04.2013 в 20:24. Причина: вопрос решен |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
Я ж говорю. Есть математические пакеты, которые умеют это делать. Куча методик в "численных методах", в зависимости от цели и желания заморачиваться: интерполяция, экстраполяция, аппроксимация, поиск минимальной функции.
Берем, скажем, вольфрам, и пробуем, скажем что-нибудь такое Ну или берем карандаш в руки, делам предположение, что это ф-я определенного типа, строим систему уравнений, пытаемся ее решить.
__________________
мой пустой блог |
|
|||||
|
Не. Не вариант. Поробовал этот вольфрам. Никаких результатов. Тут даже цифры слишком большие, чтобы зрительно функцию нарисовать. Так что не выдал они ни графической функции (что естественно), ни формулы.
Цитата:
|
|
|||||
|
Modus ponens
|
function [Poly] = fitLevelDataToSecondLevelPoly ()
xdata = [1, 2, 3, 4, 15, 34, 40, 50, 52, 70, 74];
ydata = [100, 110, 130, 150, 700, 10060, 23290, 94230, 124620, 1542230, 2697380];
order = 2;
p = polyfit (xdata, ydata, order);
x = linspace (min (xdata), max (xdata), 101);
y = polyval (p, x);
plot (x, y, '-', xdata, ydata, 's');
legend ('Fitted polynomial', 'Level Data');
## 1.0220e+03 * x^2 + -4.7642e+04 * x + 1.7550e+05
Poly = p;
endfunction
function [Poly] = fitLevelDataToFourthLevelPoly ()
xdata = [1, 2, 3, 4, 15, 34, 40, 50, 52, 70, 74];
ydata = [100, 110, 130, 150, 700, 10060, 23290, 94230, 124620, 1542230, 2697380];
order = 4;
p = polyfit (xdata, ydata, order);
x = linspace (min (xdata), max (xdata), 101);
y = polyval (p, x);
plot (x, y, '-', xdata, ydata, 's');
legend ('Fitted polynomial', 'Level Data');
## 8.2722e-01 * x^4 + -9.3058e+01 * x^3 3.3344e+03 * x^2 + -3.8139e+04 * x + 7.2091e+04
Poly = p;
endfunction
function [Poly] = fitLevelDataToEighthLevelPoly ()
xdata = [1, 2, 3, 4, 15, 34, 40, 50, 52, 70, 74];
ydata = [100, 110, 130, 150, 700, 10060, 23290, 94230, 124620, 1542230, 2697380];
order = 8;
p = polyfit (xdata, ydata, order);
x = linspace (min (xdata), max (xdata), 101);
y = polyval (p, x);
plot (x, y, '-', xdata, ydata, 's');
legend ('Fitted polynomial', 'Level Data');
## 9.2922e-08 * x^8 + -2.0911e-05 * x^7 + 1.9908e-03 * x^6 + -1.0071e-01 * x^5 +
## 2.8741e+00 * x^4 + -4.4839e+01 * x^3 + 3.4286e+02 * x^2 + -9.5543e+02 * x +
## 8.3935e+02
Poly = p;
endfunction
Проблема в том, что последнее значение "вываливается" из общей тенденции...
__________________
Hell is the possibility of sanity |
|
|||||
|
Цитата:
п.с. Вообще, график очень похож на ease out expo графики в твин движках. Надо попробовать их задействовать. |
|
|||||
|
Modus ponens
|
Так а чего, разве последняя функция не подошла? Я просто надеялся, что более коротким полиномом можно будет обойтись, но полином восьмой степени вроде как очень даже крсивую кривую нарисовал.
__________________
Hell is the possibility of sanity |
|
|||||
|
Цитата:
Нужно передать в нее "контрольную точку", скажем 35, а на выходе получить соответствующее ей второе число. Это возможно? |
|
|||||
|
Modus ponens
|
Т.е. Х в восьмой умножить на 9.2922e-08 плюс Х в седьмой умножить на -2.0911e-05 ... и т.д.
__________________
Hell is the possibility of sanity |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:57. |
|
|
« Предыдущая тема | Следующая тема » |
|
|