Разрешимость — очень интересное понятие в математике, с помощью которого можно определить, используя сложные методы доказательства и анализа, может ли быть решена определенная проблема, будь то уравнение, система уравнений, интеграл и т. д. Разрешимость обычно относится к тому, может ли проблема иметь «точное или закрытое решение», но в других случаях это может также относиться к тому, подходит ли задача для решения с помощью численных или приближенных методов.

Например, некоторые линейные дифференциальные уравнения в частных производных, такие как уравнение теплопроводности или волновое уравнение, могут быть решены точно при определенных начальных или граничных условиях и обычно в очень простых геометриях, таких как прямоугольные или круглые области. Однако, как только вы подходите к задаче в нестандартной области или вводите более сложные граничные условия, дифференциальное уравнение становится неразрешимым, если вы не используете какую-либо численную схему.

Это именно та проблема, с которой приходится сталкиваться в реальном мире. Легко попасть в ловушку, думая, что, поскольку определенная математическая задача может быть решена численно, с ней не связаны вычислительные проблемы. «Ну что ж, уравнение теплопроводности решить легко, так зачем же нам тратить все это время на проектирование и инженерное моделирование теплопередачи?» — тип вопроса, который можно задать, не зная, как проблема масштабируется с размером пространства параметров. И по большей части действительно важен масштаб проблемы.

Предположим, у вас есть хороший компьютер, и я не имею в виду те разочаровывающие ноутбуки или настольные ПК, которые вы можете купить по умеренной цене на рынке, которые обычно поставляются с 16 ГБ ОЗУ и едва ли 4 ядрами ЦП, я имею в виду действительно хороший, скажем, 64 ГБ+ ОЗУ и, скажем, 20 ядер ЦП. Вы уже можете подумать, что этого достаточно, чтобы решить определенное линейное дифференциальное уравнение в частных производных. Скажем, вы представляете уравнение как линейную систему алгебраических уравнений:

L u = b

где u — вектор решения, содержащий все значения в каждой точке некоторой области определения D, b — вектор некоторой исходной функции, а L — линейный оператор, объединяющий производные и другие функции в одну большую матрицу. Граничные условия для u вводятся в уравнение путем вычитания из обеих частей уравнения величины L’u’, где штрих…