5,8K подписчиков

Численные методы: составление обратной зависимости x(y) для сложных зависимостей y(x)

241 прочитал
На основе уравнения f(x), составить обратную таблицу зависимости параметра x от y c шагом по y, равном hy в интервале значений Δy.

Допустим, перед вами стоит следующая задача

На основе уравнения f(x), составить обратную таблицу зависимости параметра x от y c шагом по y, равном hy в интервале значений Δy.

Давайте сразу приведем пример. Есть функция y = k*x + b. Cейчас у нас есть зависимость y от x, то есть y = f(x). Что нам мешает получить зависимость x = g(y) ? Да в общем то ничего не мешает. Из y = k*x + b выражаем x = (y - b)/k. Вот мы и получили x = g(y). Просто? Думаю, что все ответили положительно :)

Но что делать, когда выразить аналитически не получается?

К примеру, есть расчетное уравнение взаимосвязи давления и температуры водяного пара:

На основе уравнения f(x), составить обратную таблицу зависимости параметра x от y c шагом по y, равном hy в интервале значений Δy. -2

Да, здесь легко увидеть зависимость давления P от температуры T. Достаточно провести потенцирование этого выражения. Потенцирование в математике — действие обратное логарифмированию по некоторому основанию, то есть возведение в степень с этим основанием (в нашем случае основание 10).

Только вот найти обратную зависимость T = g(P) аналитически уже не представляется возможным. (Ну или это приведет к огромным выкладкам, уравнениям высоких степеней, полученным после разложения логарифма. Более того, как его раскладывать в ряд Маклорена вблизи нуля, если он имеет точку разрыва, в которой не определены некоторые производные).

И здесь нас спасают численные методы. Я возьму метод бисекции (метод половинного деления), потому что он мне больше всего нравится. Теперь поставим задачу более строго, собрав все начальные данные в одном месте:

На основе уравнения f(x), составить обратную таблицу зависимости параметра x от y c шагом по y, равном hy в интервале значений Δy. -3

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

На основе уравнения f(x), составить обратную таблицу зависимости параметра x от y c шагом по y, равном hy в интервале значений Δy. -4

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

Давление будет изменяться с некоторым шагом и диапазоне, которые заданы в таблице.

Пример графика нужной для решения функции для давления P = 0.8[МПа]. Решение температуры для этого давления получается T = 437.71 [К]

На основе уравнения f(x), составить обратную таблицу зависимости параметра x от y c шагом по y, равном hy в интервале значений Δy. -5

Запрограммируем алгоритм решения с помощью кода на Python

На основе уравнения f(x), составить обратную таблицу зависимости параметра x от y c шагом по y, равном hy в интервале значений Δy. -6

Код программы

Результат работы программы:

Консольный вывод. Язык программирования: Python 3
Консольный вывод. Язык программирования: Python 3

Статьи близкие по тематике:
Что такое численные методы и почему они упрощают жизнь? Разбор на простом примере
Какие книги читать по численным методам?
Что делать, если программирование кажется сложным, но очень хочется разобраться в нем? Часть 1
Что делать, если программирование кажется сложным, но очень хочется разобраться в нем? Часть 2

Еще много полезного и интересного вы сможете найти на ресурсах:

Библиотека с книгами для физиков, математиков и программистов

Репетитор IT mentor в VK // Репетитор IT mentor в Instagram
Репетитор IT mentor в Яндекс.Дзен // Репетитор IT mentor в telegram