Численные методы (для ODE/PDE), которые могут принимать приблизительные решения/хорошие начальные догадки, а затем уточнять их до определенной точности.

В настоящее время я играю со старым аналоговым компьютером, который мог довольно быстро решать зависимые от времени ODE/PDE без временного шага; таким образом, нет проблем со сходимостью, вызванных временным шагом из-за его вычислительной природы. Но проблема аналоговых компьютерных решений в том, что они неточны из-за физических ограничений. Мне очень любопытно, что: существуют ли какие-либо численные методы/решатели, которые могут использовать приближенное решение аналогового компьютера (во временном интервале) для его дальнейшей обработки и создания более точного решения?

Приведу пример решения ОДУ второго порядка, описывающего движение массо-пружинного демпфера. Уравнение следующее:

Икс "=" 0,2 Икс 0,4 Икс ; Икс ( 0 ) "=" 1 , Икс ( 0 ) "=" 0 ; т с т о п "=" 60 с .
Чтобы решить приведенное выше уравнение на аналоговом компьютере, нам нужно сопоставить приведенное выше уравнение с электрической системой. Обычно аналоговый компьютер может выполнять несколько основных арифметических операций в области непрерывного времени, например сложение, вычитание, умножение, интегрирование и т. д. Выход интегратора представляет собой переменную состояния ОДУ; вход этого интегратора представляет соответствующую производную по времени первого порядка. Конфигурируя основные вычислительные блоки в контурах обратной связи, мы можем отобразить уравнение следующим образом: (я использую Simulink)

ODE второго порядка отображается на аналоговый компьютер

После того, как вы загрузите начальные условия в интеграторы, вы можете позволить аналоговому компьютеру работать и решать. Если вы измерите электрический сигнал на выходе интегратора 1, вы получите решение Икс ( т ) во временной области:

Аналоговое компьютерное решение x (t)

Но из-за физических ограничений (например, электрических помех, смещений) решение Икс ( т ) не точно. Я ищу численный метод, который может принять приведенное выше решение Икс ( т ) аналоговым компьютером, например решения Икс ( т "=" 1 с ) , Икс ( т "=" 2 с ) , Икс ( т "=" 3 с ) , Икс ( т "=" 4 с ) . . . Икс ( т "=" 60 с ) , начните с этих приблизительных точек решения и далее уточняйте эти решения Икс ( т "=" 1 с ) , . . . Икс ( т "=" 60 с ) с гораздо большей точностью.

(Этот ОДУ второго порядка является простым примером для иллюстрации; он имеет аналитическое выражение решений. Более общий случай — это нелинейные ОДУ без аналитического решения.)

Заранее спасибо!! Любые мысли и предложения очень приветствуются и ценятся!!

Я думаю, вы имеете в виду, что вы превращаете ОДУ во что-то без шага по времени, что должно быть более или менее системой алгебраических уравнений. Существует множество таких методов; например, к этому типу относятся спектральные методы. (В контексте PDE к этому типу относятся полностью спектральные методы, а частично спектральные методы — нет.)
@GiuseppeNegro Я добавлю пример позже. Я мог бы выложить цифры, потому что я только что зарегистрировался :-)
@Ian Привет, Ян, на самом деле аналоговые компьютеры преобразуют исходную ОДУ в соответствующую электрическую динамическую систему, и ответом системы является решение ОДУ. Я не мог сейчас добавлять цифры в свою ветку из-за своей низкой репутации. Вот ссылка, которая может предоставить вам больше информации об аналоговых компьютерах: Analogmuseum.org/library/eaiapproach.pdf
На самом деле это почти то же самое, потому что реальная электрическая система не имеет идеального частотного профиля (невозможно изобрести машину, которая точно пропускает все частоты), поэтому аналоговое решение, скажем, Икс + Икс "=" грех ( т ) , Икс ( 0 ) "=" 0 , Икс ( 0 ) "=" 0 очень похоже на спектральное решение.
Я согласен с Джузеппе, что этот вопрос, вероятно, сейчас слишком общий ... вы решаете ОДУ или УЧП? Какого типа? Ваш аналоговый компьютер действует как хороший предварительный кондиционер для низкочастотной составляющей решения; большинство численных методов (подходящий зависит от типа задачи) смогут воспользоваться этим.
@Ian Привет, Ян, я только что обновил свой пост цифрами. Аналоговые компьютеры не преобразуют решения во временной области в частотную область.
@ user7530 Привет, я только что загрузил рисунок для примера. Я решаю дифференциальные уравнения, зависящие от времени. На мой взгляд, аналоговые компьютеры просто обеспечивают приблизительные решения во временной области, а не предварительные условия для целей изменения формы.
@Nate Внутри нет, ты прав. Но источник их ошибки наиболее прямо описан в частотной области: вообще говоря, схема, подобная вашей, имеет эффект фильтра нижних частот в дополнение к реальному процессу. В результате качественные особенности погрешности аналогового компьютерного решения и решения спектральным методом очень схожи.
@Ian Спасибо, что упомянули об этом. У меня мало опыта со спектральным методом для решения ОДУ. Мне нужно изучить это больше, чтобы прокомментировать это. Но мои первоначальные ощущения таковы, что это совершенно разные методы.

Ответы (3)

Если у вас есть хорошая начальная оценка, метод Ньютона трудно превзойти. Квадратичная сходимость означает, что количество точных десятичных (двоичных) разрядов удваивается с каждой итерацией. Это предполагает, что первая производная медленно меняется между вашей оценкой и реальным решением, что означает, что вторая производная, умноженная на вашу ошибку (между оценкой и реальным ответом), мала по сравнению с первой производной. Из физических соображений вы знаете, что ваше решение представляет собой затухающую синусоиду, поэтому подгоните его к А потому что ( ю т ) опыт ( λ т ) Что вам действительно нужно для метода Ньютона, так это оценки А , ю , λ , а не оценки у ( т ) что вы получаете от вашей схемы. А легко, это у ( 0 ) . я бы взял ю от последнего пересечения нуля я мог легко определить и λ от отношения первого пика к стартовой амплитуде.

Здравствуйте, Росс, спасибо за ваш ответ. На самом деле это ОДУ второго порядка является простым примером с аналитическим выражением решения. То, что я ищу, является общим случаем, когда мы не знаем решения заранее: возможно ли, что мы принимаем значение Икс ( т ) , например, на Икс ( т "=" 1 с ) , Икс ( т "=" 2 с ) , Икс ( т "=" 3 с ) , Икс ( т "=" 4 с ) , Икс ( т "=" 5 с ) . . . Икс ( т "=" 60 с ) в качестве начальных предположений и передать эти значения какому-либо численному решателю, чтобы он начал с этих предположений. Существует ли такой численный метод?
Вы, безусловно, можете подогнать значения к любой функциональной форме, которую вы хотите. Выбор формы может быть искусством. Например, вы можете выбрать полином некоторого порядка. Сделав это, вы можете использовать минимизатор линейной функции, чтобы найти коэффициенты многочлена. Они обсуждаются в любом тексте по числовому анализу. В главе 10 числовых рецептов есть обсуждение. Если вы берете данные через равные промежутки времени, вы настроены на анализ Фурье.
Привет Росс, спасибо за упоминание этой главы книги. Я внимательно прочитаю. Полиномиальная аппроксимация может быть способом взять решения из аналоговых компьютеров. Как вы думаете, будет ли существовать численный метод, в котором он все еще использует классическое численное интегрирование для временного шага (например, Рунге-Кутта 4-го порядка) и может использовать приближенные решения аналоговых компьютеров? Большое спасибо!!
Я бы не знал, как использовать приближенное решение в пошаговом режиме. Вы можете взять приближенное решение в качестве отправной точки для метода релаксации, который также обсуждается в Численных рецептах как способ решения двухточечных задач.
Привет, Росс, спасибо. Я внимательно прочитаю книгу «Численные рецепты», чтобы посмотреть, смогу ли я воспользоваться приближенными решениями аналоговых компьютеров.
Идея заключалась бы в том, что у вас есть Икс ( т ) и Икс ( т ) интервалами с аналогового компьютера. Затем вы можете оценить, что Икс ( т ) должно быть получено из уравнения и сравнить его с результатом аналогового компьютера. Затем вы можете настроить Икс ( т ) , Икс ( т ) каким-то подходящим образом. Я не могу помочь с тем, что было бы подходящим способом, но, возможно, книга может помочь.
Привет, Росс, я имел в виду что-то очень похожее на «метод Ньютона», который может принимать эти значения x в разные моменты времени и продолжать уточнять эти точки данных с помощью итераций. Может быть, это способ параллельных вычислений для решения ОДУ?

Почти в том же духе, что и ответ Росса Милликена, позвольте мне предположить, что вы знаете начальные условия Икс ( 0 ) "=" 1 , Икс ( 0 ) "=" 0 и что модель что-то вроде

Икс ( т ) "=" е α т ( А потому что ( β т ) + Б грех ( β т ) )
и из точек данных ( т я , Икс я ) взятые с аналогового компьютера, вы хотите уточнить значения четырех параметров А , Б , α , β которые появляются в модели.

Это можно рассматривать как проблему нелинейной регрессии, и ключевой вопрос состоит в том, чтобы получить «разумные» оценки.

Первое условие дает А "=" 1 и это окончательное значение (это больше не параметр, который нужно настраивать).

Теперь, глядя на производную

Икс ( т ) "=" е α т ( потому что ( β т ) ( β Б α А ) грех ( β т ) ( А β + α Б ) )
дает β Б α А "=" 0 а это значит, что мы можем навязать Б "=" α β .

Все вышеперечисленное делает модель

Икс ( т ) "=" е α т ( α грех ( β т ) β + потому что ( β т ) )
и у нас осталось всего два параметра α , β для которых нам нужны оценки. Смотря на
Икс ( т ) "=" ( α 2 + β 2 ) е α т грех ( β т ) β
мы видим, что первый минимум Икс ( т ) будет соответствовать β т * "=" π ; это дает оценку для β . На данный момент у нас есть
Икс ( т * ) "=" е π α β "=" е α т *
из которого оценка α легко извлекается.

Теперь у нас есть все необходимые элементы, чтобы начать нелинейную аппроксимацию данных методом наименьших квадратов.

Просто глядя на сюжет в посте, пользуясь тем, что первый минимум более-менее соответствует т * "=" 5 , Икс "=" 0,6 , получаем в качестве оценок β 0 "=" π 5 0,628319 и α 0 "=" 1 5 бревно ( 5 3 ) 0,102165 в то время как точные значения должны быть β "=" 39 10 0,624500 и α "=" 1 10 . Нелинейная регрессия сходится за пару итераций.

Уважаемый Клод, спасибо за подробный ответ! Я согласен с вашим методом для этого примера, где мы знаем аналитическое выражение для решения. В более общем случае ОДУ было бы нелинейным и не имело бы аналитического выражения. Существует ли численный метод, который может напрямую принимать значения Икс ( т ) , например, на Икс ( т "=" 1 с ) , Икс ( т "=" 2 с ) , Икс ( т "=" 3 с ) , Икс ( т "=" 4 с ) , Икс ( т "=" 5 с ) . . . Икс ( т "=" 60 с ) в качестве первоначальных предположений и может уточнить решение с гораздо большей точностью без «человеческого расчета» в цикле? Спасибо!
@Нейт. Я полностью согласен с вашей точкой зрения: если мы знаем форму решения, этот метод легко применить (я решал такие задачи, когда использовал в 60-х годах аналоговые компьютеры). В случае, когда у нас не должно быть никакого представления, сглаживающие сплайны очень хороши.
Вау, я удивлен, что вы использовали аналоговый компьютер :-) Я думал, что это очень старый инструмент моделирования, о котором мало кто знал. У аналоговых компьютеров есть одна особенность, которая мне очень нравится: настоящая интеграция в непрерывном времени. На самом деле я думаю воспользоваться этой функцией, пытаясь найти способ ускорить обычные численные решатели ОДУ. Но похоже, что численные решатели довольно самодостаточны; приближенные решения аналоговых компьютеров не могли их напрямую ускорить...
Ты смотрел мой профиль? Я начал 55 лет назад с компьютеров. Аналоговые компьютеры прекрасно справляются с этим классом задач. Было преступлением убить их такими, какими они были. Ваше здоровье
Верно! В 50-х/60-х годах людей учили использовать аналоговые компьютеры для моделирования! Я читал, что в 70-х годах было много дебатов на тему «аналоговый компьютер против цифрового», но не было сделано четких выводов о том, что цифровые компьютеры превосходят аналоговые во всех аспектах. С тех пор все сообщество приняло цифровые компьютеры. Я думаю, что аналоговые компьютеры все еще могут лучше справляться с моделированием динамических систем из-за присущей им природы непрерывного времени.

Ознакомьтесь с этой статьей из Колумбийского университета . чип/

Кажется, они пытаются сделать почти то же самое, о чем вы подумали: использовать аналоговые вычисления, чтобы получить хорошую начальную оценку, а затем использовать цифровые (в основном стандартные численные методы), чтобы получить окончательный приемлемый ответ, и все это в настоящий компьютерный чип. Довольно круто, если вы спросите меня.