Код программы при прогонке
DECLARE FUNCTION dihotom (a, b, e, LX1, LX2) DECLARE FUNCTION LX (k, x(), y(), xl) DECLARE FUNCTION F (xmin, LX1, LX2) CLS LOCATE 1, 15 PRINT "Kursovaya rabota po informatike OTLADKA" LOCATE 2, 18 PRINT "Gruppa PS0601, Adamskiy Alexey" x(0) = -2: x(1) = 0: x(2) = 1 y(0) = 4: y(1) = 0: y(2) = 1 LX1 = LX(2, x(), y(), -1) LX2 = LX(2, x(), y(), 0) PRINT TAB(10); "Znacheniya polinoma Lagranzha v x1,x2" PRINT TAB(15); "L(x1)="; LX1; "L(x2)="; LX2 PRINT TAB(10); "Poisk minimuma F(x)" xmin = dihotom(-2, 1, .0001, LX1, LX2) PRINT TAB(10); "Minimum F(x): xmin="; xmin; "F(xmin)="; F(xmin, LX1, LX2) END FUNCTION dihotom (a, b, e, LX1, LX2) PRINT TAB(10); "Promezhutochnie rezul`tati" PRINT " a b x1 x2 f(x1) f(x2) b-a" DO PRINT USING " ##.###### #.##### #.##### #.##### #.##### #.##### #.#####"; a; b; x1; x2; F(x1, LX1, LX2); F(x2, LX1, LX2); b - a x1 = (a + b - e / 4) / 2 x2 = (a + b + e / 4) / 2 IF F(x1, LX1, LX2) > F(x2, LX1, LX2) THEN a = x1 ELSE b = x2 LOOP UNTIL ABS(b - a) <= e dihotom = (a + b) / 2 END FUNCTION FUNCTION F (x, LX1, LX2) F = LX1 * x ^ 2 + LX2 * x END FUNCTION FUNCTION LX (k, x(), y(), xl) l = 0 FOR i = 0 TO k L1 = y(i) FOR j = 0 TO k IF i <> j THEN L1 = L1 * (xl - x(j)) / (x(i) - x(j)) NEXT j l = l + L1 NEXT i LX = l END FUNCTION
Результат прогонки программы
Программа отработала верно Проверка результатов тестирования в среде MathCAD не требуется из-за очевидности полученных результатов. Детализированная схема алгоритма
Код программы DECLARE FUNCTION dihotom (a, b, E, LX1, LX2) DECLARE FUNCTION LX (k, x(), y(), xl) DECLARE FUNCTION F (xmin, LX1, LX2) CLS LOCATE 1, 15 PRINT "Kursovaya rabota po informatike" LOCATE 2, 18 PRINT "Gruppa PS0601, Adamskiy Alexey" LOCATE 5, 18 INPUT "Vvedite k,a,b,x1,x2,E"; k, a, b, x1, x2, E DIM x(0 TO k) AS SINGLE DIM y(0 TO k) AS SINGLE DATA 0,0.1, 0.2,0.3,0.4,0.5,0.6 FOR i = 0 TO k READ x(i) NEXT i DATA 1.858652,1.851659,1.851401,1.848081,1.841914,1.833125,1.821948 FOR i = 0 TO k READ y(i) NEXT i LX1 = LX(k, x(), y(), x1) LX2 = LX(k, x(), y(), x2) PRINT TAB(10); "Znacheniya polinoma Lagranzha v x1,x2" PRINT TAB(15); "L(x1)="; LX1; "L(x2)="; LX2 PRINT TAB(10); "Poisk minimuma F(x)" xmin = dihotom(a, b, E, LX1, LX2) PRINT TAB(10); "Minimum F(x): xmin="; xmin; "F(xmin)="; F(xmin, LX1, LX2) END FUNCTION dihotom (a, b, E, LX1, LX2) PRINT TAB(10); "Promezhutochnie rezul`tati" PRINT " a b x1 x2 f(x1) f(x2) b-a" DO x1 = (a + b - E / 1.3) / 2 x2 = (a + b + E / 1.3) / 2 PRINT USING " ##.###### #.##### #.##### #.##### #.##### #.##### #.#####"; a; b; x1; x2; F(x1, LX1, LX2); F(x2, LX1, LX2); b - a IF F(x1, LX1, LX2) > F(x2, LX1, LX2) THEN a = x1 ELSE b = x2 LOOP UNTIL b - a <= E dihotom = (a + b) / 2 END FUNCTION FUNCTION F (x, LX1, LX2) F = LX1 * x ^ 2 - 2.5 * LX2 * x - 3 END FUNCTION FUNCTION LX (k, x(), y(), xl) l = 0 FOR i = 0 TO k L1 = y(i) FOR j = 0 TO k IF i <> j THEN L1 = L1 * (xl - x(j)) / (x(i) - x(j)) NEXT j l = l + L1 NEXT i LX = l END FUNCTION Полученные результаты
Выводы
1. Обоснованы и выбраны численные методы: - интерполяции таблично заданной функции с помощью полинома Лагранжа - одномерной оптимизации по методу дихотомии 2. Разработаны, протестированы модули, реализующие следующие методы: - поиск значений интерполяционного многочлена Лагранжа в требуемых точках (x1, x2) - поиск минимума функции F(x) с помощью метода дихотомии с требуемой точностью 3. Программа модульная, содержит следующие модули: - основной модуль, принимающий исходные данные, передающий их на обработку и выводящий конечный и промежуточный результаты - модуль поиска значений интерполяционного многочлена в точках x1 и x2 - модуль, задающий F(x) с параметрами LX1, LX2, найденными модулем интерполирования - модуль поиска минимума функции F(x) на отрезке [a;b] методом дихотомии 4. Получены следующие результаты: Полином Лагранжа L(x1)=1.853346, L(x2)=1.823337 Искомый минимум функции F(x) найден с точностью E=0.0001, xmin=1.229506 F(xmin)=-5.802835 5. Полученные результаты были проверены в MathCAD : Полученные в ходе работы программы результаты, очень хорошо согласуются с результатами, полученными в MathCAD, требуемая точность E=0.0001 соблюдалась, если научно подойти к выбору d в методе дихотомии. Список литературы
1. Гловацкая А.П., Загвоздкина А.В., Кравченко О.М., Семёнова Т.И., Шакин В.Н: Практикум Численные методы и оптимизация по дисциплине «Информатика» Москва, МТУСИ, 2004г. 2. А.П.Гловацкая: Конспект лекций «Информатика. Вычислительная математика» Москва, МТУСИ, 2006г. 3. Семёнова Т.И, Шакин В.Н.: Практикум Математический пакет MathCAD в дисциплине «Информатика», Москва, МТУСИ, 2006г. 4. А.В. Загвоздкина: Конспект лекций за 1 семестр 2007-2008 учебного года
Популярное: Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (232)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |