- •Программирование в excel
- •Симферополь 2000
- •Факультет "Механизация сельского хозяйства" Программирование в excel
- •1. Основы программирования на vba
- •1.1. Создание, редактирование и запись программ
- •1.1.1. Запись макроса
- •1.1.2. Как найти макрос в проекте
- •1.1.3. Написание новой процедуры
- •Чем макрос отличается от процедуры
- •1.1.4. Процедуры типа Sub и Function
- •1.1.5. Закрытые и открытые процедуры
- •1.1.6. Использование значения, возвращаемого функцией
- •1.1.7. Выполнение процедуры Sub
- •1.1.8. Передача аргументов в процедуру
- •1.1.9. Именованные аргументы
- •1.1.10. Написание процедур для обработки событий
- •1.1.11. Где хранится код обработки события
- •1.1.12. Средства, ускоряющие написание программ
- •1.1.13. Как написать легкочитаемую программу
- •1.2. Переменные, константы и типы данных
- •1.2.1. Типы данных в Visual Basic
- •1.2.2. Объявление константы, переменной или массива
- •1.2.3. Объявление объектной переменной
- •1.2.4. Встроенные константы
- •1.3. Управляющие конструкции
- •1.3.1. Операторы ветвления
- •1.3.2. Операторы циклов
- •1.3.3. Вложение управляющих конструкций
- •1.3.4. Выход из циклов и процедур
- •1.4. Структура программы
- •2. Сортировка данных
- •2.1. Алгоритм сортировки обменами (алгоритм “пузырька”)
- •2.2. Алгоритм сортировки вставками
- •2.3. Алгоритм сортировки выбором элемента
- •2.4. Алгоритм быстрой сортировки (метод Хоора)
- •2.5. Алгоритм пирамиды (метод Уильямса-Флойда)
- •2.6. Учебные задачи по программированию сортировки данных
- •3. Работа vba с объектами Excel
- •3.1. Как получить справку по Visual Basic для Microsoft Excel
- •3.2. Объекты Microsoft Excel
- •3.3. Работа с объектом Application
- •3.4. Работа с объектом Workbook
- •3.4.1. Открытие рабочей книги
- •3.4.2. Закрытие рабочей книги
- •3.4.3. Создание и сохранение рабочей книги
- •3.5. Работа с объектом Range
- •3.6. Строковые ссылки в стиле а1 или имена диапазонов
- •3.6.1. Числовые индексы строк и колонок
- •3.6.2. Свойство Offset
- •3.6.3. Свойства CurrentRegion и UsedRange
- •3.6.4. Организация циклов для перебора ячеек диапазона
- •3.6.5. Применение свойства Address для отладки кода, работающего с объектом Range
- •3.7. Работа с событиями
- •3.7.1. Включение и отключение обработки событий
- •3.7.2. Использование событий, связанных с рабочими листами
- •3.7.3. События на уровне рабочего листа
- •3.7.4. События на уровне диаграммы
- •3.7.5. События на уровне рабочей книги
- •3.7.6. События на уровне приложения
- •3.7.7. Модули классов и события
- •4. Численные методы математики
- •4.1. Методы решения нелинейных уравнений
- •4.1.2. Метод деления отрезка пополам (метод дихотомии).
- •4.1.3. Метод Ньютона (касательных).
- •4.1.4. Метод хорд (секущих).
- •4.1.5. Метод итераций (метод последовательных приближений).
- •4.2.1. Теоретические сведения
- •4.2.2. Метод Крамера
- •4.2.3. Метод Гаусса
- •4.2.6. Метод Зейделя
- •4.3. Обработка экспериментальных данных
- •4.3.1. Задачи, которые возникают при обработке экспериментальных данных.
- •4.3.2. Интерполяция
- •4.3.2.1. Интерполяция функций
- •4.3.3.2. Определение параметров эмпирической формулы
- •4.4. Методы численного интегрирования
- •4.4.1. Метод трапеций
- •4.4.2. Метод Симпсона
- •4.4.3. Оценка точности формул численного интегрирования. Выбор шага интегриров-ания
- •4.4.3.1. Выбор шага интегрирования по оценке остаточного члена (ошибки)
- •4.4.3.2. Выбор шага интегрирования с помощью двойного пересчета
- •4.5.1. Теоретические сведения
- •4.5.2. Одноступенчатые методы
- •4.5.2.1. Решение с помощью рядов Тейлора
- •4.5.2.2 Метод Эйлера
- •4.5.2.3. Модифицированный метод Эйлера
- •4.5.2.4. Метод Эйлера-Коши
- •4.5.2.5 Метод Рунге-Кутта
- •4.5.3. Многоступенчатые методы
- •4.5.3.1. Методы прогноза и коррекции
- •4.6. Методы решения линейной краевой задачи для обыкновенных дифференциальных уравнений
- •4.6.1. Постановка задачи
- •4.6.2. Метод конечных разностей
- •4.6.3. Метод прогонки
- •4.6.4. Алгоритм решения краевой задачи методом прогонки.
4.5.2.3. Модифицированный метод Эйлера
В отличие от обычной метода Эйлера в этом методе используется оценка поведения интегральной кривой в следующих точках. Порядок построения решения в модифицированном методе Эйлера состоит в следующем. Через точку Рi(Xi,Yi) - (рис.4.20) проводится касательная А1 с тангенсом угла наклона f(Xi,Yi) до пересечения с ординатой в точке X=Xi+h/2 (по методу Эйлера). Получаем точку пересечения В с координатами (Xi+h/2, Yi+h/2Yi'). Вычисляем тангенс угла наклона касательной в этой точке: Кi=Yi'+1/2=f(Xi+h/2, Yi+h/2Yi'). Прямая, проходящая через точку В, с таким наклоном обозначена А2. Далее, через точку Рі(Xi,Yi) проводим прямую А0, параллельную А2. Пересечение прямой А0 с ординатой Х=Хі+1 и дает искомую точку Рі+1(Xi+1,Yi+1).
Уравнение прямой А0 можно записать:
Yi+1=Yi+hf(Xi+h/2,Yi+f(Xi,Yi)h/2) |
(4.43) |
Формула (4.43) описывает модифицированный метод Эйлера. Интегрирование по модифицированному методу Эйлера заключается в последовательном применении формул (4.41) (при h=h/2) и (4.43) к уравнению (4.38), начиная с i=1.
Этот метод более точный (второго порядка точности), чем метод Эйлера (который имеет первый порядок точности).
Пример
Решить модифицированным методом Эйлера уравнение (4.42) с начальным условием Y(0)=0, на отрезке [0; 4], шаг h=1
Решение сведем в таблицу:
I |
Xi |
Yi |
Yi'= f(Xi,Yi) |
Xi+1/2= Xi+h/2 |
Yi+1/2= Yi+h/2Yi' |
Y'i+1/2= F(Xi +1/2, i+1/2) |
hY'i+1/2 |
0 |
0 |
0 |
0.05 |
0.5 |
0.025 |
0.0486 |
0.0486 |
1 |
1 |
0.0486 |
0.0473 |
1.5 |
0.0722 |
0.0459 |
0.0459 |
2 |
2 |
0.0945 |
0.0446 |
2.5 |
0.117 |
0.0434 |
0.0434 |
3 |
3 |
0138 |
0.0421 |
3.5 |
0.159 |
0.0410 |
0.0410 |
4 |
4 |
0.179 |
- |
- |
- |
- |
- |
4.5.2.4. Метод Эйлера-Коши
В этом методе также используется оценка поведения интегральной кривой в следующих точках. Сущность метода Эйлера-Коши заключается в следующем (рис.4.21).
Рис.4.21
С помощью метода Эйлера (4.41) ищется точка А(Xi+h,Yi+hYi'), для чего в точке D(Xi,Yi) проводим касательную L1 к пересечению с ординатой, которая установленная в точке Xi+1=Xi+h. В точке А снова вычисляем тангенс угла наклона касательной L2 и проводим ее. В точке А проводим прямую L, тангенс угла наклона которой есть среднеарифметическое тангенсов углов наклона касательных L1 и L2. Через точку D(Xi,Yi) проводим прямую L, параллельную L. Точка, в которой прямая пересечет ординату, восстановленную в точке Xi+1=Xi+h, и будет искомой точкой в (Xi+1,Yi+1) .
Формула метода Эйлера-Коши имеет вид:
Yi+1=Yi+h/2[f(Xi,Yi)+f(Xi+h,Yi+hYi')] |
(4.44) |
Интегрирование по методу Эйлера-Коши заключается в последовательном применении формул (4.41) и (4.44), начиная с i=1. Сначала, по (4.41) вычисляют приблизительные значения YPi+1. Потом, определив YPi+1, по (4.44) вычисляют искомое Yi+1. Данный метод, также как и модифицированный метод Эйлера, имеет второй порядок точности.
Пример
Пользуясь методом Эйлера-Коши, решить уравнения (4.42) с начальным условием Y(0)=0, на отрезке [0; 4], шаг h=1.
Результаты вычислений приведены в таблице.
-
i
Xi
Yi
Yi'= f(Xi,Yi)
Xi+1= Xi+h
YРi+1= Yi+hYi'
YP'i+1= f(Xi+1,YPi+1)
h(Y'i+ +YP'i+1)/2
0
0
0
0.05
0.5
0.025
0.0486
0.0486
1
1
0.0486
0.0473
1.5
0.0722
0.0459
0.0460
2
2
0.0945
0.0446
2.5
0.117
0.0434
0.0434
3
3
0138
0.0421
3.5
0.159
0.0410
0.0410
4
4
0.179
-
-
-
-
-