0 / 0 / 2
Регистрация: 13.10.2016
Сообщений: 141
|
|
1 | |
InterpolatingFunction и NDsolve28.10.2018, 21:09. Показов 2850. Ответов 8
Метки нет (Все метки)
Объясните пожалуйста что такое InterpolatingFunction и с чем его едят.
Я решил дифур и у меня получился такой ответ. Что это значит и как получить значение функции s = NDSolve[{m D[x[t], {t, 2}] == F[t, x[t], D[x[t]]], x[t0] == x0, (D[x[t], t] /. t -> t0) == v0}, x, {t, t0, T}] как я могу получить значение функции x в какой-либо точке?
0
|
28.10.2018, 21:09 | |
Ответы с готовыми решениями:
8
NDSolve, MeshRegion NDSolve Сингулярность Система ДУ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
28.10.2018, 23:53 | 2 | |||||
Функция, которая была получена путём интерполяции.
Если примените FullForm, увидите внутринности. Там скорее всего будет какой-то набор опорных точек вида {t, x}. Соответственно, значение функции во всех остальных точках считается во время вызова функции (т.е. применения функции к аргументу) по формулам интерполяции. Во всём этом как правило не нужно разбираться при решении прикладных задач. Как обычно, вызвать функцию, передав аргументом число. Если откроете документацию NDSolve, сразу же увидите примеры:
1
|
0 / 0 / 2
Регистрация: 13.10.2016
Сообщений: 141
|
|
29.10.2018, 00:03 [ТС] | 3 |
Mysterious Light, А что в моем случае значит полученный ответ (прикрепленное изображение)?
И еще: Тут я строю график зависимости x от t Plot[{x[t] /. s}, {t, t0, T}, AxesLabel -> {t, x[t]}], означает конструкция {x[t] /. s}, или {x[t] /. s[[1,1]]}, то что я x[t] меняю на свое решение s ДУ ?
0
|
29.10.2018, 09:32 | 4 | |||||
Не знаю, — лукаво отвечаю я, — у меня в WM8 такого нет.
Смотрим FullForm (я уже упоминал эту функцию
Например, если s = {{ x -> (2 # + 3 &)}}, то s[[1, 1]] редуцируется к x -> (2 # + 3 &), а x[t] /. s[[1, 1]] редуцируется к x[t] /. x -> (2 # + 3 &), что в свою очередь становится (2 # + 3 &)[t], что становится 2 t + 3. И наконец, {x[t] /. s[[1,1]]} редуцируется к {2 t + 3}. Задание Вам: разберите конструкцию {x[t] /. s}
1
|
0 / 0 / 2
Регистрация: 13.10.2016
Сообщений: 141
|
|
29.10.2018, 17:18 [ТС] | 5 |
Ну скорее всего, если например s={{ x -> (2 # + 3 &)},{ x -> (11 # + 352&)},{ x -> ( 12&)}}, то {x[t] /. s} редуцируется к {2 t + 3}, {11t+352} и {12}, это справедливо при решении системы ДУ, как мне кажется ?
0
|
29.10.2018, 17:53 | 6 |
я думал, Вы получите решение строго из определений.
Верно, но не совсем. Выражение редуцируется к выражению, а Вы говорите, что одно выражение редуцируется к трём. Кстати, Вы можете запустить WM и посмотреть, что он выдаст. Это самопроверка. Не обязательно: выше Вы же приводите пример кода с этой конструкцией, хотя у Вас одно диффуравнение.
1
|
0 / 0 / 2
Регистрация: 13.10.2016
Сообщений: 141
|
|
29.10.2018, 18:11 [ТС] | 7 |
Можете пожалуйста пояснить, не особо понял?
И еще, если у нас одно решение дифура, то разницы между {x[t] /. s} и {x[t] /. s[[1,1]]} не будет? Добавлено через 13 минут И грубо говоря Plot[{x[t] /. s[[1, 1]]}, {t, t0, T}, AxesLabel -> {"t", "x[t]"}] В этом отрывке мы подставляем вместо x[t] решение нашего дифура которое равно s и с ним уже работаем?
0
|
29.10.2018, 18:22 | 8 | |||||
Допустим, перед Вами стоит задача посчитать значение некоторого выражения, скажем, 2+3*6. Ответ будет выражением и ответ (с точностью до эквивалентных преобразований) единственен. Так же и всюду.
Если имеется выражение {x[t] /. s}, то после вычислений WM вернёт выражение. Откройте WM и проверьте, что под ячейкой In стоит ровно одна ячейка Out. И снова я призываю открыть WM и ввести туда Вами придуманный пример
Работа функции не зависит от приложения, её можно выучить безотносительно дифуров. Как обычно, большую роль играет формат данных. Я точно могу сказать, что разница между {x[t] /. s} и {x[t] /. s[[1,1]]} есть ВСЕГДА, а между {x[t] /. s} и {x[t] /. s[[1]]}, КАК ПРАВИЛО, нет. Впрочем, даже в последнем случае я в своём коде всегда исхожу из предположения, что разница есть, и потому всегда контролирую формат данных, к чему и Вам призываю. Например, в каком формате NDSolve возвращает результат? Это список списков правил замены, список списков списков правил замены и просто список правил замены? Добавлено через 57 секунд Точнее, мы подставляем вместо x (!!!) решение дифура, которое содержится в правилах замены в s.
1
|
0 / 0 / 2
Регистрация: 13.10.2016
Сообщений: 141
|
|
29.10.2018, 18:42 [ТС] | 9 |
Mysterious Light, Cпасибо за то что уделили время, буду изучать дальше.
0
|
29.10.2018, 18:42 | |