Система гиперболических дифференциальных уравнений в частных производных. Таблица идентификаторов для программы. Реализация программы на языке С . Исходный код программы для вывода в среде MATLAB. Тестовые примеры для программы, реализующей явную схему.
Разностная схема - это конечная система алгебраических уравнений, поставленная в соответствие какой-либо дифференциальной задаче, содержащей дифференциальное уравнение и дополнительные условия (например краевые условия и/или начальное распределение).Пусть система дифференциальных уравнений, моделирующая поведение волн, имеет видДля моделирования поведения волн, как уже было описано выше, мы использовали систему дифференциальных уравнений (1) и построенную к ней конечно-разностную схему в которой: c - фазовая скорость, u и v-векторы скорости, а ? - высота волны. Легко заметить, что данная схема является явной, а использование осреднения по пространственным переменным придет схеме параболический характер.В качестве начального состояния поверхности рассмотрим гладкую поверхность с «колокольчиком» в центре.Для данной задачи рассмотрим условия со свободной границей (волна будет проходить сквозь границу, а не отражаться от нее). Для описания «свободных» границ в задачах о распространении волн цунами было выбрано условие Зоммерфельда, согласно которому предполагается перенос в направлении внешней нормы с постоянной скоростью, определяемой глубиной бассейна у границы и без изменения формы волны: (3) Переходя к рассмотрению численных алгоритмов, реализующих условия свободного прохода, предположим, что в приграничных точках поведение волны описывается уравнением (3). Тогда значение на границе в момент времени (n 1)?t определяется из соотношенияКритерий Куранта-Фридрихса-Леви - необходимое условие устойчивости явного численного решения некоторых дифференциальных уравнений в частных производных.Параболический характер данной схемы так же отражается и на условии устойчивости. В данном случае оно выгляди как (10) где - шаг по времени, h - шаг по пространственным осям, g - ускорение силы тяжести, H - глубина. Исследует нашу схему на устойчивость. Для этого должно выполняться условие1) Задать параметры расчетной сетки. 4) Задать граничные условия на новом слою.На рисунке 3 изображена блок-схема алгоритма.В таблице 1 представлены идентификаторы переменных, функций и процедур для языков C/C , используемых в реализации программ. Таблица 1 - Идентификаторы Переменные и методы Scheme: Массив значений u double *** u Массив значений высот double *** eta Вывод массива значений OUTARRAY(char *, double ***)#include class Scheme{ protected: double *** u; // Массив значений u double *** v; // Массив значений v double *** eta; // Массив значений eta double H; // Глубина бассейна int t_num; // Колво моментов времени int x_num; // Колво точек на оси X double dt; // Шаг по времени (секунды) double dx; // Шаг по оси (метры) void OUTARRAY(char * name, double *** out_array){ delete[] eta[i][j]; delete[] eta[i]; delete[] eta; } void clear(){ for(int i = 0; i <t_num; i ){ for(int j = 0; j <x_num; j ){ for(int k = 0; k <x_num; k ){ eta[i][j][k] = 0.0;Представлен исходный код программы для вывода в среде MATLAB.clear; load config.txt;Программа реализованная на C/C в качестве выходных данных имеет 2 файла: config.txt - содержащий информацию о расчетной сетке и eta.txt - содержащую карту высот. На рисунках 4 - 9 изображены результаты работы программы строящей графики в среде MATLAB в разные моменты времени: Рисунок 4 - состояние волны в начальный момент времениПусть система дифференциальных уравнений, моделирующая поведение волн, имеет видДля моделирования поведения волн, как уже было описано выше, мы использовали систему дифференциальных уравнений (11) и построенную к ней конечно-разностную схему в которой: u и v-векторы скорости, а ? - высота волны, ?* - вспомогательное значение высота волны, H - глубина бассейна. Пользуясь этим приемом, мы может находить скорости независимо от значения скоростей на следующем шаге. Это позволяет нам использовать метод прогонки для отыскания значений скоростей на новом слое. Для того, что бы отыскать значения на n 1 слое, опираясь на предыдущий слой, нужно будет решать систему линейных уравнений.В данной задаче начальное состояние волны зададим при помощи функцииДля данной схемы рассмотрим в качестве граничных условий «свободные» границы.1) Задать параметры расчетной сетки. 4) Рассчитать используя метод прогонки распределение скоростей на новом слою 5) .Рассчитать высоты на новом слою.На рисунке 11 изображена блок-схема алгоритма.В таблице 4 представлены идентификаторы переменных, функций и процедур для языков C/C , используемых в реализации программ.
План
Оглавление
Оглавление
1. Введение
2. Явная схема
2.1 Постановка задачи
2.2 Теоретическая часть
2.3 Начальные условия
2.4 Граничные условия
2.5 Условие Куранта - Фридрихса - Леви
2.6 Условие устойчивости
2.7 Алгоритм решения
2.8 Блок-схема
2.9 Реализация
2.9.1 Таблица идентификаторов для программы
2.9.2 Реализация на языке С/С программы
2.9.3 Исходный код программы для вывода в среде MATLAB
2.10 Тестовые примеры для программы, реализующей явную схему
3. Неявная схема
3.1 Постановка задачи
3.2 Теоретическая часть
3.3 Начальные условия
3.4 Граничные условия
3.5 Алгоритм решения
3.6 Блок-схема
3.7 Реализация
3.7.1 Таблица идентификаторов для программы
3.7.2 Реализация на языке С/С программы
3.7.3 Исходный код программы для вывода в среде MATLAB
3.8 Тестовые примеры для программы, реализующей явную схему
4. Заключение
Введение
Разностная схема - это конечная система алгебраических уравнений, поставленная в соответствие какой-либо дифференциальной задаче, содержащей дифференциальное уравнение и дополнительные условия (например краевые условия и/или начальное распределение). Таким образом, разностные схемы применяются для сведения дифференциальной задачи, имеющей континуальный характер, к конечной системе уравнений, численное решение которых принципиально возможно на вычислительных машинах. Алгебраические уравнения, поставленные в соответствие дифференциальному уравнению, получаются применением разностного метода, что отличает теорию разностных схем от других численных методов решения дифференциальных задач[1].
Уравнения мелкой воды - система гиперболических дифференциальных уравнений в частных производных, которая описывает потоки под поверхностью жидкости[2].
2.
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы