Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Порядок выполнения лабораторной работы. Пример.Численно решить уравнение колебаний струны длиной l = 1 c шагом h = 0,05 на m=200 временных шагов:






 

Пример. Численно решить уравнение колебаний струны длиной l = 1 c шагом h = 0, 05 на m=200 временных шагов:

при следующих исходных данных:

;

1. Решим задачу а). Введем исходные данные для расчета: а2 - ячейка В3=" 1", h - ячейка В5=" 0, 05", вычисляем шаг по времени t - ячейка В4=" B5/2/КОРЕНЬ(B3)", вычисляем параметр g по формуле (8) – ячейка В6=" B3*B4^2/B5^2". При выборе шага по времени необходимо учитывать, что условие (17) Куранта выполняется на гладких решениях, поэтому при вычислениях необходимо выбирать более мелкий шаг, чем разрешенный по условию (17) В частности, в приведенном примере в ячейке B4 использована формула , то есть выбран шаг по временной координате в 2 раза меньший, чем разрешенный условием Куранта.

В процессе вычислений необходимо определение правой части уравнения, краевых и начальных условий. Так как разработанный алгоритм необходимо применять несколько раз для различных исходных данных, то целесообразно эти величины вычислять с помощью функций пользователя, написанных в виде макросов в среде Visual Basic for Applications (VBA). Для этого войдем в редактор VBA через главное меню MS Excel – Сервис-Макрос-Редактор Visual Basic. В раскрывшемся окне через главное меню вставить новый модуль – Insert-Module (Вставка-Модуль). Ввести макрос следующего содержания:

 

Const pi = 3.1415926

 

Function f(x, t)

f = 0

End Function

Function fi(x)

fi = 0.7 * Sin(pi * x)

End Function

Function ksi(x)

ksi = 2 * x ^ 2

End Function

Function un(t)

un = 0

End Function

Function uk(t)

uk = 0

End Function

 

В первой инструкции вводится именованная переменная, определяющая число p. Пользовательские функции макроса определяют заданные исходные данные: функция f(x, t) – правую часть дифференциального уравнения, функция fi(x) – начальное перемещение j(х), функция ksi(x) – начальную скорость y(х), функция un(t) – краевое условие для левой границы струны un(t), функция uk(t) - краевое условие для правой границы струны uk(t).

В строке 8 задаем координаты узлов разностной сетки по координате х: ячейка В8=" 0", ячейка С8=" =B8+$B$5" и протягиваем формулу до ячейки V8. В столбце А задаем координаты узлов разностной сетки по координате t: ячейка А9=" 0", ячейка А10=" =A9+$B$4" и протягиваем формулу до ячейки А209.

В столбце В задаем краевое условие для левой границы струны un(t): ячейка В9=" =un(A9)" и протягиваем формулу до ячейки В209. В столбце V задаем краевое условие для правой границы струны uk(t): ячейка V9=" =uk(A9)" и протягиваем формулу до ячейки V209.

В строке 9 задаем начальное перемещение j(х): ячейка С9=" =fi(C8)" и протягиваем формулу до ячейки U9. В строке 10 вычисляем по формуле (15) распределение перемещений струны на первом временном слое: ячейка С10= " =C9+$B$4*ksi(C8)" и протягиваем формулу до ячейки U10. Вычисляем распределение перемещений на остальных временных слоях по формуле (9): ячейка С11=" =-C9+$B$6*B10+(2-2*$B$6)*C10+$B$6*D10+ $B$4^2 *f(C$8; $A11)" и протягиваем формулу на диапазон C9: U209. Следует обратить внимание на правильную абсолютную адресацию ячеек C$8 и $A11. В полученной таблице содержится решение задачи.

Представим решение задачи в виде диаграммы, выбрав в качестве Значений Х диапазон B8: V8, а в качестве Значений Y для 4-х рядов данных распределения перемещений струны в 4 момента времени, распределенные по исследуемому интервалу времени примерно одинаково, начиная с начального момента времени. В рассматриваемом примере выбраны диапазоны B9: V9, B69: V69, B129: V129, B189: V189, соответствующие моментам времени 0; 1, 5; 3; 4, 5. Выбирается тип диаграммы " Точечная", вид " Точечная диаграмма со значениями, соединенными сглаживающими линиями без маркеров" с соответствующим форматированием. Вид рабочего листа Расчет приведен на рисунке.

Для отображения динамики колебания струны используем новый рабочий лист Динамика, в ячейку которого А1 скопируем диапазон B8: V9 рабочего листа Расчет. По этим данным построим Точечную диаграмму со значениями, соединенными сглаживающими линиями без маркеров с соответствующим форматированием. В частности параметры осей целесообразно выбрать такими же, как и у диаграммы на рабочем листе Расчет. Таким образом, построено распределение перемещений в начальный момент времени. Для динамичного отражения распределения перемещений в другие моменты времени разместим на рабочем листе Динамика элемент управления Кнопка, для которой напишем следующий макрос обработки события Click (Щелчок):

 

Private Sub CommandButton1_Click()

Dim R As Object

Dim D As Object

Set R = Worksheets(" Расчет").Range(" B9: V209")

Set D = Worksheets(" Динамика").Range(" A2: U2")

For i = 1 To 201

For j = 1 To 21

D(1, j) = R(i, j)

Next j

Start = Timer

Do While Timer < Start + 0.2

Loop

Worksheets(" Динамика").Calculate

Next i

End Sub

 

В макросе по аналогии с предыдущими лабораторными работами вводятся объектовые переменные, предназначенные для копирования распределения перемещений на текущем временном слое из рабочего листа Расчет в диапазон Значения Y диаграммы на рабочем листе Динамика. Используется цикл Do While … Loop для организации задержки между кадрами. Вид рабочего листа Динамика для одного из промежуточных временных слоев приведен на рисунке.

2. Решим задачу б) В разработанном в п.1 алгоритме расчета для решения задачи достаточно исправить формулы в пользовательских функциях. В данном случае макрос пользовательских функций имеет вид:

 

Const pi = 3.1415926

 

Function f(x, t)

f = 0

End Function

Function fi(x)

fi = 0

End Function

Function ksi(x)

ksi = 0

End Function

Function un(t)

un = 0.3 * Sin(10 * pi * t)

End Function

Function uk(t)

uk = 0.1 * Sin(5 * pi * t)

End Function

 

После корректировки макроса надо щелкнуть на элемент управления Кнопка на рабочем листе Динамика и наблюдать колебания струны. На рабочем листе Расчет на диаграмме выведены начальное и промежуточные положения струны в заданные моменты времени. Вид диаграммы приведен на рисунке.

Отчет по лабораторной работе должен содержать тексты макросов, распечатки рабочих листов с диаграммами.

 

Варианты

 

Численно решить уравнение колебаний струны длиной l c шагом h на m временных шагов:

при следующих исходных данных:

1. l = 1, h = 0, 025, m = 150

2. l = 1, h = 0, 04, m = 100

3. l = 2, h = 0, 1, m = 150

4. l = 1, h = 0, 05, m = 100

5. l = 2, h = 0, 1, m = 150

6. l = 1, h = 0, 04, m = 200

7. l = 2, h = 0, 08, m = 100

8. l = 1, h = 0, 025, m = 150

9. l = 2, h = 0, 05, m = 150

10. l = 1, h = 0, 02, m = 100

11. l = 2, h = 0, 04, m = 100

12. l = 1, h = 0, 025, m = 150

13. l = 1, h = 0, 02, m = 100

14. l = 1, h = 0, 05, m = 150

15. l = 2, h = 0, 1, m = 150

16. l = 1, h = 0, 04, m = 150

17. l = 2, h = 0, 08, m = 150

18. l = 1, h = 0, 025, m = 150

19. l = 2, h = 0, 05, m = 150

20. l = 1, h = 0, 02, m = 200

21. l = 2, h = 0, 04, m = 100

22. l = 1, h = 0, 05, m = 150

23. l = 2, h = 0, 1, m = 150

24. l = 1, h = 0, 04, m = 200

 

 







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.