Рубрика «численные методы» - 2

Метод оптимизации Trust-Region DOGLEG. Пример реализации на Python - 1

Trust-region метод (TRM) является одним из самых важных численных методов оптимизации в решении проблем нелинейного программирования (nonlinear programming problems). Метод базируется на определении региона вокруг лучшего решения, в котором квадратичная модель аппроксимирует целевую функцию.

Методы линейного поиска (line search) и методы trust-region генерируют шаги с помощью аппроксимации целевой функции квадратичной моделью, но использую они эту модель по-разному. Линейный поиск использует её для получения направления поиска и дальнейшего нахождения оптимального шага вдоль направления. Trust-region метод определяет область (регион) вокруг текущей итерации, в котором модель достаточно аппроксимирует целевую функцию. В целях повышения эффективности направление и длина шага выбираются одновременно.

Trust-region методы надежны и устойчивы, могут быть применены к плохо обусловленным задачам и имеют очень хорошие свойства сходимости. Хорошая сходимость обусловлена тем, что размер области TR (обычно определяется модулем радиус-вектора) на каждой итерации зависит от улучшений сделанных на предыдущих итерациях.
Читать полностью »

Метод Уэлфорда — простой и эффективный способ для вычисления средних, дисперсий, ковариаций и других статистик. Этот метод обладает целым рядом прекрасных свойств:

  • достигает отличных показателей по точности решений;
  • его чрезвычайно просто запомнить и реализовать;
  • это однопроходный онлайн-алгоритм, что крайне полезно в некоторых ситуациях.

Оригинальная статья Уэлфорда была опубликована в 1962 году. Тем не менее, нельзя сказать, что алгоритм сколь-нибудь широко известен в настоящее время. А уж найти математическое доказательство его корректности или экспериментальные сравнения с другими методами и вовсе нетривиально.

Настоящая статья пытается заполнить эти пробелы.

Точное вычисление средних и ковариаций методом Уэлфорда - 1

Читать полностью »

image

Изучая иностранную литературу, на днях наткнулся на работы [1, 2] профессора Мичиганского университета Дивакара Вишваната (Divakar Viswanath) об итерационном алгоритме вычисления периодических орбит динамических систем, основанном на методе Линдштедта-Пуанкаре (ЛП) (для ознакомления с ним рекомендую книгу [3, с. 408-411]). Преимуществом данного метода является то, что он не требует численного интегрирования дифференциального уравнения, поэтому может быть применён к построению и неустойчивых циклов. Читать полностью »

Привет! Некоторое время назад увлекся глубоким обучением и стал потихоньку изучать tensorflow. Пока копался в tensorflow вспомнил про свою курсовую по параллельному программированию, которую делал в том году на 4 курсе университета. Задание там формулировалось так:

Линейная начально-краевая задача для двумерного уравнения теплопроводности:

frac{partial u}{partial t}=sum limits_{alpha=1}^{2} frac{partial}{partial x_alpha} left (k_alpha frac{partial u}{partial x_alpha} right ) -u, quad x_alpha in [0,1] quad (alpha=1,2),  t>0;

k_alpha=begin{cases}    50, (x_1, x_2) in Delta ABC\    1, (x_1, x_2) notin Delta ABCend{cases}

(alpha=1,2),  A(0.2,0.5),  B(0.7,0.2),  C(0.5,0.8);

u(x_1, x_2, 0)=0, u(0,x_2,t)=1 - e^{-omega t},  u(1, x_2, t)=0,

u(x_1,0,t)=1 - e^{-omega t}, u(0, x_2, t)=0,  omega=20.

Хотя правильнее было бы назвать это уравнением диффузии.

Задачу тогда требовалось решить методом конечных разностей по неявной схеме, используя MPI для распараллеливания и метод сопряженных градиентов.

Я не специалист в численных методах, пока не специалист в tensorflow, но опыт у меня уже появился. И я загорелся желанием попробовать вычислять урматы на фреймворке для глубокого обучения. Метод сопряженных градиентов реализовывать второй раз уже не интересно, зато интересно посмотреть как с вычислением справится tensorflow и какие сложности при этом возникнут. Этот пост про то, что из этого вышло.

Численный алгоритм

Читать полностью »

Вручную выписывать коэффициенты СЛАУ и вводить их в программу — не самый эффективный способ программирования метода конечных разностей, потому что для каждой новой вариации постановки задачи потребуется писать новую программу. Логичнее разработать общий солвер для более широкого класса задач, что упростит программирование и тестирование. Тестирование алгоритмов МКР затруднено, так как точное решение неизвестно, но общий солвер можно протестировать на задачах с заданным точным решением.

Автором разработан солвер Joker FDM для решения 1- и 2-мерных задач сопряжения для эллиптических уравнений методом конечных разностей.

Читать полностью »

Хаос внутри судоку - 1Многие из вас наверняка знакомы с такой головоломкой, как судоку. Возможно, даже реализовывали программу для автоматического решения. На хабре тема судоку обсуждалась уже множество раз, и, как показывает практика, практически любой способ автоматического нахождения ответа в итоге сводится к направленному перебору. И это вполне естественно, ведь даже ручные решения придерживаются тех же принципов. Но что, если поступить иначе?
В данной статье я рассмотрю один очень занятный метод, предложенный в 2012 году, основанный на строго математическом подходе. Программная реализация прилагается.

Читать полностью »

Александр 4110 Шаенко (экс-инженер Даурия Аэроспейс, ныне главарь проекта краудсорсингового спутника «Маяк») и Степан Тезюничев пишут открытый софт для моделирования теплового режима спутников.

Репозиторий тут.

Космос зовет: нужен математик-специалист в области численного решения стохастических дифференциальных уравнений - 1

До этого, Саша писал дисер — «Метод решения задачи лучистого теплообмена без матрицы угловых коэффициентов» (диссертация, автореферат). Код тут. (он на VB.NET, тормозной, но работает и даже есть документация)

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

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

Основную сложность ребята вроде решили, построив массивно-параллельный алгоритм расчета хода излучения с методом Монте-Карло на CUDA. Теперь они хотят использовать для интегрирования своей системы, а она большой размерности, порядка 100 тыс. неизвестных, и жесткая, подходящий метод интегрирования по времени. Обычные явные методы требуют слишком мелкого шага по времени, а неявные требуют много раз вычислять правую часть, что ресурсозатратно.

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

«Если вы пашет поле, что вы предпочтете: двух сильных быков или 1024 курицы?»
— Сеймур Крэй

В туннеле под моим домом я встречаюсь с эльфами. Они мне и дают советы, как сделать суперкомпьютеры лучше - 1

Сеймур Крэй, отец «суперкомпьютеров», создатель индустрии суперкомпьютеров, инженер-электронщик и математик.

Ачивки Сеймура Крэя:

  • 1958 — За год собрал прототип 6-битного суперкомпьютера из бракованных транзисторов.
  • 1960 — Первая машина на германиевых транзисторах вместо ламп (CDC 1604).
  • 1963 — Обошел IBM в 3 раза по производительности и на 40% по цене (CDC 6600).
  • 1971 — Чтобы не увольнять 4 инженеров отказался от своей зарплаты.
  • 1975 — Первый коммерчески успешный векторный суперкомпьютер. Применение архитектуры команд «регистр-регистр» (Cray-1).
  • Дизайн суперкомпьютера в виде дивана (Cray-1).
  • 1988 — 500 MHz (Cray 3)
  • Нашел замену кремнию — арсенид галлия (GaAs) — в шесть раз быстрее кремниевых микросхем
  • 1994 — 1 GHz (Cray-4)
  • Чтобы не отвлекаться на посещение Белого Дома и встречу с Президентом США, он отказался от чести быть удостоенным Национальной медалью США в области технологий и инноваций.
  • Выкопал собственный противоядерный Vault13 c запасом топлива и воды на 4 года.

С днем рождения, Сеймур Крэй!

Читать полностью »

В статье описывается реализация известного метода конечных объемов для численного решения уравнений в частных производных.Используется разбиение области на любые стандартные элементы(конечные объемы) — треугольники, четырехугольники и т.д.Метод визуализации результатов расчетов также самописный.

Метод Finite Volume — реализация на примере теплопроводности - 1

Читать полностью »

Пост написан под влиянием поста пользователя pchelintsev_an.

В данной статье я постараюсь рассказать, с какими вычислительными трудностями можно столкнуться, если пойти по «наивному» пути вычисления матричной экспоненты. Статья может быть полезна тем, кто хотел бы познакомиться с вычислительной математикой. Эксперименты проводились с использованием системы GNU Octave.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js