Чи існує чисельний алгоритм пошуку асимптотичного нахилу?


23

(xi,yi)y(x)xf(x)y(x)(ax+b)xf(x)f(x)і т. д. Але я не знаю, що таке функціональна форма для , якщо вона навіть має таку, яку можна описати елементарними функціями.f(x)

Моя мета - отримати найкращу можливу оцінку асимптотичного схилу . Очевидним неочищеним методом є виділення останніх кількох точок даних та проведення лінійної регресії, але, звичайно, це буде неточним, якщо не стане «досить плоским» в межах для якого я маю дані. Очевидним менш грубим методом є припустити, що (або якась інша особлива функціональна форма) і підходить до цього, використовуючи всі дані, але прості функції, які я намагався, як або не зовсім відповідають даним на нижньому деaf(x)xf(x)exp(x)exp(x)1xxf(x)великий. Чи існує відомий алгоритм визначення асимптотичного нахилу, який би зробив краще, або який міг би забезпечити значення для схилу разом з довірчим інтервалом, враховуючи моє незнання того, як саме дані підходять до асимптотики?


Таке завдання, як правило, часто зустрічається в моїй роботі з різними наборами даних, тому мене в основному цікавлять загальні рішення, але за запитом я посилаюсь на конкретний набір даних, який викликав це питання. Як описано в коментарях, алгоритм Wynn дає значення, яке, наскільки я можу сказати, дещо вимкнене. Ось сюжет:ϵ

Асимптотично лінійні дані

(Схоже, існує невелика крива вниз при високих значеннях x, але теоретична модель цих даних передбачає, що вона повинна бути асимптотично лінійною.)


Це може бути занадто елементарним - або занадто розпливчастим - для цього сайту, але я подумав, що приватна бета-версія саме час спробувати такі речі.
David Z

Ні, я думаю, що це чудове питання. Не все повинно бути просунутим і фантазійним. Важливі хороші рішення простих проблем.
Колін К

@Dan: Заміна справді виправдана? exp
JM

Маючи exps, це ускладнює читання мені речей, але я визнаю, що це було досить мало, що я не повинен був цього робити.
День

Мені це взагалі не байдуже, я просто подумав, що можу також схвалити зміни, бо, чому б ні. Ви отримуєте від нього пару репутацій, що б це не було вартим.
David Z

Відповіді:


13

Це досить брутальний алгоритм, але я б застосував таку процедуру для грубої оцінки: якщо, як ви говорите, передбачуване яке представляє ваш ( x i , y i ) , вже майже лінійне, оскільки x збільшується, що Я б зробив, щоб взяти відмінності y i + 1 - y if(x)(xi,yi)x , а потім використати алгоритм екстраполяції на зразокперетворення Шенксдля оцінки межі відмінностей. Результат, сподіваємось, хороша оцінка цього асимптотичного схилу.yi+1yixi+1xi


Далі йде демонстрація Mathematica . Вінни алгоритм є зручною реалізацією перетворення гомілок, він побудований в якості опції (прихованої) . Спробуємо процедуру на функціїϵSequenceLimit[]

4x2+3+2x+e4x+3
xdata = RandomReal[{20, 40}, 25];
ydata = Table[(3 + 13*E^(4*x) + 6*E^(4*x)*x + x^2 + 3*E^(4*x)*x^2 + 
      2*E^(4*x)*x^3)/(E^(4*x)*(3 + x^2)), {x, xdata}];

SequenceLimit[Differences[ydata]/Differences[xdata],
              Method -> {"WynnEpsilon", Degree -> 2}]
1.999998

Я також можу показати, наскільки простий алгоритм:

wynnEpsilon[seq_?VectorQ] := 
 Module[{n = Length[seq], ep, res, v, w}, res = {};
  Do[ep[k] = seq[[k]];
   w = 0;
   Do[v = w; w = ep[j];
    ep[j] = 
     v + (If[Abs[ep[j + 1] - w] > 10^-(Precision[w]), ep[j + 1] - w, 
         10^-(Precision[w])])^-1;, {j, k - 1, 1, -1}];
   res = {res, ep[If[OddQ[k], 1, 2]]};, {k, n}];
  Flatten[res]]

Last[wynnEpsilon[Differences[ydata]/Differences[xdata]]]
1.99966

Ця реалізація адаптована з статті Венігера .


Просто цікаво, але чому ви створили оригінальну форму функції, а не поєднувати всі терміни?
rcollyer

LATEX

Наскільки близькими до плоских повинні бути точки, щоб алгоритм був ефективним?
rcollyer

2
Гаразд, останнє запитання (клянусь), чи можете ви створити помилку, пов'язану з оцінкою?
rcollyer

1
Це трохи хитріше. Я бачив кілька запропонованих методів у кількох статтях, але, зізнаюся, не робив експериментів з ними. (Можливо, я мусив би цього дня.) У книзі Брезінського та Редіво-Заглії є кілька покажчиків, на які ви можете поглянути.
JM
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.