Редактирование: Численное решение уравнения теплопроводности и волнового уравнения

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
 
[[Виртуальная лаборатория]] > [[Численное решение уравнения теплопроводности и волнового уравнения]] <HR>
 
[[Виртуальная лаборатория]] > [[Численное решение уравнения теплопроводности и волнового уравнения]] <HR>
  
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/Tcvetkov/Equations/Equation%20v6-9-mini%20release/Equations.html |width=1030 |height=770 |border=0 }}
+
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/Tcvetkov/Equations/Equation%20v6-6-mini%20release/Equations.html |width=1030 |height=650 |border=0 }}
  
Скачать программу: [[Медиа:Equation v6-9-mini release.zip|Equation v6-9-mini release.zip]]
+
Скачать программу: [[Медиа:Equation v6-6-mini release.zip|Equation v6-6-mini release.zip]]
<div class="mw-collapsible mw-collapsed" style="width:100%" >
+
Текст программы на языке JavaScript (разработчики [[Цветков Денис]], [[Кривцов Антон]]): <toggledisplay status=hide showtext="Показать↓" hidetext="Скрыть↑" linkstyle="font-size:default">  
'''Текст программы на языке JavaScript (разработчики [[Цветков Денис]], [[Кривцов Антон]]):''' <div class="mw-collapsible-content">
 
 
Файл '''"Equations.js"'''
 
Файл '''"Equations.js"'''
<syntaxhighlight lang="javascript" line start="1" enclose="div">
+
<source lang="javascript" first-line="1">
 +
function MainBalls(canvas, slider_01, text_01, slider_02, text_02) {
 +
// m: Уравнения
 +
// Версия 6.6 от 05.10.2014
 +
 
 
window.addEventListener("load", main_equations, false);
 
window.addEventListener("load", main_equations, false);
 
function main_equations() {
 
function main_equations() {
Строка 49: Строка 52:
 
         wave = new Wave_model(a0, k0, m, c, dx, dt);
 
         wave = new Wave_model(a0, k0, m, c, dx, dt);
 
     }
 
     }
     function start_new_system_stair() {
+
     button_restart.onclick = start_new_system;
        var func = function(M, M_max, N, val) {return IC_stair(M, M_max, N, val,
 
            parseFloat(stair_x1_number.value), parseFloat(stair_x2_number.value))};
 
        CONFIG.IC_Heat = func;
 
        CONFIG.IC_Wave = func;
 
        start_new_system()
 
    }
 
    function start_new_system_Gauss() {
 
        CONFIG.IC_Heat = IC_Gauss;
 
        CONFIG.IC_Wave = IC_Gauss;
 
        start_new_system()
 
    }
 
 
 
 
 
 
 
    button_restart_stair.onclick = start_new_system_stair;
 
    button_restart_Gauss.onclick = start_new_system_Gauss;
 
  
 
     start_new_system();
 
     start_new_system();
Строка 207: Строка 194:
 
     return D;
 
     return D;
 
}
 
}
</syntaxhighlight>
+
</source>
 
Файл '''"Config.js"'''
 
Файл '''"Config.js"'''
<syntaxhighlight lang="javascript" line start="1" enclose="div">
+
<source lang="javascript" first-line="1">
 
var CONFIG = {
 
var CONFIG = {
 
     fps:      60                              // количество кадров в секунду
 
     fps:      60                              // количество кадров в секунду
Строка 223: Строка 210:
 
     //      IC_half_stair_random:  половина ступеньки из случайных значений
 
     //      IC_half_stair_random:  половина ступеньки из случайных значений
 
     //      IC_Gauss:              распределение Гаусса
 
     //      IC_Gauss:              распределение Гаусса
//    ,IC_Heat:  IC_Gauss
+
    ,IC_Heat:  IC_Gauss
//    ,IC_Wave:  IC_Gauss
+
    ,IC_Wave:  IC_Gauss
     ,IC_Heat:  function(M, M_max, N, val) {return IC_stair(M, M_max, N, val, 0.33, 0.66)}
+
     ,IC_Energy: IC_stair_random
    ,IC_Wave:   function(M, M_max, N, val) {return IC_stair(M, M_max, N, val, 0.33, 0.66)}
 
  
 
     ,N_Heat:    1000                            // количество частиц по оси x
 
     ,N_Heat:    1000                            // количество частиц по оси x
Строка 234: Строка 220:
 
     ,smooth_wave: true                        // сглаживать волновое уравнение
 
     ,smooth_wave: true                        // сглаживать волновое уравнение
 
};
 
};
</syntaxhighlight>
+
</source>
 
Файл '''"IC_BC_LIB_v1.js"'''
 
Файл '''"IC_BC_LIB_v1.js"'''
<syntaxhighlight lang="javascript" line start="1" enclose="div">
+
<source lang="javascript" first-line="1">
 +
// m: Библиотека начальных и граничных условий
 +
// Версия 1.1 от 05.10.2014
 +
 
 
// Аргументы в функции IC и BC:
 
// Аргументы в функции IC и BC:
 
//      M - массив (сформированный с помощью функции make_mass данной библиотеки)
 
//      M - массив (сформированный с помощью функции make_mass данной библиотеки)
Строка 264: Строка 253:
 
}
 
}
  
// 0 <= start, end <= 1
+
function IC_stair(M, M_max, N, val) {           // Задает "ступеньку" высоты M_max посередине экрана
// start <= end
 
// чтобы получить функцию вида IC_stair(M, M_max, N, val), используйте замыкание
 
// например: var func = function(M, M_max, N, val) {return IC_stair(M, M_max, N, val, 0.33, 0.66)}
 
function IC_stair(M, M_max, N, val, start, end) {   // Задает "ступеньку" высоты M_max посередине экрана
 
 
     for (var i = 1; i < N - 1; i++) {
 
     for (var i = 1; i < N - 1; i++) {
         if (i >= N * start && i < N * end) M[i][val] = M_max;
+
         if (i >= N / 3 && i < 2 * N / 3) M[i][val] = M_max;
 
         else M[i][val] = 0;
 
         else M[i][val] = 0;
 
     }
 
     }
Строка 307: Строка 292:
 
     M[N - 1] = M[1];
 
     M[N - 1] = M[1];
 
}
 
}
</syntaxhighlight>
+
</source>
 
Файл '''"Equations.html"'''
 
Файл '''"Equations.html"'''
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<!DOCTYPE html>
 
<!DOCTYPE html>
 
<html>
 
<html>
Строка 323: Строка 308:
 
     Скорость расчета: <input type="range" id="slider_dt" style="width: 150px;"><br><br>
 
     Скорость расчета: <input type="range" id="slider_dt" style="width: 150px;"><br><br>
 
     <input type="checkbox" id="checkbox_graph_01" checked/><font color="#ff0000" size="5"><B>—</B></font> Уравнение теплопроводности<br>
 
     <input type="checkbox" id="checkbox_graph_01" checked/><font color="#ff0000" size="5"><B>—</B></font> Уравнение теплопроводности<br>
     <input type="checkbox" id="checkbox_graph_02" checked/><font color="#00ff00" size="5"><B>—</B></font> Волновое уравнение<br><br>
+
     <input type="checkbox" id="checkbox_graph_02" checked/><font color="#00ff00" size="5"><B>—</B></font> Волновое уравнение<br>
    <input type="button" id="button_restart_Gauss" value="Рестарт Гаусс"/><br><br>
+
     <input type="button" id="button_restart" value="Рестарт"/>
     <input type="button" id="button_restart_stair" value="Рестарт ступенька"/> (0 <= <b>x1</b>, <b>x2</b> <= 1; <b>x1</b> < <b>x2</b>)<br>
 
    x1 = <input type="number" id="stair_x1_number" min=0 max=1 step=0.001 value="0.33"/><br>
 
    x2 = <input type="number" id="stair_x2_number" min=0 max=1 step=0.001 value="0.66"/>
 
 
</body>
 
</body>
 
</html>
 
</html>
</syntaxhighlight>
+
</source>
</div>
+
</toggledisplay>
</div>
 
  
 
[[Category: Виртуальная лаборатория]]
 
[[Category: Виртуальная лаборатория]]
Вам запрещено изменять защиту статьи. Edit Создать редактором

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии Public Domain (см. Department of Theoretical and Applied Mechanics:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Отменить | Справка по редактированию  (в новом окне)