Экспонента по экспоненте

Различные математические алгоритмы.
О`Микрон
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 06.03.2014 (Чт) 19:15

Экспонента по экспоненте

Сообщение О`Микрон » 06.03.2014 (Чт) 20:24

Всем приветствия!
Многоуважаемые математики, окажите помощь, плиз! Следующая задача.
Имеется некоторая экспериментальная установка. В ней на образец производится скачкообразное воздействие "A", и исследуется кривая релаксации "B". Иллюстрируется графиком 1.

Однако в реальности ступенька не может быть идеальной, то есть падающей мгновенно, за нулевое время. На практике она представляет собой тоже плавно затухающую кривую "C". В результате кривая отклика исследуемого образца "D" затягивается (график 2).

Вопрос:
Как, имея кривые "C" и "D", вычислить кривую "B"?
Подразумевается, что "B" и "D" - это отклики одной и той же системы, то есть неидеальность кривой "C" не влияет существенно на механизм процессов, протекающих в образце (там простые диссипативные явления, подобные например остыванию).

Все кривые заданы массивами своих отсчетов Y(X). "C" и "D" близки к экспонентам, но не точно, особенно "C".

Если кто может, изобразите пожалуйста основной скелет алгоритма вычислений, в синтаксисе Бейсика.
Надеюсь, что с детальным конкретным написанием программы я смогу разобраться сам. Мне главное понять принцип, как такое вычисление делается.


Спасибо.
Вложения
expexp.gif
(1.97 Кб) Скачиваний: 120
Изображение
- Все знания - для всех.
- Поиск знаний священен.
- Обмен знаниями священен.
- Копирование священно.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2855
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Экспонента по экспоненте

Сообщение Proxy » 11.03.2014 (Вт) 9:18

Кажется данных не достаточно для решения.
Follow the white rabbit.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1658
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Экспонента по экспоненте

Сообщение Debugger » 11.03.2014 (Вт) 10:45

Маловато информации по задаче.
Как я понял - есть неидеальная система, и необходимо узнать, как она бы вела себя в идеале?
В задаче на руках у тебя только "C" и "D" - и "B" никак не найти, просто нет данных для её нахождения.
Если есть возможность добыть информацию про "А" - то уже можно что-либо придумать. Например, построить зависимость D(t)=f(C(t), C(t-dt), C(t-2dt), ..., C(t-ndt)) (раз это какой-то затухающий процесс, подозреваю, что такая формула прокатит). Тут поможет линейная аппроксимация/метод наименьших квадратов. Тогда, если применить эту формулу к А, мы получим В. Это математический подход.

Если имеется возможность провести серию опытов и мы уверены, что там почти экспоненты - можно варьируя длинну хвоста (уменьшая её), посмотреть, куда стремится D при его уменьшении хвоста. Для этого можно разложить D в ряд Тейлора (если там точно экспонента - можно взять просто её показатель), и построить график "коэффицент - время процесса C", где время процесса С - это, например, время от конца ступеньки до падения до 5% от ступеньки. Посмотреть, чему будут равны коэффициенты при "времени процесса С" равным нулю - вот мы и вычислили B. Это экспериментальный подход, и если вы там физикой занимаетесь, странно, что вы сами до него не дошли.
Программист - это локальный бог (С) Я

О`Микрон
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 06.03.2014 (Чт) 19:15

Re: Экспонента по экспоненте

Сообщение О`Микрон » 22.03.2014 (Сб) 9:00

Тысяча извинений, что долго не отвечал!
У меня почему-то не отображалось наличие новых ответов в теме((((((

Debugger писал(а):Как я понял - есть неидеальная система, и необходимо узнать, как она бы вела себя в идеале?
Не совсем так. Система (исследуемая) неидеальна и одна и та же в обоих случаях.
Нужно определить, как бы она ответила на другое воздействие (на "A" вместо "C").


Debugger писал(а):В задаче на руках у тебя только "C" и "D" - и "B" никак не найти, просто нет данных для её нахождения.
Если есть возможность добыть информацию про "А" - то уже можно что-либо придумать.
"A" известна - это резкая ступенька с нулевой длительностью спада.
(С "нулевой" - то есть меньшей, чем период отсчетов, которыми заданы массивы кривых.)


Debugger писал(а):можно варьируя длинну хвоста (уменьшая её), посмотреть, куда стремится D при его уменьшении хвоста. Для этого можно разложить D в ряд Тейлора (если там точно экспонента - можно взять просто её показатель), и построить график "коэффицент - время процесса C", где время процесса С - это, например, время от конца ступеньки до падения до 5% от ступеньки. Посмотреть, чему будут равны коэффициенты при "времени процесса С" равным нулю - вот мы и вычислили B. Это экспериментальный подход, и если вы там физикой занимаетесь, странно, что вы сами до него не дошли.

Я благодарю всех оказавших мне внимание ответами!
Но я действительно до этого самостоятельно дошел))
И алгоритм получился значительно проще, вот он:

Код: Выделить всё
B1(0) = D(0) 'Начальная точка - для всех кривых одна.
'сначала находим постоянную экспоненты для следующей точки, беря данные из середины спада
max1 = 0   'определение максимума
For i = 0 To 100
  If D(i) > max1 Then max1 = D(i)
Next i
'определение середины спада
For i = 100 To 0 Step -1
  If D(i) / max1 > 0.6 Then
    i1 = i
    i = 0
  End If
Next i
'определение постоянной
k = (D(i1 + 1) - C(i1)) / (D(i1) - C(i1))

'А теперь, собственно, восстановление самой кривой
B1(1) = k * B(0) 'следующая точка после начальной
'все остальные точки
For i = 1 To 99
  k = (D(i + 1) - C(i)) / (D(i) - C(i))
  B1(i + 1) = k * B1(i)
Next i

Здесь B1(x) - массив востановленной кривой. В программе были для примера взяты массивы размером 101 точка (0..100).
k одинакова для любого места кривой. Однако в действительности ошибки измерения существенней на краях диапазона, поэтому сначала я просканировал, какой из отсчетов имеет приблизительно половинную амплитуду, и из этого места получил постоянную.
Имея k, можно уже построить всю "идеальную" экспонету, но, строго говоря, это было бы имитирование кривой, а не ее восстановление.
Поэтому далее, для каждой следующей точки k вычисляется заново. Что это дает? Это дает перенос имеющихся отклонений от математически точной экспоненты из "D" в "B1". (Проверено, искусственным наложением возмущений на "D").
Таким образом, мы имеем действительное восстановление: если реальная реакция системы "D" имеет какие-нибудь нюансы, небольшие изгибы, - всё это отображается и на восстановленной кривой.
Разумеется, если "D" не является точной экспонентой, то и восстановится она не абсолютно точно. Но эта погрешность - уже второго порядка малости.

На этом задачу могу считать решенной. Всем спасибо!

ЗЫ:
Вышел с этой темой на один чисто математический форум. В конце концов договорились до дифференциальных уравнений, но так ничего и не решили.
Изображение
- Все знания - для всех.
- Поиск знаний священен.
- Обмен знаниями священен.
- Копирование священно.


Вернуться в Математика

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList