Математический форум Math Help Planet
Обсуждение и решение задач по математике, физике, химии, экономике Теоретический раздел |
Часовой пояс: UTC + 3 часа [ Летнее время ] |
новый онлайн-сервис число, сумма и дата прописью |
|
Часовой пояс: UTC + 3 часа [ Летнее время ] |
Страница 1 из 1 |
[ Сообщений: 7 ] |
|
Автор | Сообщение | |
---|---|---|
zolla |
|
|
С помощью уравнения переноса нужно Единичную Функцию Хэвисайда "перенести" Результат у меня должен быть сдвиг по оси и отрисовка функции Хэвисайда несколько раз(иными словами перенос по оси) Функцию Хэвисайда запрограммировал вот так public:static double fn(double T,double x)//Функция Хэвисайда Результат выполнения кода Но дальше возник вопрос Данные формулы нужно использовать [math]\frac{y^{j+1}_{i} - y^j_{i}}{\tau}+a\frac{y^j_{i+1} - y^j_{i}}{h}=0[/math] (формула 1) [math]y^{j+1}_{k}=\gamma \cdot y^{j}_{k+1}+(1+\gamma) \cdot y^{j}_{k}[/math](формула 2) , где [math]\gamma=\frac{a\tau}{h}[/math] В коде выглядит это так gama=(a*ht)/hx; //Число Куранта Разумеется результат на графике показывает что никаких сдвигов и переноса нету. 1)В каком направлении нужно мне двигаться чтобы прийти к правильному ответу? 2)Функцию Хэвисайда нужно в любом случае кроме вывода на экран куда-то применять и мне её подставлять в формулу где разностная схема или нужно выразить какой-либо коэффициент? |
||
Вернуться к началу | ||
zolla |
|
|
Пока вот что получилось
Для правильности решения нужно выровнять и убрать скачки которые остаются внизу Для нынешнего результата применил формулу for(int i = 0;i<Nx;i++) где fn это моя функция Хэвисайда,а wx[i]-моя ось с шагами h=0.1, а wt[j]-ось t с шагами [math]\tau[/math] Пока мысль такова что я просто не те параметры передаю в свою функцию fn |
||
Вернуться к началу | ||
swan |
|
|
zolla писал(а): Функцию Хэвисайда запрограммировал вот так Не знаю, что и зачем вы делали. Но то что вы запрограммировали - это точно не функция Хэвисайда |
||
Вернуться к началу | ||
zolla |
|
|
На промежуточном контроле сказали что да эта Единичная функция Хэвисайда,похожая на ступеньку.
А так да ещё можно вывести прямоугольный импульс с помощью другой функции Хэвисайда(которая пересекается с функцией Дирака) |
||
Вернуться к началу | ||
zolla |
|
|
В результате работы следующего кода,график функции немного изменился.
for(int i = 0;i<Nx;i++) Как оказалось в функции fn нужно было другие параметры,а именно оригинальные параметры fn(T,x). Да график немного стал получше.. |
||
Вернуться к началу | ||
zolla |
|
|
Это было в качестве эксперимента(как выяснилось 2 цикла по отдельности делать это неудачное решение)
На данный момент я выразил [math]$y^{j+1}_i$[/math] (Здесь на форуме мне указали мои ошибки,спасибо) Вот полная формула(Она была проверена руководителем и верна,процесс решения уравнения записан аналитически) [math]y^{j+1}_i=\frac{-a\cdot \tau y^j_{i+1} + a\cdot \tau y^j_{i} + y^j_{i+1} \cdot h}{h}[/math] Вопрос до нахождения [math]y^{j+1}_i[/math] Получается я должен найти аппроксимацию,сходимость,устойчивость формулы явной разностной схемы и только потом выразить [math]y^{j+1}_i[/math]? P.S. В учебниках Самарского и не только,в большинстве случаев идёт сначала формула схемы,а потом и последующие действия такие как аппроксимация,нахождения сходимости и устойчивости но ключевое слово в большинстве(так как бывает сразу в метод гармоник уходит вычисление) |
||
Вернуться к началу | ||
zolla |
|
|
И всё-таки вопрос что мне делать дальше чтобы найти решение уравнения переноса?с правильным графиком...
выразил [math]y_{j+1}^{i}[/math] а как дальше быть? вот есть формула [math]y_{j+1}^{i} = - \gamma*y_{j}^{i+1} + (1+ \gamma )*y_{j}^{i}[/math] и есть метод гармоник Что мне находить дальше? |
||
Вернуться к началу | ||
[ Сообщений: 7 ] |
Похожие темы | Автор | Ответы | Просмотры | Последнее сообщение |
---|---|---|---|---|
Решение уравнения переноса с помощью схемы Кранка-Николсона
в форуме Численные методы |
2 |
954 |
03 мар 2017, 17:09 |
|
Уравнение переноса, явная схема
в форуме Численные методы |
1 |
688 |
29 окт 2020, 22:02 |
|
Построение методом параллельного переноса
в форуме Геометрия |
5 |
711 |
28 апр 2018, 21:37 |
|
Как можно менять знаки переменных без переноса за знак равно
в форуме Алгебра |
7 |
340 |
04 фев 2020, 08:17 |
|
Программирование
в форуме Размышления по поводу и без |
2 |
163 |
10 ноя 2022, 23:08 |
|
Линейное программирование | 11 |
618 |
17 май 2020, 14:46 |
|
Линейное программирование | 0 |
492 |
29 сен 2014, 21:36 |
|
Линейное программирование | 1 |
416 |
02 сен 2014, 16:07 |
|
Линейное программирование | 0 |
551 |
15 окт 2021, 17:00 |
|
Программирование в MathCad
в форуме MathCad |
4 |
418 |
23 июн 2020, 13:48 |
Часовой пояс: UTC + 3 часа [ Летнее время ] |
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8 |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения |