Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Создание макросов




Автоматизация вычислений в Excel

Порядок работы

Метод Рунге-Кутта

Одним из наиболее распространенный методов решения дифференциального уравнения вида у'=f(x,y) на заданном отрезке [Xнач,Хкон] с начальными условиями является метод Рунге-Кутта. При решении данного уравнения точное значение y заменяют его приближенным значением:

Y i+1 =Y i +(К1+2К2+2К34)/6, (6.29)

где значения коэффициентов на i-том шаге вычисляются по формулам:

К1 =h*f(xi,yi)

K2 =h*f(xi +0.5h,yi +0.5K1)

K3 =h*f(xi +0.5h,yi +0.5K2) (6.30)

K4 =h*f(xi+h,yi +K3)

Здесь хi+1 =xi +h.

Значение шага при переходе к следующей точке можно изменять. Правильность выбора шага проверяется по формуле

Т=|(К2 - К 3)/(К1 - К2)|, (6.31)

величина Т не должна превышать нескольких сотых.

Для проверки точности необходимо сделать второй проход с шагом h/2. Если разница между Yi+1 и Yi на k+1 и k проходах будет меньше требуемой точности, то процесс вычисления прекращается. Значение точности выбирают в интервале от 0.001 до 0.00001.

Грубую оценку погрешности метода проводят по формуле

Yk - Y(xi)= |Yk+1 - Yk |/15, (6.32)

где Y(xi) - значение точного решения уравнения.

Для решения задачи необходимо вычислить значения коэффициентов К1 – К4 при начальных условиях, выбрать начальный шаг и вычислить значения Xi и Yi. Затем увеличить значение х и повторить процедуру вычисления.

Пример 6.9. Решить дифференциальное уравнение первого порядка

dY/dx=2(x2+Y) методом Рунге-Кутта при 0<=x<=1, Y(0)=1, шаг h=0.1.

Для этой задачи имеется аналитическое выражение

Y=1.5е – х2 – х – 0.5. (6.33)

 

Листинг 6.19. Решение дифференциального уравнения методом Рунге-Кутта
  A B C D E F G I
  Исходные данные        
  h= 0,1 Xn= 0,00000 Y(0)= 1,00000   Контроль выбора шага
  Xn= Yn= K1= K2= K3= K4= Yn+1=
  0,00 1,0000         1,0000  
  0,10 1,2221 0,2 0,2205 0,2225 0,2465 1,2221 0,10
  0,20 1,4977 0,2464 0,2735 0,2762 0,3076 1,4977 0,10
  0,30 1,8431 0,3075 0,3428 0,3463 0,3868 1,8431 0,10
  0,40 2,27829 0,3866 0,4318 0,4363 0,4879 2,2783 0,10
  0,50 2,8274 0,4877 0,5449 0,5507 0,6158 2,8274 0,10
  0,60 3,5201 0,6155 0,6875 0,6947 0,7764 3,5201 0,10
  0,70 4,3927 0,7760 0,8661 0,8751 0,9771 4,3927 0,10
  0,80 5,4894 0,9765 1,0887 1,0999 1,2265 5,4894 0,10
  0,90 6,8643 1,2259 1,3650 1,3789 1,5357 6,8643 0,10
  1,00 8,5834 1,5348 1,7069 1,7245 1,9177 8,5834 0,10

- запишите исходные данные в строку 2;

- заполните шапку таблицы согласно Листингу 6.19;

- сгенерируйте в ячейки A4:A14 значения аргумента;

- запишите в ячейки В4 и G4 начальное значение Y(0);

- Запишите в ячейки расчетные формулы со ссылками на ячейки таблицы: коэффициент К1, ячейка C5 - $B$2*2*(A4^2+G4);

коэффициент К2, ячейка D5 - $B$2*2*((A4+$B$2/2)^2+(G4+C5/2));

коэффициент К3, ячейка E5 - $B$2*2*((A4+$B$2/2)^2+(G4+D5/2));

коэффициент К4, ячейка F5 - $B$2*2*((A4+$B$2)^2+(G4+E5));

Y, ячейка G5 - G4+(C5+2*D5+2*E5+F5)/6;

- в ячейку B5 запишите формулу: = G5;

- в ячейку I5 запишите формулу (6.31) для контроля выбора шага

(D5-E5)/(C5-D5).

- скопируйте формулы из ячеек В5:I5 в нижележащие ячейки

Сравнительные результаты вычисления дифференциального уравнения в примере 6.9 методом Рунге-Кутта и методом Эйлера и по аналитической формуле приведены на листинге 6.18. Из таблицы видно, что метод Рунге-Кутта позволяет получить результаты с высокой точностью во всем диапазоне изменения значения аргумента, чего нельзя сказать о методе Эйлера.

Листинг 6.20. Сравнение методов решения дифференциальных уравнений
x Метод Эйлера Метод Рунге-Кутта Точное решение
0,0000 1,0000 1,0000 1,0000
0,1000 1,2000 1,2221 1,2221
0,2000 1,4420 1,4977 1,4977
0,3000 1,7384 1,8432 1,8432
0,4000 2,1041 2,2783 2,2783
0,5000 2,5569 2,8274 2,8274
0,6000 3,1183 3,5201 3,5202
0,7000 3,8139 4,3927 4,3928
0,8000 4,6747 5,4894 5,4895
0,9000 5,7377 6,8643 6,8645
1,0000 7,0472 8,5834 8,5836

 

Для автоматизации выполнения часто повторяющихся операций, например форматирования выделенных ячеек, оформления шапок таблиц и т. п. в Excel можно создавать макрокоманды – макросы.

Удобнее всего макросы создавать путем записи. Правда, при этом в макрос записываются все действия пользователя, в том числе и ошибочные. Однако, если алгоритм работы продуман, то проблем не возникает.




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 189; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.