LINUX.ORG.RU
ФорумTalks

[math] преобразование Лапласа

 


0

1

Требуется использовать преобразование Лапласа (для решения задачи Коши). Алгоритм расписан (и довольно неплохо) вот тут http://www.exponenta.ru/educat/class/courses/ode/theme16/theory.asp

Как это посчитать аналитически, я в принципе понял. Но мне надо численно.

В общем, подзадача такая. Дана функция, заданная по точкам. Например, f(x) в 1000 точках (в общем случае N) с каким-то шагом... ну пусть x от 0 до 1, то есть шаг будет равен dx=0.001. примерно так. (равномерно задана, так проще, да и скорее всего, так и будет она задана).

Чтобы посчитать преобразование Лапласа (прямое ли, обратное ли), мне нужно посчитать численно интеграл. Как считать интегралы, я в принципе знаю (тысячи способов). Правда, комплексные интегралы до этого не считал...

http://www.exponenta.ru/educat/class/courses/ode/theme16/images/Image114.gif вот по этой формуле если - то мне известно f(x) и x в точках от 0 до 1 (то есть интеграл от 0 до бесконечности мне считать не надо, а достаточно от 0 до 1, только на этом отрезке мне функция известна). Новая функция зависит уже от переменной p. Вопрос в том, а на каком отрезке она определена? Какие значения должна принимать p? %) Она комплексная... эт я понял... функция F(p) тоже комплексная?..

Чувствую, сейчас начнутся пинки в мою сторону, что прогуливал матан/функан на первом-втором курсе... ничего я не прогуливал :( просто так объясняли... типа никому ничего не нужно было...

Можно пинать в сторону книжек, где хорошо объяснено, как считать комплексные интегралы =) на матане мы ток вещественные считали.

Этсамое... Дискретное преобразование Лапласа. Или, как говорят, лучше Хартли.

Если это не то, что нужно, то уточни функцию. У тебя это набор взвешенных табличным значением дельта-функций, решетка или интерполированные точки таблицы?

ien
()
Ответ на: комментарий от ien

Ну как именно точно будет функция задана, я не знаю. Скорее всего научник не будет на этом заострять внимание, и можно задавать как угодно.

Я же написал... решётка. Да и функция пока одномерная. равномерная. ну например

x = 0,1,2,3,4,5,.....

f = f(0),f(1),f(2),f(3),f(4),f(5),......

Типа того.

про дискретное преобразование почитаю. может быть и оно...

Я смутно догадываюсь, что p будет лежать на том же отрезке, что и x... то есть в общем случае от 0 до бесконечности... но почему-то не уверен.

http://upload.wikimedia.org/wikipedia/ru/math/7/4/7/7471ca57c21a0e8e6ff9d22da... в этой формуле n меняется от 0 до бесконечности...

Насчёт обратного дискретного преобразования неясно... знак в экспоненте меняется, да... а на 2*pi*i тоже надо делить результат? формулы дискретного обратного преобразования там нет...

http://upload.wikimedia.org/wikipedia/ru/math/5/6/7/567d613ffaa4e935fbb39d893... вот эту формулу самой функции вообще без пол-литра что-то не пойму =) x(nT) это аргумент функции или сама функция?

То, что функция зависит от времени... это понятно. ну в моём случае она должна зависеть от какой-то произвольной величины...

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от BattleCoder

> Я же написал... решётка. Да и функция пока одномерная. равномерная. ну например

Что-то я не понял, как ты можешь утверждать, что функция равномерная, если ты не знаешь, какая это функция...

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от DELIRIUM

Наверное имел в виду равномерное разбиение.

ono
()
Ответ на: комментарий от BattleCoder

Что помню из курса обработки сигналов

>Я смутно догадываюсь, что p будет лежать на том же отрезке, что и x... то есть в общем случае от 0 до бесконечности... но почему->то не уверен.

Если брать финитную во времени функцию, то p будет комплексной переменной, с областью изменения на всей комплексной плоскости.

Насчёт обратного дискретного преобразования неясно... знак в экспоненте меняется, да... а на 2*pi*i тоже надо делить результат? >формулы дискретного обратного преобразования там нет...

Прямое дискретное преобразование дает в результате функцию, которая непрерывна по p. Можно ее представить в виде дискретных отсчетов (также как для изначальной функции f(t) = sum f(nT)Дельта(t-nT)), а потом покурить интеграл обратного непрерывного преобразования, там все красиво свернется.

вот эту формулу самой функции вообще без пол-литра что-то не пойму =) x(nT) это аргумент функции или сама функция?

У них там функция во временной области x(t). x(nT) — ее отсчеты на равномерной сетке.

Omnifarious
()
Ответ на: комментарий от DELIRIUM

> Что-то я не понял, как ты можешь утверждать, что функция равномерная, если ты не знаешь, какая это функция...

Наверное имел в виду равномерное разбиение.

BattleCoder ★★★★★
() автор топика
Ответ на: Что помню из курса обработки сигналов от Omnifarious

> Если брать финитную во времени функцию, то p будет комплексной переменной, с областью изменения на всей комплексной плоскости.

Ну если у нас x определена на отрезке [0;1] (правильнее даже говорить, что не определена, а известна на этом отрезке... ну что поделать - таблично функцию можно задать в конечном числе точек), переменная p в любом случае будет на всей комплексной плоскости?...

и где же мне численно её считать? %) как мне её (разумно) ограничить?

Получается наверное какой-то квадрат на комплексной плоскости?... если построить график этой переменной p (зависимости мнимой части от вещественной), не будет же оно в бесконечность уходить?

Я же просто не могу начать с минус бесконечности и закончить бесконечностью... Или мне считать функцию, начиная с точки -99999-99999j, и закончив точкой 99999+99999j, обходя по квадратной сетке все точки? :)

И шаг тоже непонятно какой задать :)

BattleCoder ★★★★★
() автор топика
Ответ на: Что помню из курса обработки сигналов от Omnifarious

> Что помню из курса обработки сигналов

если не ошибусь, у нас что-то такое могут вести в магистратуре (я ща 4-й курс)...

и вообще, все предметы у нас в каком-то непонятном случайном порядке... непоследовательно.

BattleCoder ★★★★★
() автор топика
Ответ на: Что помню из курса обработки сигналов от Omnifarious

Или мне считать p от 0+0j до 1+1j? просто вот не вижу связи между переменными p и x...

На всей числовой оси и тем более на всей комплексной плоскости я считать не имею возможности (думаю, очевидно, почему). да и функция задана только на отрезке. пусть даже не [0,1], а на каком-то [0,99999], но ограниченном.

Понятно, что при таких расчётах будет какая-то погрешность. но мне бы хоть как посчитать.

BattleCoder ★★★★★
() автор топика

Советую Бахвалова почитать (численные методы), хоть и старая литература, но по своему вопросу кое-что можете там найти.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

> Советую Бахвалова почитать (численные методы)

Спасибо, что напомнил. Я сегодня только этот учебник вспоминал, а автора забыл. Нам по нему численные методы читали (2 и 3 курсы).

pacify ★★★★★
()
Ответ на: комментарий от pacify

Это у меня текущая «туалетная книжка» :)

Как дочитаю, распечатаю себе «Искусство программирования на С», буду читать. А потом еще рекламируемую здесь книжку по модулям ядра распечатаю, если, конечно, появится нормальный pdf, а не тот вырвиглаз, который предлагают.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от BattleCoder

Ограничение области

Можно найти область значений p, в которой сосредоточено 95% мощности полученного в частотной области сигнала, и считать в ней. Правда я не знаю, как для Лапласа такую штуку сделать. Если преобразование находится аналитически, то можно построить график и посмотреть.

Возможно, функция f(t) такова, что ее образ в частотной области сосредоточен вблизи нуля в круге какого-то радиуса. Тогда можно отбросить быстро затухающие хвосты.

Omnifarious
()
Ответ на: Ограничение области от Omnifarious

понятно... то есть тут надо пробовать.

я могу в качестве примера взять функцию, аналитический вид которой известен... и построить график. или даже по этому аналитическому виду примерно определить границы.

но в общем случае аналитический вид мне не известен...

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от BattleCoder

Если известны отсчеты, то аналитический вид преобразования известен — это сумма конечного числа членов ряда (т.к. в точках, где нет отсчетов, функцию можно положить равной 0). Можно с помощью octave, matlab, wolframalpha и т.п. получить ее график и прикинуть область.

Omnifarious
()
Ответ на: комментарий от ien

Или, как говорят, лучше Хартли.

Понятно, почему лучше... набору действительных чисел сопоставляет набор других действительных чисел.

Но как это поможет в решении задачи Коши? :)

Для преобразования Лапласа есть алгоритм http://www.exponenta.ru/educat/class/courses/tfkp/theme12/theory.asp

Правда, алгоритм фактически аналитический, символьный. а мне надо его как-то к численному привести.

Если с преобразованием Хартли будет проще, то здорово... но пока всё равно не пойму...

BattleCoder ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.