Допустим, перед вами стоит следующая задача
На основе уравнения 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). Просто? Думаю, что все ответили положительно :)
Но что делать, когда выразить аналитически не получается?
К примеру, есть расчетное уравнение взаимосвязи давления и температуры водяного пара:
Да, здесь легко увидеть зависимость давления P от температуры T. Достаточно провести потенцирование этого выражения. Потенцирование в математике — действие обратное логарифмированию по некоторому основанию, то есть возведение в степень с этим основанием (в нашем случае основание 10).
Только вот найти обратную зависимость T = g(P) аналитически уже не представляется возможным. (Ну или это приведет к огромным выкладкам, уравнениям высоких степеней, полученным после разложения логарифма. Более того, как его раскладывать в ряд Маклорена вблизи нуля, если он имеет точку разрыва, в которой не определены некоторые производные).
И здесь нас спасают численные методы. Я возьму метод бисекции (метод половинного деления), потому что он мне больше всего нравится. Теперь поставим задачу более строго, собрав все начальные данные в одном месте:
Так как функция является сложной и нелинейно зависит от температуры, то явными методами аналитически температуру не выразить из уравнения. Подготовим нашу функцию для табулирования и решения относительно T:
Теперь мы получили функцию, нули которой мы будем искать. Для каждого параметра P ( в нашем случае это давление газа ) мы будем искать решение нелинейного уравнения относительно T. И находить, соответственно мы будем температуру. То есть для каждого давления P мы найдем соответствующую температуру, решая нелинейное уравнение f(T, P) = 0.
Давление будет изменяться с некоторым шагом и диапазоне, которые заданы в таблице.
Пример графика нужной для решения функции для давления P = 0.8[МПа]. Решение температуры для этого давления получается T = 437.71 [К]
Запрограммируем алгоритм решения с помощью кода на Python
Результат работы программы:
Статьи близкие по тематике:
Что такое численные методы и почему они упрощают жизнь? Разбор на простом примере
Какие книги читать по численным методам?
Что делать, если программирование кажется сложным, но очень хочется разобраться в нем? Часть 1
Что делать, если программирование кажется сложным, но очень хочется разобраться в нем? Часть 2
Еще много полезного и интересного вы сможете найти на ресурсах:
Библиотека с книгами для физиков, математиков и программистов
Репетитор IT mentor в VK // Репетитор IT mentor в Instagram
Репетитор IT mentor в Яндекс.Дзен // Репетитор IT mentor в telegram