WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     | 1 ||

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ РФ СТАВРОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ На правах рукописи Плюта Алексей Иванович Об итерационных методах решения операторных уравнений второго рода Специальность ...»

-- [ Страница 2 ] --

Рассмотрим теперь применение предложенного варианта метода Зейделя в случае, когда метод Зейделя имеет «порядок один». Реализуем этот случай на вышеизложенном примере. Необходимые начальные условия полностью совпадают с начальными условиями в рассмотренном выше примере. Используя вышеизложенный метод ускорения сходимости, получим * * приближения un и vn. * * Соответствующие приближения un и vn, к координатам вектора решения представим в виде таблицы. Таблица 25 Приближения к 1-ой координате вектора решения Номер приближе ний n 1 363 1185 1957 3312 1 363 1185 1957 3312 1 363 -19145.167945 20.887959 451.585334 454.926203 454.961474 -19935.975115 22.692057 471.407031 474.887660 474.924407 -19650.507350 22.616370 20488.931731 887.679663 458.327096 454.996660 454.961498 21336.627643 925.744732 478.430825 474.961064 474.924432 21031.240179 912. * “ un ” * “ vn ” Приближения к 2-ой координате вектора решения Приближения к 3-ой координате вектора решения 1185 1957 3312 1 363 1185 1957 3312 1 363 1185 1957 464.956456 468.387635 468.423861 -18159.668279 21.358973 430.619226 433.793809 433.827326 -22790.544091 28.279619 541.354262 545.334120 545. 471.880463 468.459997 468.423885 19436.269267 845.007810 437.025430 433.860760 433.827348 24396.542036 1060.858104 549.385486 545.418054 545. Приближения к 4-ой координате вектора решения Приближения к 5-ой координате вектора решения Как видно из последней таблицы, по сравнению с предыдущим случаем * * несколько возросла скорость сходимости приближений un и vn к точному решению. Отметим также тот факт, что основные вычисления по предложенному варианту метода Зейделя получены с помощью разработанной автором программы на языке программирования TURBO PASCAL

ОСНОВНЫЕ ВЫВОДЫ И РЕЗУЛЬТАТЫ Проведенные в диссертационной работе исследования направленные на разработку новых методов решения операторных уравнений, описывающих экономические 1. Разработан модели и (модель межотраслевого на большом баланса). количестве Получены примеров следующие научные и практические результаты. апробирован итерационный метод решения системы линейных алгебраических уравнений вида x = Ax + f с квадратной матрицей A, в случае, когда наибольшее по модулю собственное значение матрицы A, больше чем единица. 2. Предложен метод получения двусторонних оценок точного решения x* операторного уравнения вида x = Ax + f, в случае, когда спектральный соответствующими монотонных x = Ax + f радиус не обязательно меньше единицы, а также подходы к уточнению полученных примерами. 3. Получен приближений синтез к методов x* оценок.

Метод проиллюстрирован ускорения сходимости вида решению уравнения и однопараметрического итеративного агрегирования. 4. Предложен вариант метода ускорения сходимости монотонных приближений к решению уравнения вида x = Ax + f, в котором упрощена задача поиска начальных приближений. 5. Разработан и апробирован на большом количестве примеров вариант метода Зейделя, позволяющий строить двусторонние приближения к точному решению уравнения вида x = Ax + f. 6. Составлена библиотека программ на языке программирования TURBO PASCAL, которая позволяет реализовывать полученные в данной работе методы и алгоритмы. Таким образом:

- Разработаны новые методы решения операторных уравнений, описывающих экономические модели (модель межотраслевого баланса), обладающих высокой скоростью сходимости последовательностей к точному решению данных уравнений, а также единицы. - Разработан комплекс программ на языке программирования TURBO PASCAL, реализующих эти алгоритмы. способностью сходится к точному решению даже в тех случаях, когда спектральный радиус оператора больше Литература. 1. Архангельский, Ю.С. Численные исследования методов итеративного агрегирования для решения задачи межпродуктового баланса /Ю.С. Архангельский, И.А. Вахутинский, Л.М. Дудкин и др. //Автоматика и телемеханика. - 1975. - №7. - С.75-82. 2. Ашманов, С.А. Введение в математическую экономику /С.А. Ашманов. – М.:Наука, 1984. – 296с. 3. Бабаджанян, А.А. О скорости сходимости метода однопараметрического итеративного агрегирования/А.А. Бабаджанян //Автоматика и телемеханика. - 1982. - №11. - С.171-173. 4. Бахвалов Н. Численные методы /Н. Бахвалов, Н. Жидков, Г. Кобельков - М.: Лаборатория Базовых Знаний, 2000. – 624 c. 5. Бахтин, И.А. Исследование уравнений с положительными операторами: Дис. … д-ра физ.-мат. наук /И.А. Бахтин. - Ленинград, 1967. – 320с. 6. Бахтин, И.А. Метод последовательных приближений в теории уравнений с вогнутыми операторами /И.А. Бахтин, М.А. Красносельский // Сибирский математический журнал. - 1961.- Т.2, № 3.- С.313-330. 7. Бахтин, И.А. О непрерывности положительных операторов /И.А. Бахтин, М.А. Красносельский, В.Я. Стеценко // Сибирский математический журнал. - 1962.- Т.3, № 1.- С.8-17. 8. Беллман Р. Квазилинеаризация и нелинейные краевые задачи /Р. Беллман, Р. Калаба. – М.: Мир, 1968. – 270с. 9. Вен, В.Л. Некоторые вопросы агрегирования линейных моделей /В.Л. Вен, А.И. Эрлих //Известия АН СССР. Сер. техническая кибернетика. – 1970.- №5. - С.3-8. 10. Вержбицкий, В.М. Численные методы (линейная алгебра и нелинейные уравнения): Учеб. Пособие для вузов /В.М. Вержбицкий. – М.: Высш. шк., 2000. – 266 с. 11. Вулих, Б.З. Введение в теорию полуупорядоченных пространств /Б.З. Вулих. – М.: Наука, 1961. – 407 с. 12. Вулих, Б.З. Введение в функциональный анализ /Б.З. Вулих. – М.: Физматгиз, 1967.– 415с. 13. Вулих, Б.З. Специальные вопросы геометрии конусов в нормированных пространствах: Учебное пособие /Б.З. Вулих. – Калинин: Издательство калининского университета, 1978. – 84 с. 14. Гантмахер, Ф.Р. Теория матриц /Ф.Р. Гантмахер. – М: Наука, 1966. – 576с. 15. Гробова, Т.А. О методе однопараметрического итеративного агрегирования для решения систем линейных и нелинейных алгебраических уравнений, интегральных уравнений /Т.А. Гробова //Ставропольский государственный университет, Ставрополь, 2001. – 24с. - Деп. в ВИНИТИ 19.11.01 №2392 – В2001. 16. Гробова, Т.А. Об одном новом варианте метода Зейделя /Т.А. Гробова //Научно-методическая конф. преподавателей и студентов «XXI век – век образования». Материалы 46 научно-метод. конф. преподавателей и студентов «XXI век – век образования». – Ставрополь, 2001. – С.4-9. 17. Гробова, Т.А., Об одном аналоге метода однопараметрического итеративного агрегирования /Т.А. Гробова, В.Я. Стеценко //Вестник СГУ. -2001. - Выпуск 28. – С.12-16. 18. Гробова, Т.А. Об одной новой схеме реализации вариантов метода Зейделя /Т.А. Гробова, В.Я. Стеценко // Вестник молодых ученых. Санкт – Петербург, 2001. – С.34-39. 19. Данфорд Н., Шварц Дж. Линейные операторы. Общая теория /Н. Данфорд, Дж. Шварц. – М.: Иностранная литература, 1962. – 895c. 20. Демиденко, Н.А. Применение метода итеративного агрегирования к расширенной модели межотраслевого баланса /Н.А. Демиденко //Экономика и математические методы. – 1977. - Т.13, №3. - С.594598. 21. Дудкин, Л.М. Межотраслевой баланс и материальные балансы отдельных продуктов /Л.М. Дудкин, Э.Б. Ершов // Плановое хозяйство. – 1965. - №5. - С.59-63. 22. Есаян, А.Р. Локализация спектра линейного оператора /А.Р. Есаян, В.Я. Стеценко //Междунар. Конгресс математиков (1966;



Москва). Тезисы кр. науч. сообщений Междунар. Конгресса математиков. Секция 5. – М., 1966. – С.45-74. 23. Есаян, А.Р. О разрешимости уравнений второго рода /А.Р. Есаян, В.Я. Стеценко // Труды семинара по функциональному анализу. Воронежский гос. ун-т. – Воронеж, 1963. – Вып. 7. – С.36-41. 24. Есаян, А.Р. Оценки спектра интегральных операторов и бесконечных матриц /А.Р. Есаян, В.Я. Стеценко // Докл. АН СССР. – 1964. – Т. 157, №2. – С.12-19. 25. Итеративное агрегирование и его применение в планировании /Под ред. Л.М. Дудкина. – М.: Экономика, 1979. – 328 с. 26. Канторович, Л.В. Функциональные анализ в нормированных пространствах /Л.В. Канторович, Г.П. Акилов. – М.: Наука, 1977. – 496 с. 27. Канторович, Л.В. Функциональный анализ в полуупорядоченных пространствах /Л.В. Канторович, Б.З. Вулих, А.Г. Пинскер. - М.: Физматгиз, 1959. - 684 с. 28. Канторович, Л.В. Приближенные методы высшего анализа /Л.В. Канторович, В.И. Крылов. – М.-Л.: Физматгиз, 1962. – 708с.

29. Коллатц Л. Функциональный анализ и вычислительная математика /Л. Коллатц. - М.: Мир, 1969. - 421с. 30. Колмогоров, А.Н. Элементы теории функций и функционального анализа /А.Н. Колмогоров, С.В. Фомин. - М.: Наука, 1981. - 543с. 31. Коршунова Н. Математика в экономике /Н. Коршунова, В. Плясунов. – М.:Издательство «Вита-Пресс», 1996. – 368с. 32. Костенко, Т.А. К вопросу о существовании и единственности решения операторного уравнения, нелинейного относительно параметра. /Т.А. Костенко // «Международная школа-семинар по геометрии и анализу памяти Н.В. Ефимова» (1998;

Ростов-на-Дону). Тезисы докладов «Междунар. школы-семинара по геометрии и анализу памяти Н.В. Ефимова» (5-11 сент., 1998г.). – Ростов-на-Дону, 1998. – С.104105. 33. Костенко, Т.А. О разрешимости операторных уравнений второго рода с линейными и нелинейными операторами /Т.А. Костенко // «Проблемы физико-математических наук», науч.-метод. конф. преподавателей и студентов «Университетская наука – региону» (43;

1998;

Ставрополь). Материалы XLIII науч.-метод. конф. преподавателей и студентов «Университетская наука – региону». – Ставрополь, 1998. – С.111-122. 34. Красносельский, М.А. Положительные решения операторных уравнений /М.А. Красносельский. – М.: Физматгиз, 1962. – 394с. 35. Красносельский, М.А. Правильные и вполне правильные конусы /М.А. Красносельский // Докл. АН СССР.-1960. - Т.135. - № 2. – С.241-255. 36. Красносельский, М.А. Приближенное решение операторных уравнений /М.А. Красносельский, Г.М. Вайникко, П.П. Забрейко и др. – М: Наука, 1969. – 456с. 37. Красносельский, М.А. Геометрические методы нелинейного анализа /М.А. Красносельский, П.П. Забрейко. - М.: Наука, 1965. - 624с. 38. Красносельский, М.А. Позитивные линейные системы: метод положительных операторов /М.А. Красносельский, Е.А. Лифшиц, В.И. Соболев. – М: Наука, 1985. – 256с. 39. Красносельский, М.А. Положительно обратимые линейные операторы и разрешимость линейных уравнений /М.А. Красносельский, Е.А. Лифшиц, В.В. Покорный, В.Я. Стеценко // Докл. АН Таджикской ССР. -1974. - Т.XVII, № 1. - С.12-15. 40. Красносельский, М.А. О сходимости метода однопараметрического агрегирования /М.А. Красносельский, А.Ю. Островский, А.В. Соболев // Автоматика и телемеханика. – 1978. - №9. - С.102-109.

41. Красносельский, М.А. Замечания о методе Зейделя /М.А. Красносельский, В.Я. Стеценко // Журнал вычислительной математики и математической физики. – 1969. - Т.9, №1. - С.177-182. 42. Крейн, М.Г. Линейные операторы, оставляющие инвариантным конус в пространстве Банаха /М.Г. Крейн, М.А. Рутман // Успехи математических наук. - 1948. – Т.1, №3. - С.3-95. 43. Крукиер, Л.А. Численные методы решения задач конвекциидиффузии со смешанными производными /Л.А. Крукиер, Т.С. Мартынова. – г. Ростов-на –Дону: Изд-во РГУ, 2003. -156с. 44. Кубекова, Б.С. Об уточнении оценок решения операторного уравнения в полуупорядоченном пространстве с u0–ограниченным снизу оператором /Б.С. Кубекова // «Понтрягинские чтения –XI», науч. конф. (2000;

Воронеж). Тезисы докладов науч. конф. «Понтрягинские чтения –XI» (3-9 мая, 2000г.). – Воронеж, 2000. – С.95-98. 45. Кубекова, Б.С. Отыскание приближений по недостатку и по избытку к решению операторного уравнения с монотонно разложимым оператором /Б.С. Кубекова //«Математическое моделирование в научных исследованиях», Всероссийская науч. конф. (2000). Тезисы докладов Всероссийской науч. конф. «Математическое моделирование в научных исследованиях» (21-30 сент., 2000г.). – Ставрополь, 2000.– С.47-49. 46. Кубекова, Б.С. О методе однопараметрического итеративного агрегирования /Б.С. Кубекова, В.Я. Стеценко, Т.А. Гробова //«Математика. Компьютер. Образование», междунар. конф. (8;

2001;

Пущино). Тезисы докладов восьмой междунар. конф. «Математика. Компьютер. Образование» (31 янв. – 5 февр., 2001г.).– Пущино, 2001. - С.230-232. 47. Кубекова, Б.С. Об одном методе построения двусторонних приближений к решению операторного уравнения с монотонно разложимым оператором /Б.С. Кубекова, В.Я. Стеценко, М.Н. Павлова //Журнал вычислительной математики и математической физики.– 2001.– Т.41, № 6. – С.846-854. 48. Кузнецов, Ю.А. К теории итерационных процессов /Ю.А. Кузнецов //Докл. АН СССР. – 1969. - Т.184, №4, -С.863-866. 49. Леонтьев, В.В. Экономика и математические методы /В.В. Леонтьев, Д. Форд. – М: Наука, 1972. – 242с. 50. Лифшиц, Е.А. К теории полуупорядоченных банаховых пространств /Е.А. Лифшиц // Функциональный анализ и его приложения, 1969. Т.3, №1. - С.91–92. 51. Люстерник, Л.А. Элементы функционального анализа /Л.А. Люстерник, В.И. Соболев. – М: Наука, 1965. – 520с.

52. Моришима М. Равновесие, устойчивость, рост /М. Моришима. - М.: Наука, 1972. - 179с. 53. Никайдо Х. Выпуклые структуры и математическая экономика /Х. Никайдо. - М.: Мир, 1972. - 518с. 54. Ортега Дж. Итерационные методы решения нелинейных систем уравнений со многими неизвестными /Дж. Ортега, В. Рейнболдт. М.: Мир, 1975. - 327с. 55. Островский, А.Ю. О сходимости монотонных итерационных процессов /А.Ю. Островский //Журнал вычислительной математики и математической физики. – 1977. - Т. 17, №1. - С.233-238. 56. Пароди М. Локализация характеристических чисел матриц и ее применения /М. Пародии. - М.: Иностранная литература, 1960. 270с. 57. Плюта, А.И. Об одном варианте метода ускорения сходимости монотонных приближений к решению уравнения вида x = Ax + f /А.И. Плюта //«Теоретические и прикладные проблемы современной физики», региональная науч. конф. (2002;

Ставрополь). Материалы региональной науч. конф. «Теоретические и прикладные проблемы современной физики». – Ставрополь, 2002. – С.255-262. 58. Плюта, А.И. О некоторых методах получения оценок точного решения x * операторных уравнений вида x = Ax + f в случае, когда спектральный радиус ( A) не обязательно меньше единицы /А.И. Плюта //«Итерационные методы и матричные вычисления», Международная летняя школа молодых ученых. -Ростов-на-Дону, 2002. – С.482-486. 59. Плюта, А.И. «Гибрид» методов ускорения сходимости монотонных приближений к решению уравнения вида x = Ax + f и однопараметрического итеративного агрегирования /А.И. Плюта, В.Я. Стеценко //Ученые записки /Ставропольский гос. ун-т, физикоматематический факультет. – Ставрополь, 2002. – С.79-85. 60. Плюта, А.И. Об одном варианте метода Зейделя /А.И. Плюта, В.Я. Стеценко //Математическое моделирование. – Москва. – 2003г. – Т.15, №12. - С.29-36 61. Радченко, В.В. Применение метода Ньютона-Канторовича для расчета нелинейного межотраслевого баланса /В.В. Радченко, В.Я. Стеценко // Модели и методы экономических целенаправленных систем.- Новосибирск, 1977. - С.160-166. 62. Самарский, А.А. Численные методы /А.А. Самарский, А.В. Гулин – М.: Наука, 1989. – 187с. 63. Стеценко, В.Я. Исследование сходимости метода многопараметрического итеративного агрегирования при решении линейных алгебраических систем и интегральных уравнений /В.Я. Стеценко //«Теория и практика использования методов агрегирования в планировании и управлении», совещание (Киев). Материалы совещания «Теория и практика использования методов агрегирования в планировании и управлении». – Киев, 1984. – С. 74-81. 64. Стеценко, В.Я. Исследования по теории положительных операторов в пространствах с конусом: Дисс. … д-ра физ.-мат. наук /В.Я. Стеценко. – Воронеж, 1968. – 307с. 65. Стеценко, В.Я. Об одном методе ускорения сходимости итерационных процессов /В.Я. Стеценко //Докл. АН СССР. – 1968. – Т.178, №3. - С.1021-1024. 66. Стеценко, В.Я. Элементы теории полуупорядоченных пространств. Приближенное решение операторных уравнений: Учеб. пособие /В.Я. Стеценко, В.А. Галкина. – Ставрополь: Изд-во СГУ, 1998. – 168c. 67. Стеценко, В.Я. О методе однопараметрического итеративного агрегирования для нелинейных уравнений /В.Я. Стеценко, Т.А. Гробова // Воронежская зимняя математическая школа: Тезисы докладов. Воронеж, 2001.- С.254-256. 68. Стеценко, В.Я. Квалифицированные двусторонние оценки для спектрального радиуса линейного положительного оператора /В.Я. Стеценко, Т.А. Костенко //Ставропольский государственный университет, Ставрополь. - 1997. – 13с. Деп. в ВИНИТИ 14.11.97 №3321 – В97. 69. Стеценко, В.Я. Метод ускорения сходимости приближений к спектральному радиусу линейного положительного оператора и к решению линейного операторного уравнения /В.Я. Стеценко, Т.А. Костенко //Вестник СГУ. -1999. - Вып. 20. - С.3-13. 70. Стеценко, В.Я. Новые оценки сверху спектрального радиуса матричных и интегральных операторов /В.Я. Стеценко, Л.Н. Кириллова, А.И. Плюта //«Международная школа-семинар по геометрии и анализу памяти Н.В. Ефимова» (2002;





Ростов-на-Дону). Труды участников «Междунар. школы-семинара по геометрии и анализу памяти Н.В. Ефимова». – Ростов-на-Дону, 2002.-С.160-161. 71. Стеценко, В.Я. Методы ускорения при отыскании спектрального радиуса линейного оператора и решении линейного операторного уравнения /В.Я. Стеценко, Т.А. Костенко //«Международная школасеминар по геометрии и анализу памяти Н.В. Ефимова» (1998;

Ростов-на-Дону). Тезисы докладов «Междунар. школы-семинара по геометрии и анализу памяти Н.В. Ефимова» (5-11 сент., 1998г.). – Ростов-на-Дону, 1998. – С.124-126.

72. Стеценко, В.Я. Обзор и реализация на ЭВМ методов решения систем линейных и нелинейных уравнений: Учебное пособие /В.Я. Стеценко, А.И. Плюта. – Ставрополь: Изд-во СГУ, 2003.-71с. 73. Стеценко, В.Я. О некоторых методах построения монотонных приближений к решению линейных операторных уравнений /В.Я. Стеценко, А.И. Плюта //«Теоретические и прикладные проблемы современной физики», региональная науч. конф. (2000;

Ставрополь). Материалы региональной науч. конф. «Теоретические и прикладные проблемы современной физики». – Ставрополь, 2002.-С.281284. 74. Стеценко, В.Я. Об одном итерационном методе решения систем линейных алгебраических уравнений вида x = Ax + f с квадратной матрицей A /В.Я. Стеценко, А.И. Плюта //«Современные методы теории функций и смежные проблемы», конф. (2003;

Воронеж). Материалы конф. «Современные методы теории функций и смежные проблемы»– Воронеж, 2003. -С.250-251. 75. Фаддеев, Д.К. Сборник задач по высшей алгебре /Д.К. Фаддеев, И. С. Соминский. – М.: Наука, 1964. – 304с. 76. Фаддеев, Д.К. Вычислительные методы линейной алгебры /Д.К. Фаддеев, В.Н. Фаддеева. – М.: Физматгиз, 1960. - 656с. 77. Форсайт Дж. Численное решение систем линейных алгебраических уравнений /Дж. Форсайт, К. Молер. – М.: Мир, 1969. – 354с. 78. Функциональный анализ /Под ред. С.Г. Крейна. – М.: Наука, 1972. – 544с. 79. Хомяков, В.А. Обобщение одного доказательства сходимости процесса итеративного агрегирования для решения систем линейных уравнений /В.А. Хомяков // Автоматика и телемеханика. – 1973.№7. – С.15-23. 80. Шаабан М. Обобщенная норма интегральных операторов и матриц /М. Шаабан //Изв. АН Таджикской ССР. – 1998. – Т.108, №2. – С.312. 81. Щенников, Б.А. Метод агрегирования для решения систем линейных уравнений /Б.А. Щенников // Докл. АН СССР.- 1967.- Т.173, №4. С.781-784. 82. Щенников, Б.А. Применение метода итеративного агрегирования для решения систем линейных уравнений /Б.А. Щенников // Экономика и математические методы. – 1966. – Т.2, №5. - С.723-731.

ПРИЛОЖЕНИЕ §1. Метод последовательных приближений. program wer2;

var e,k,k1,m1,l,k0,r,max1,max2,k2,k3,k4,k5,max3:real;

i,p,m,m01,m2,n:integer;

a: array [1..30,1..30] of real;

x,b,c,c1,t,c2,t1,c3,t2: array [1..30] of real;

procedure wwodm;

var i,j: integer;

begin writeln('Введите размерность матрицы А:');

readln(n);

for i:=1 to n do begin for j:=1 to n do begin write('введите элемент матрицы A[ ',i,',',j,']=');

readln(a[i,j]);

end;

end;

end;

procedure wwodv;

var i:integer;

begin writeln('введите координаты свободного вектора f:');

for i:=1 to n do readln(b[i]);

end;

procedure wwodp;

var i:integer;

begin writeln('введите координаты начального приближения Х:');

for i:=1 to n do readln(x[i]);

writeln('введите необходимую точность вычислений E:');

readln(e);

end;

procedure umnog;

var i,j: integer;

begin for i:=1 to n do begin l:=0;

for j:=1 to n do begin l:=a[i,j]*x[j]+l;

end;

c[i]:=l+b[i];

{ writeln(c[i]);

} end;

{ for i:=1 to n do begin g[i]:=c[i]+b[i];

end};

end;

procedure vivod;

var i: integer;

begin for i:=1 to n do write(c[i]:11:8,' ');

end;

procedure usl1;

var i,j: integer;

begin for i:=1 to n do begin r:=0;

for j:=1 to n do begin r:=abs(a[i,j])+r;

end;

c1[i]:=r;

{writeln(c1[i]:3:3);

} end;

max1:=c1[1];

for i:=2 to n do begin if c1[i]>max1 then max1:=c1[i];

end;

{ writeln(max1:3:3);

} if max1<1 then begin writeln('первое условие выполняется');

umnog;

for i:=1 to n do begin t[i]:=c[i]-x[i];

{ writeln(t[i]);

} end;

m1:=t[1];

for i:=2 to n do begin if abs(t[i])>m1 then m1:=abs(t[i]);

end;

{writeln(m1);

} m:=trunc(ln((e*(1-(max1)))/m1)/(ln(max1)))+1;

{writeln(m);

} end else writeln('первое условие не выполняется');

end;

procedure usl2;

var i,j: integer;

begin for i:=1 to n do begin k:=0;

for j:=1 to n do begin k:=abs(a[j,i])+k;

end;

c2[i]:=k;

{writeln(c2[i]:3:3);

} end;

max2:=c2[1];

for i:=2 to n do begin if c2[i]>max2 then max2:=c2[i];

end;

{writeln(max2:3:3);

} if max2<1 then begin writeln('выполняется второе условие');

umnog;

for i:=1 to n do begin t1[i]:=c[i]-x[i];

{writeln(t1[i]:3:3);

} end;

k1:=0;

for i:=1 to n do begin k1:=k1+t1[i];

end;

m01:=trunc((ln((e*(1-max2))/abs(k1)))/(ln(max2)))+1;

{writeln(m01:3);

} end else writeln('второе условие не выполняется');

end;

procedure usl3;

var i,j:integer;

begin for i:=1 to n do begin k2:=0;

for j:=1 to n do begin k2:=sqr(a[i,j])+k2;

end;

c3[i]:=k2;

{ writeln(c3[i]:3:3);

} end;

k3:=0;

for i:=1 to n do begin k3:=k3+c3[i];

end;

max3:=sqrt(k3);

{writeln(max3:3);

} if max3<1 then begin writeln('третье условие выполняется');

umnog;

for i:=1 to n do begin t2[i]:=c[i]-x[i];

{writeln(t2[i]:3:3);

} end;

k4:=0;

for i:=1 to n do begin k4:=sqr(t2[i])+k4;

end;

k5:=sqrt(k4);

m2:=trunc((ln((e*(1-max3))/k5))/(ln(max3)))+1;

writeln(m2:3);

end else writeln('третье условие не выполняется');

end;

begin {основная программа} wwodm;

wwodv;

wwodp;

umnog;

usl1;

usl2;

usl3;

p:=m2;

readln;

{writeln(m);

} for i:=1 to p do begin umnog;

write( i,':');

vivod;

x:=c;

writeln;

readln;

end;

readln;

end.

§2. Метод ускорения сходимости монотонных приближений к решению уравнения вида x = Ax + f (r ( A) < 1). program wert;

var ch,ch1,zn,zn1,f,z0,z01,z1,a1,a2,a00,b00,b0,u0,v0,u,v,p0,q0,u2,v2,u02,c72,p1,q1,u 1,v1: array[1..25] of real;

a: array[1..25,1..25] of real;

h1,h2,h01,h02,h11,h12,h101,h102,s,k,b,t,k1,d0,d1,d01,d10,m01,m02,d02,d12,d01 2,d102,k0:real;

c,n1,i,j,n,q,l,i1 :integer;

procedure wwod;

var i,j:integer;

begin writeln('введите размерность матрицы A:');

readln(n);

writeln('Ввод элементов матрицы А:');

for i:=1 to n do begin for j:=1 to n do begin write('элемент A[',i,',',j,']=');

readln(a[i,j]);

end;

end;

writeln('Введите координаты свободного вектора f:');

for i:=1 to n do begin readln(f[i]);

end;

end;

procedure byferr;

var i,j:integer;

begin for i:=1 to n do begin z01[i]:=z0[i];

{ writeln(u01[i]:4:4)} end;

end;

procedure umn;

var i,j: integer;

s: real;

begin for i:=1 to n do begin s:=0;

for j:=1 to n do begin s:=a[i,j]*z01[j]+s;

end;

a1[i]:=s;

end;

end;

procedure vich;

var i,j:integer;

begin for i:=1 to n do begin d0:=0;

d1:=0;

for j:=1 to n do begin d01:=a[i,j]*u0[j];

d0:=d0+d01;

d10:=a[i,j]*v0[j];

d1:=d10+d1;

end;

u[i]:=d0+f[i];

v[i]:=d1+f[i];

end;

end;

procedure otn;

var i,j:integer;

begin for i:=1 to n do begin zn[i]:=v0[i]-v[i];

ch[i]:=u[i]-u0[i];

{writeln(u[i]:5:5);

} end;

h2:=zn[1];

for i:=2 to n do begin if zn[i]>h2 then h2:=zn[i];

end;

{ writeln(h2:6:6);

} h1:=ch[1];

for i:=2 to n do begin if ch[i]

end;

{writeln(h1:8:8);

} m01:=h1/h2;

{writeln(m01:8:8);

} h01:=zn[1];

for i:=2 to n do begin if zn[i]

end;

h02:=ch[1];

for i:=2 to n do begin if ch[i]>h02 then h02:=ch[i];

end;

m02:=h01/h02;

{ writeln(m02:8:8);

} end;

procedure byferr2;

var i,j : integer;

begin for i:=1 to n do begin u2[i]:=u[i];

v2[i]:=v[i];

u02[i]:=u0[i];

c72[i]:=v0[i];

p1[i]:=p0[i];

q1[i]:=q0[i];

end;

end;

begin {начало основной программы} wwod;

writeln('Введите начальные векторы:');

writeln('вектор u0:');

for i:=1 to n do readln(u0[i]);

writeln('вектор v0:');

for i:=1 to n do readln(v0[i]);

writeln('Введите количество приближений:');

readln(q);

for l:=1 to q do begin vich;

otn;

{ writeln(m01:5:5);

} for i:=1 to n do begin u1[i]:=(u[i]+m01*v[i])/(1+m01);

v1[i]:=(v[i]+m02*u[i])/(1+m02);

writeln(l,':',u1[i]:11:8,' ',v1[i]:11:8);

end;

for i1:=1 to n do begin u0[i1]:=u[i1];

v0[i1]:=v[i1];

end;

readln;

end;

end.

§3. Метод однопараметрического итеративного агрегирования решения линейных операторных уравнений вида x = Ax + f, где оператор A - матрица n - го порядка.

program wert;

type Mat = Array[1..30,1..30] of real;

Vec = Array[1..30] of real;

var z : Mat;

f,l,x,s,a,y :Vec;

m,m1,g,g1,u,u1,h,h1,t:real;

r,i,j,k,p,k1 : integer;

procedure wwodmatr;

var i,j:integer;

begin for i:=1 to p do begin for j:=1 to p do begin write('Введите элемент матрицы А[',i,',',j,']=');

readln(z[i,j]);

end;

end;

end;

procedure wwodf;

var i:integer;

begin writeln('Введите координаты свободного вектора f:');

for i:=1 to p do readln(f[i]);

end;

procedure wwodl;

var i: integer;

begin for i:=1 to p do l[i]:=1;

end;

procedure wwodx;

var i:integer;

begin writeln('Введите координаты вектора x (начального приближения) :');

for i:=1 to p do readln(x[i]);

end;

procedure umnog;

var i,j : integer;

begin for i:=1 to p do begin m:=0;

for j:=1 to p do begin m1:=z[i,j]*x[j];

m:=m1+m;

end;

s[i]:=m;

end;

end;

procedure scalf;

var i :integer;

begin g:=0;

for i:=1 to p do begin g1:=f[i]*l[i];

g:=g+g1;

end;

end;

procedure scalx;

var i:integer;

begin h:=0;

for i:=1 to p do begin h1:=x[i]*l[i];

h:=h+h1;

end;

end;

procedure scalAx;

var i: integer;

begin u:=0;

for i:=1 to p do begin u1:=s[i]*l[i];

u:=u1+u;

end;

end;

procedure ttt;

var t: real;

begin t:=g/(h-u);

end;

procedure rrr ;

var i: integer;

begin for i:=1 to p do a[i]:=s[i]*t;

end;

procedure summ;

var i: integer;

begin for i:=1 to p do y[i]:=a[i]+f[i];

end;

procedure wewod;

var i: integer;

begin for i:=1 to p do write(y[i]:11:8,' ');

end;

begin { основная программа } writeln('Решение линейного уравнения вида x=Ax+f');

writeln('Введите размерность матрицы А:');

readln(p);

wwodmatr;

wwodf;

wwodl;

wwodx;

scalf;

writeln('ВВЕДИТЕ КОЛИЧЕСТВО ИТЕРАЦИЙ:');

readln(r);

for k:=1 to r do begin umnog;

scalx;

scalAx;

t:=g/(h-u);

rrr;

summ;

write(k,':');

wewod;

for k1:=1 to p do x[k1]:=y[k1];

writeln;

end;

writeln('Итак, на ',r,'-м шаге мы получили приближения к решению');

writeln('линейного уравнения вида x=Ax+f');

readln;

end.

§4. Метод однопараметрического итеративного агрегирования решения нелинейных операторных уравнений вида x = F ( x) + f, где F (x) - нелинейный оператор. program wert;

type Mat = Array[1..30,1..30] of real;

Vec = Array[1..30] of real;

var z,k1,x1 : Mat;

f,l,x,s,a,y :Vec;

m,m1,g,g1,u,u1,h,h1,t:real;

r,i,j,k,p,k2 : integer;

procedure wwodmatr;

var i,j:integer;

begin writeln('Ввод коэффициентов при неизвестных переменных системы:');

for i:=1 to p do begin for j:=1 to p do begin write(' коэффициент системы [',i,',',j,']=');

readln(z[i,j]);

end;

end;

end;

procedure wwodf;

var i:integer;

begin writeln('Введите координаты свободного вектора f:');

for i:=1 to p do readln(f[i]);

end;

procedure wwodl;

var i: integer;

begin for i:=1 to p do l[i]:=1;

end;

procedure wwodx;

var i:integer;

begin writeln('Введите координаты вектора x (начального приближения) :');

for i:=1 to p do readln(x[i]);

end;

procedure wwodk;

var i,j:integer;

begin writeln('Ввод показателей степеней:');

for i:=1 to p do begin for j:=1 to p do begin write(' ',i,'-ая строка уравнения, степень при ',j,'-ом неизвестном:');

readln(k1[i,j]);

end;

end;

end;

procedure umnog1;

var i,j:integer;

begin for i:=1 to p do begin for j:=1 to p do begin x1[i,j]:=exp(k1[i,j]*ln(x[j]));

end;

end;

end;

procedure umnog;

var i,j : integer;

begin for i:=1 to p do begin m:=0;

for j:=1 to p do begin m1:=z[i,j]*x1[i,j];

m:=m1+m;

end;

s[i]:=m;

end;

end;

procedure scalf;

var i :integer;

begin g:=0;

for i:=1 to p do begin g1:=f[i]*l[i];

g:=g+g1;

end;

end;

procedure scalx;

var i:integer;

begin h:=0;

for i:=1 to p do begin h1:=x[i]*l[i];

h:=h+h1;

end;

end;

procedure scalAx;

var i: integer;

begin u:=0;

for i:=1 to p do begin u1:=s[i]*l[i];

u:=u1+u;

end;

end;

procedure ttt;

var t: real;

begin t:=g/(h-u);

end;

procedure rrr ;

var i: integer;

begin for i:=1 to p do a[i]:=s[i]*t;

end;

procedure summ;

var i: integer;

begin for i:=1 to p do y[i]:=a[i]+f[i];

end;

procedure wewod;

var i: integer;

begin for i:=1 to p do write(y[i]:11:8,' ');

end;

begin { основная программа } writeln('Решение нелинейного уравнения вида x=F(x)+f, с нелинейным оператором F(x):');

writeln('Введите размерность матрицы:');

readln(p);

wwodmatr;

wwodf;

wwodl;

wwodx;

wwodk;

scalf;

writeln('ВВЕДИТЕ КОЛИЧЕСТВО ИТЕРАЦИЙ:');

readln(r);

for k:=1 to r do begin umnog1;

umnog;

scalx;

scalAx;

t:=g/(h-u);

rrr;

summ;

write(k,':');

wewod;

for k2:=1 to p do x[k2]:=y[k2];

writeln;

end;

writeln('Итак, на ',r,'-м шаге получили приближения');

writeln(' к решению нелинейного уравнения вида x=F(x)+f');

readln;

end.

§5. Спектральный радиус. program wert;

{uses printer;

} var a :array [1..100,1..100] of real;

b,d,c,k :array [1..100] of real;

maxi,mini,r,c1,p : real;

alf, beta :real;

i,j,t,l,s : integer;

procedure wwod;

var i,j:integer;

begin writeln('Ввод элементов матрицы А:');

{writeln(lst,'Ввод элементов матрицы А:');

} for i:=1 to s do begin for j:=1 to s do begin write('элемент A[',i,',',j,']=');

{ write(lst,'элемент A[',i,',',j,']=');

} readln(a[i,j]);

{ writeln(lst,a[i,j]:5:3);

} end;

end;

writeln('Введите координаты вектора u (координаты должны');

writeln('быть больше нуля):');

{ writeln(lst,'Введите координаты вектора u:');

} for i:=1 to s do begin readln(b[i]);

{ writeln(lst,b[i]:4:4);

} end;

end;

procedure umnog;

var r,c1:real;

i,j:integer;

begin for i:=1 to s do begin r:=0;

for j:=1 to s do begin c1:=a[i,j]*k[j];

r:=r+c1;

end;

c[i]:=r;

end;

end;

procedure delen;

var i:integer;

begin for i:=1 to s do d[i]:=c[i]/b[i];

end;

procedure wibor;

var i:integer;

begin maxi:=d[1];

for i:=2 to s do begin if d[i]>maxi then maxi:=d[i];

end;

mini:=d[1];

for i:=2 to s do begin if d[i]

end;

end;

begin { основная программа } writeln('Определение спектрального радиуса матрицы А:');

writeln('Введите размерность матрицы:');

readln(s);

wwod;

for i:=1 to s do k[i]:=b[i];

writeln('Введите количество приближений:');

{ writeln(lst,'введите количество приближений:');

} readln(t);

{ writeln(lst,t:4);

} for i:=1 to t do begin umnog;

delen;

wibor;

p:=1/i;

(alf):=(exp(p*ln(abs(mini))));

(beta):=(exp(p*ln(abs(maxi))));

writeln(i,':', alf:11:8,' ',beta:11:8);

{ writeln(lst,i,':', alf:11:8,' ',beta:11:8);

} for l:=1 to s do k[l]:=c[l];

readln;

end;

writeln('Итак мы получили на ',t,'-м шаге приближение');

writeln('к спектральному радиусу "снизу"- ',alf:11:8,' и "сверху"- ',beta:11:8,'');

readln;

end.

§6. Собственный вектор. program qq;

var t0,t1,t2,t3,t4,t5,t6,t7,t8,g1,g2,max1,max2,max3,min3:real;

k1,k2,k3,k4,k,y,y1,y2,y3,y4,max4,max5,max6:real;

i,n,r,i1,j,l,p,w:integer;

a,b: array [1..30,1..30] of real;

x0,u0,c,c1,c2,c3,c4,c5,c6,x00,u1,v1,x1,z1,z2,x: array [1..30] of real;

procedure wwod;

var i,j: integer;

begin writeln('Введите размерность матрицы А:');

readln(n);

writeln('Ввод элементов матрицы А:');

for i:=1 to n do begin for j:=1 to n do begin write('введите элемент матрицы A[ ',i,',',j,']=');

readln(a[i,j]);

end;

end;

writeln('Введите координаты начального приближения вектора X:');

for i:=1 to n do readln(x0[i]);

writeln('Введите координаты вектора u0:');

for i:=1 to n do readln(u0[i]);

end;

procedure byfer;

begin x00:=x0;

x:=x0;

end;

procedure umn;

var i,j:integer;

begin for i:=1 to n do begin t0:=0;

for j:=1 to n do begin t0:=a[i,j]*x00[j]+t0;

end;

c[i]:=t0;

end;

for i:=1 to n do c1[i]:=c[i]/u0[i];

max1:=c1[1];

for i:=2 to n do begin if c1[i]>max1 then max1:=c1[i];

end;

end;

procedure umn2;

var i,j : integer;

begin for i:=1 to n do begin t2:=0;

for j:=1 to n do begin t2:=b[i,j]*x0[j]+t2;

end;

c5[i]:=t2;

end;

end;

begin {основная программа} wwod;

byfer;

writeln('Введите количество приближений:');

readln(r);

writeln('Соответствующие приближения к координатам собственного вектора:');

for i1:=1 to r do begin umn;

{ writeln('матрица B:');

} for i:=1 to n do c2[i]:=c[i]/(max1);

if (i1=1) then begin for i:=1 to n do x1[i]:=c2[i];

end;

write(i1,':',' ');

for i:=1 to n do write(c2[i]:6:6,' ');

for i:=1 to n do x00[i]:=c2[i];

writeln;

end;

readln;

writeln('Получим теперь двустороннее приближение к собственному вектору:');

for i:=1 to n do begin t1:=0;

for j:=1 to n do begin t1:=a[i,j]*x0[j]+t1;

end;

c3[i]:=t1;

end;

for i:=1 to n do c4[i]:=c3[i]/u0[i];

max2:=c4[1];

for i:=2 to n do begin if c4[i]>max2 then max2:=c4[i];

end;

for i:=1 to n do begin for j:=1 to n do begin b[i,j]:=a[i,j]/(max2);

{write(b[i,j]:3:3,' ');

} end;

{writeln;

} end;

for i:=1 to n do c6[i]:=c3[i]/x0[i];

min3:=c6[1];

for i:=2 to n do begin if c6[i]

end;

max3:=c6[1];

for i:=2 to n do begin if c6[i]>max3 then max3:=c6[i];

end;

{ for i:=1 to n do writeln(c6[i]:4:4);

} writeln('a=',min3:3:3, 'b=',max3:3:3);

writeln('Введите первое наибольшее значение матрицы А:');

readln(k1);

writeln('Введите второе наибольшее значение матрицы А:');

readln(k2);

writeln('Введите первое наименьшее значение матрицы А:');

readln(k3);

writeln('Введите второе наименьшее значение матрицы А:');

readln(k4);

k:=sqrt((k1*k2)/(k3*k4));

writeln('постоянная оператора сжатия-',k:3:3);

g1:=min3/max3;

g2:=max3/min3;

t3:=(k-1)/2;

t4:=(k-1)/(k+1);

readln;

for l:=1 to r do begin t5:=exp(l*ln(t4));

t6:=t3*t5;

t7:=exp(t6*ln(g1));

t8:=exp(t6*ln(g2));

for i:=1 to n do x00[i]:=x0[i];

umn;

for i:=1 to n do begin c5[i]:=c[i]/max1;

end;

for i:=1 to n do begin u1[i]:=t7*c5[i];

v1[i]:=t8*c5[i];

end;

for i:=1 to n do begin write(l,':');

write(u1[i]:5:5,' ',v1[i]:5:5);

writeln;

end;

readln;

for i:=1 to n do x0[i]:=c5[i];

writeln;

end;

readln;

writeln('Теперь оценим степень близости к точному решению');

for i:=1 to n do z1[i]:=x1[i]/x0[i];

max4:=z1[1];

for i:=2 to n do begin if z1[i]>max4 then max4:=z1[i];

end;

for i:=1 to n do begin z2[i]:=x[i]/x1[i];

{ writeln(z2[i]:3:3);

} end;

max5:=z2[1];

for i:=2 to n do begin if z2[i]>max5 then max5:=z2[i];

end;

max6:=max4;

if max5>max6 then max6:=max5;

y:=ln(max6);

y1:=(k-1)/(k+1);

writeln('Введите номер приближения с котoрого вы хотите определить расстояние до точного решения:');

readln(w);

y2:=exp(w*ln(y1));

y3:=y2/(1-y1);

y4:=y3*y;

writeln('Вы находитесь от точного решения на расстоянии:',y4:8:8);

readln;

end.

§7. Об одном итерационном методе решения системы линейных алгебраических уравнений вида x = Ax + f с квадратной матрицей A, в случае, когда наибольшее по модулю собственное значение матрицы A, больше чем единица.

program trt;

{$N+,E+} type matr= record b:array [1..10,1..10] of extended;

x,l2:array [1..10] of extended;

G:extended;

end;

matx= array[1..20] of matr;

var u: matx;

a1,s,a2,a3,a,a0 :array [1..10,1..10] of extended;

y0,l0,y00,l00,f,c,cw,c1,l,y,y1,l1,x,z0,z,x1,c2,c3:array [1..10] of extended;

i,j,n,k,k1,r0,r,q,w,v,s1,iq:integer;

t,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,G1,t01,t11,t21,t31,h:extended;

procedure wwod;

var i,j: integer;

begin writeln('Введите размерность матрицы А:');

readln(n);

writeln('Ввод элементов матрицы А:');

for i:=1 to n do begin for j:=1 to n do begin write('элемент A[',i,',',j,']=');

readln(a[i,j]);

end;

end;

writeln('Ввод свободного вектора f:');

for i:=1 to n do begin readln(f[i]);

end;

end;

procedure byfer;

var i,j:integer;

begin for i:=1 to n do begin for j:=1 to n do begin a0[i,j]:=a[i,j];

end;

end;

end;

procedure obr_A;

var i,j:integer;

begin for i:=1 to n do begin for j:=1 to n do begin a1[i,j]:=a0[j,i];

end;

end;

writeln('Для отыскания собственных значений необходимо');

writeln('ввести вектора l0 и y0.');

writeln;

writeln('Введите вектор l0:');

for i:=1 to n do begin readln(l0[i]);

end;

writeln('Введите вектор y0:');

for i:=1 to n do begin readln(y0[i]);

end;

end;

procedure byfer2;

var i :integer;

begin for i:=1 to n do begin y00[i]:=y0[i];

l00[i]:=l0[i];

end;

end;

Procedure otisk;

var i,j : integer;

begin for i:=1 to n do begin t:=0;

for j:=1 to n do begin t:=a0[i,j]*y00[j]+t;

end;

c[i]:=t;

end;

t1:=0;

for i:=1 to n do begin t1:=l00[i]*c[i]+t1;

end;

t2:=0;

for i:=1 to n do begin t2:=l00[i]*y00[i]+t2;

end;

u[q].G:=abs(t1/t2);

for i:=1 to n do begin y[i]:=u[q].G*c[i];

end;

for i:=1 to n do begin t3:=0;

for j:=1 to n do begin t3:=a1[i,j]*l00[j]+t3;

end;

c1[i]:=t3;

end;

for i:=1 to n do begin l[i]:=u[q].G*c1[i];

end;

end;

procedure otisk2;

var i,j: integer;

begin for i:=1 to n do begin t01:=0;

for j:=1 to n do begin t01:=a0[i,j]*y00[j]+t01;

end;

c[i]:=t01;

end;

t11:=0;

for i:=1 to n do begin t11:=l00[i]*c[i]+t11;

end;

t21:=0;

for i:=1 to n do begin t21:=l00[i]*y00[i]+t21;

end;

G1:=abs(t11/t21);

for i:=1 to n do begin y[i]:=G1*c[i];

end;

for i:=1 to n do begin t31:=0;

for j:=1 to n do begin t31:=a1[i,j]*l00[j]+t31;

end;

c1[i]:=t31;

end;

for i:=1 to n do begin l[i]:=G1*c1[i];

end;

end;

procedure normma;

var i:integer;

begin for i:=1 to n do begin y1[i]:=sqr(y[i]);

l1[i]:=sqr(l[i]);

end;

t4:=0;

t5:=0;

for i:=1 to n do begin t4:=y1[i]+t4;

t5:=l1[i]+t5;

end;

t6:=sqrt(t4);

t7:=sqrt(t5);

for i:=1 to n do begin u[q].x[i]:=y[i]/t6;

u[q].l2[i]:=l[i]/t7;

end;

end;

procedure vivod;

var i:integer;

begin for i:=1 to n do begin writeln(u[q].x[i]:13:13,' ',u[q].l2[i]:13:13);

end;

end;

procedure sobstv;

var i,j:integer;

begin obr_A;

byfer2;

writeln('Введите количество приближений для отыскания');

writeln('собственных векторов l,y операторов А и А~ и');

writeln('собственного значения T оператора А:');

readln(k);

for k1:=1 to k do begin otisk;

normma;

writeln(k1,':',' ', 'T=',u[q].G:13:13);

vivod;

for i:=1 to n do begin y00[i]:=y[i];

l00[i]:=l[i];

end;

end;

end;

procedure metod2;

var i,j: integer;

begin for i:=1 to n do begin for j:=1 to n do begin u[q].b[i,j]:=a0[i,j]-u[q].G*u[q].x[i]*u[q].l2[j];

end;

end;

end;

procedure metod1;

var i: integer;

begin writeln('Введите начальные приближения для отыскания решения');

writeln('уравнения вида y=By+f:');

for i:=1 to n do begin readln(z0[i]);

end;

end;

procedure metod3;

var i,j:integer;

begin for i:=1 to n do begin t8:=0;

for j:=1 to n do begin t8:=u[q].b[i,j]*z0[j]+t8;

end;

z[i]:=t8+f[i];

end;

end;

procedure vivod1;

var i: integer;

begin for i:=1 to n do begin write(z[i]:13:13,' ');

end;

end;

procedure ccc;

var i,j: integer;

begin for i:=1 to n do begin for j:=1 to n do begin if (i=j) then s[i,j]:=1 else s[i,j]:=0;

end;

end;

for i:=1 to n do begin for j:=1 to n do begin a2[i,j]:=s[i,j]-a[i,j] end;

end;

for i:=1 to n do begin t9:=0;

for j:=1 to n do begin t9:=a2[i,j]*u[1].x[j]+t9;

end;

c2[i]:=t9;

end;

for i:=1 to n do begin for j:=1 to n do begin a3[i,j]:=a[i,j]-s[i,j];

end;

end;

for i:=1 to n do begin t10:=0;

for j:=1 to n do begin t10:=a3[i,j]*z[j]+t10;

end;

c3[i]:=t10+f[i];

end;

h:=c3[1]/c2[1];

for i:=1 to n do begin x1[i]:=z[i]+h*u[1].x[i];

end;

end;

procedure ccc1;

var i,j: integer;

begin for i:=1 to n do begin for j:=1 to n do begin if (i=j) then s[i,j]:=1 else s[i,j]:=0;

end;

end;

for i:=1 to n do begin for j:=1 to n do begin a2[i,j]:=s[i,j]-u[s1].b[i,j];

end;

end;

for i:=1 to n do begin t9:=0;

for j:=1 to n do begin t9:=a2[i,j]*u[s1+1].x[j]+t9;

end;

c2[i]:=t9;

end;

for i:=1 to n do begin for j:=1 to n do begin a3[i,j]:=u[s1].b[i,j]-s[i,j];

end;

end;

for i:=1 to n do begin t10:=0;

for j:=1 to n do begin t10:=a3[i,j]*z[j]+t10;

end;

c3[i]:=t10+f[i];

end;

h:=c3[1]/c2[1];

for i:=1 to n do begin x1[i]:=z[i]+h*u[s1+1].x[i];

end;

end;

begin {основная программа} wwod;

q:=0;

byfer;

repeat q:=q+1;

sobstv;

metod2;

writeln(q,'-я матрица B:');

for i:=1 to n do begin for j:=1 to n do begin a0[i,j]:=u[q].b[i,j];

a1[i,j]:=a0[j,i];

write( u[q].b[i,j]:4:4,' ');

end;

writeln;

end;

byfer2;

for w:=1 to 9 do begin otisk2;

for iq:=1 to n do begin y00[iq]:=y[iq];

l00[iq]:=l[iq];

end;

end;

writeln('T=',G1:5);

if G1>1 then writeln('На ',q,'-ом шаге спектральный радиус больше единицы.') else v:=1 until v=1;

readln;

metod1;

writeln('Введите количество приближений для отыскания решения уравнения y=By+f:');

readln(r);

for r0:=1 to r do begin metod3;

write(r0,':');

vivod1;

for i:=1 to n do z0[i]:=z[i];

writeln;

end;

for s1:=(q-1) downto 1 do begin ccc1;

z:=x1;

end;

readln;

writeln('Решением исходного уравнения x=Ax+f есть вектор:');

ccc;

for i:=1 to n do begin writeln(x1[i]:13:13);

end;

readln;

end.

§8. Получение двусторонних оценок точного решения x операторного уравнения вида x = Ax + f, в случае, когда спектральный радиус не обязательно меньше единицы.

* program wer2;

var t1,t2,t3,max1,min1,l,min2,s1,min3,s2,s3,min4,t4:real;

n,k1,k2,k3,i,j,i1,k4,i2,i3,i4 :integer;

a: array [1..30,1..30] of real;

x,f,c,u1,u2,u3,u4,u5,u6,u7,u8,u0,u00,u9,u10,u11,u12,u13,u14,u15,u16,u140,u100: array [1..30] of real;

procedure wwodm;

var i,j: integer;

begin writeln('Введите размерность матрицы А:');

readln(n);

for i:=1 to n do begin for j:=1 to n do begin write('введите элемент матрицы A[ ',i,',',j,']=');

readln(a[i,j]);

end;

end;

end;

procedure wwodv;

var i:integer;

begin writeln('введите координаты свободного вектора f:');

for i:=1 to n do readln(f[i]);

end;

procedure wwodx;

var i:integer;

begin writeln('введите координаты начального приближения Х:');

for i:=1 to n do readln(x[i]);

writeln('введите порядок определения для приближений:');

readln(k1);

readln(k2);

readln(k3);

end;

procedure umnog;

var i,j: integer;

begin for i:=1 to n do begin l:=0;

for j:=1 to n do begin l:=a[i,j]*x[j]+l;

end;

c[i]:=l+f[i];

end;

end;

procedure umnog2;

var i,j: integer;

begin for i:=1 to n do begin u9[i]:=(max1*(u2[i]-u1[i]))-(u3[i]-u2[i]);

end;

writeln('Координаты вектора v0:');

for i:=1 to n do begin writeln(u9[i]:6:6);

end;

for i:=1 to n do begin u13[i]:=(u3[i]-u2[i])-(min1*(u2[i]-u1[i]));

end;

writeln('Координаты вектора w0:');

for i:=1 to n do begin writeln(u13[i]:6:6);

end;

end;

begin {основная программа} wwodm;

wwodv;

wwodx;

for i1:=1 to k3 do begin umnog;

if (i1=k1) then begin for i:=1 to n do u1[i]:=c[i];

end;

if (i1=k2) then begin for i:=1 to n do u2[i]:=c[i];

end;

if (i1=k3) then begin for i:=1 to n do u3[i]:=c[i];

end;

for i:=1 to n do x[i]:=c[i];

end;

writeln('искомый вектор u[',k1,']:');

for i:=1 to n do writeln(u1[i]:7:7);

readln;

writeln('искомый вектор u[',k2,']:');

for i:=1 to n do writeln(u2[i]:7:7);

readln;

writeln('искомый вектор u[',k3,']:');

for i:=1 to n do writeln(u3[i]:7:7);

readln;

for i:=1 to n do begin u4[i]:=(u3[i]-u2[i])/(u2[i]-u1[i]);

end;

max1:=u4[1];

for i:=2 to n do begin if u4[i]>max1 then max1:=u4[i];

end;

writeln('"гамма" равно - ',max1:5:5);

min1:=u4[1];

for i:=2 to n do begin if u4[i]

end;

writeln('"бетта" равно - ',min1:5:5);

t1:=(max1)/(1-max1);

t2:=(min1)/(1-min1);

for i:=1 to n do begin u5[i]:=u3[i]+t1*(u3[i]-u2[i]);

u6[i]:=u3[i]+t2*(u3[i]-u2[i]);

end;

writeln('точное решение заключено между следующими векторами:');

for i:=1 to n do begin writeln( ' ',u6[i]:5:5,' ',u5[i]:5:5);

end;

readln;

writeln('Теперь произведем улучшение полученных оценок.');

readln;

writeln('Введите координаты вектора u0:');

for i:=1 to n do begin readln(u0[i]);

u00[i]:=u0[i];

end;

k4:=k2-k1;

for i2:=1 to k4 do begin for i:=1 to n do begin s1:=0;

for j:=1 to n do begin s1:=a[i,j]*u00[j]+s1;

end;

u7[i]:=s1;

end;

for i3:=1 to n do u00[i3]:=u7[i3];

end;

for i:=1 to n do u8[i]:=u7[i]/u0[i];

min2:=u8[1];

for i:=2 to n do begin if u8[i]

end;

writeln('q0=',min2:3:3);

readln;

umnog2;

readln;

for i3:=1 to k4 do begin for i:=1 to n do begin s2:=0;

for j:=1 to n do begin s2:=a[i,j]*u9[j]+s2;

end;

u10[i]:=s2;

end;

for i:=1 to n do u9[i]:=u10[i];

end;

for i:=1 to n do u100[i]:=u10[i]/u0[i];

min3:=u100[1];

for i:=2 to n do begin if u100[i]

end;

writeln('q=',min3:5:5);

t3:=(min3)/((1-max1)*(1-min2));

for i:=1 to n do u11[i]:=t3*u0[i];

for i:=1 to n do begin u12[i]:=u5[i]-u11[i];

end;

for i4:=1 to k4 do begin for i:=1 to n do begin s3:=0;

for j:=1 to n do begin s3:=a[i,j]*u13[j]+s3;

end;

u14[i]:=s3;

end;

for i:=1 to n do u13[i]:=u14[i];

end;

for i:=1 to n do u140[i]:=u14[i]/u0[i];

min4:=u140[1];

for i:=2 to n do begin if u140[i]

end;

writeln('q1=',min4:6:6);

t4:=(min4)/((1-min1)*(1-min2));

for i:=1 to n do u15[i]:=t4*u0[i];

for i:=1 to n do begin u16[i]:=u6[i]+u15[i];

end;

writeln('После улучшения оценок получаем следующие векторы:');

for i:=1 to n do begin writeln(u16[i]:6:6,' ',u12[i]:6:6);

end;

readln;

end.

§9. О некоторых подходах к уточнению границ решения операторных уравнений вида x = Ax + f в случае, когда спектральный радиус r ( A) не обязательно меньше единицы. program wert;

type Mat = Array[1..30,1..30] of real;

Vec = Array[1..30] of real;

var a : Mat;

f,l,x,s,y,b,u1,u2,u3,u4,u5,u6,u0,u00,u7,u8,u9,u10,u11,u12 :Vec;

u13,u14,u15,u16,u100,u140:Vec;

m,m1,g,h,h1,t,t1,t2,max1,min1,s1,min2,min3,min4,s2,s3,t3,t4:real;

r,i,j,k,p,k1,k2,k3,i1,k4,n,i2,i3,i4 : integer;

procedure wwodmatr;

var i,j:integer;

begin for i:=1 to p do begin for j:=1 to p do begin write('Введите элемент матрицы А[',i,',',j,']=');

readln(a[i,j]);

end;

end;

end;

procedure wwodf;

var i:integer;

begin writeln('Введите координаты свободного вектора f:');

for i:=1 to p do readln(f[i]);

end;

procedure wwodl;

var i: integer;

begin for i:=1 to p do l[i]:=1;

end;

procedure wwodx;

var i:integer;

begin writeln('Введите координаты вектора x (начального приближения) :');

for i:=1 to p do readln(x[i]);

writeln('введите порядок определения для приближений:');

readln(k1);

readln(k2);

readln(k3);

end;

procedure umnog;

var i,j : integer;

begin for i:=1 to p do begin m:=0;

for j:=1 to p do begin m:=a[i,j]*x[j]+m;

end;

s[i]:=m;

end;

end;

procedure scalf;

var i :integer;

begin g:=0;

for i:=1 to p do begin g:=f[i]*l[i]+g;

end;

end;

procedure scalx;

var i:integer;

begin h:=0;

for i:=1 to p do begin h:=x[i]*l[i]+h;

end;

end;

procedure scalAx;

var i: integer;

begin h1:=0;

for i:=1 to p do begin h1:=s[i]*l[i]+h1;

end;

end;

procedure ttt;

begin t:=g/(h-h1);

end;

procedure rrr ;

var i: integer;

begin for i:=1 to p do b[i]:=s[i]*t;

end;

procedure summ;

var i: integer;

begin for i:=1 to p do y[i]:=b[i]+f[i];

end;

procedure umnog2;

var i,j: integer;

begin for i:=1 to p do begin u9[i]:=(max1*(u2[i]-u1[i]))-(u3[i]-u2[i]);

end;

writeln('Координаты вектора v0:');

for i:=1 to p do begin writeln(u9[i]:6:6);

end;

for i:=1 to p do begin u13[i]:=(u3[i]-u2[i])-(min1*(u2[i]-u1[i]));

end;

writeln('Координаты вектора w0:');

for i:=1 to p do begin writeln(u13[i]:6:6);

end;

end;

begin { основная программа } writeln('Введите размерность матрицы А:');

readln(p);

wwodmatr;

wwodf;

wwodl;

wwodx;

scalf;

for i1:=1 to k3 do begin umnog;

scalx;

scalAx;

ttt;

rrr;

summ;

if (i1=k1) then begin for i:=1 to p do u1[i]:=y[i];

end;

if (i1=k2) then begin for i:=1 to p do u2[i]:=y[i];

end;

if (i1=k3) then begin for i:=1 to p do u3[i]:=y[i];

end;

for i:=1 to p do begin x[i]:=y[i];

end;

end;

writeln('искомый вектор u[',k1,']:');

for i:=1 to p do writeln(u1[i]:7:7);

readln;

writeln('искомый вектор u[',k2,']:');

for i:=1 to p do writeln(u2[i]:7:7);

readln;

writeln('искомый вектор u[',k3,']:');

for i:=1 to p do writeln(u3[i]:7:7);

readln;

for i:=1 to p do begin u4[i]:=(u3[i]-u2[i])/(u2[i]-u1[i]);

end;

max1:=u4[1];

for i:=2 to p do begin if u4[i]>max1 then max1:=u4[i];

end;

writeln('"гамма" равно - ',max1:5:5);

min1:=u4[1];

for i:=2 to p do begin if u4[i]

end;

writeln('"бетта" равно - ',min1:5:5);

t1:=(max1)/(1-max1);

t2:=(min1)/(1-min1);

for i:=1 to p do begin u5[i]:=u3[i]+t1*(u3[i]-u2[i]);

u6[i]:=u3[i]+t2*(u3[i]-u2[i]);

end;

writeln('точное решение заключено между следующими векторами:');

for i:=1 to p do begin writeln( ' ',u6[i]:15:15,' ',u5[i]:15:15);

end;

readln;

writeln('Теперь произведем улучшение полученных оценок.');

readln;

n:=p;

writeln('Введите координаты вектора u0:');

for i:=1 to n do begin readln(u0[i]);

u00[i]:=u0[i];

end;

k4:=k2-k1;

for i2:=1 to k4 do begin for i:=1 to n do begin s1:=0;

for j:=1 to n do begin s1:=a[i,j]*u00[j]+s1;

end;

u7[i]:=s1;

end;

for i3:=1 to n do u00[i3]:=u7[i3];

end;

for i:=1 to n do u8[i]:=u7[i]/u0[i];

min2:=u8[1];

for i:=2 to n do begin if u8[i]

end;

writeln('q0=',min2:3:3);

readln;

umnog2;

readln;

for i3:=1 to k4 do begin for i:=1 to n do begin s2:=0;

for j:=1 to n do begin s2:=a[i,j]*u9[j]+s2;

end;

u10[i]:=s2;

end;

for i:=1 to n do u9[i]:=u10[i];

end;

for i:=1 to n do u100[i]:=u10[i]/u0[i];

min3:=u100[1];

for i:=2 to n do begin if u100[i]

end;

writeln('q=',min3:5:5);

t3:=(min3)/((1-max1)*(1-min2));

for i:=1 to n do u11[i]:=t3*u0[i];

for i:=1 to n do begin u12[i]:=u5[i]-u11[i];

end;

for i4:=1 to k4 do begin for i:=1 to n do begin s3:=0;

for j:=1 to n do begin s3:=a[i,j]*u13[j]+s3;

end;

u14[i]:=s3;

end;

for i:=1 to n do u13[i]:=u14[i];

end;

for i:=1 to n do u140[i]:=u14[i]/u0[i];

min4:=u140[1];

for i:=2 to n do begin if u140[i]

end;

writeln('q1=',min4:6:6);

t4:=(min4)/((1-min1)*(1-min2));

for i:=1 to n do u15[i]:=t4*u0[i];

for i:=1 to n do begin u16[i]:=u6[i]+u15[i];

end;

writeln('После улучшения оценок получаем следующие векторы:');

for i:=1 to n do begin writeln(u16[i]:6:9,' ',u12[i]:6:9);

end;

readln;

end. end.

§10. “Гибрид” методов ускорения сходимости монотонных приближений к решению x* уравнения вида x = Ax + f и однопараметрического итеративного агрегирования. program wert;

{ uses printer;

} var lr,ch,ch1,zn,zn1,f,sn,sn1,sn2,sn3,z0,z01,z1,a1,a2,a00,b00,b0,u0,v0,u,v,p,q,p1,q1,u 1,v1: array[1..25] of real;

a: array[1..25,1..25] of real;

it,it1,h1,h2,h3,h11,h12,s,k,b,kt,k1,d0,d1,d01,d10,m01,m02,d02,d12,d012,d102,k0: real;

g,g2,t,t1,t2,t3,r,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11:real;

c,n1,i,j,n,x,hl,i1,l :integer;

procedure wwod;

var i,j:integer;

begin writeln('введите размерность матрицы A:');

readln(n);

writeln('Ввод элементов матрицы А:');

for i:=1 to n do begin for j:=1 to n do begin write('элемент A[',i,',',j,']=');

readln(a[i,j]);

end;

end;

writeln('Введите координаты свободного вектора f:');

for i:=1 to n do begin readln(f[i]);

end;

{ writeln('Введите координаты вектора z0 :');

for i:=1 to n do begin readln(z0[i]);

end;

} for i:=1 to n do lr[i]:=1;

end;

procedure byferr;

var i,j:integer;

begin for i:=1 to n do begin z01[i]:=z0[i];

{ writeln(u01[i]:4:4)} end;

end;

procedure umn;

var i,j: integer;

s: real;

begin for i:=1 to n do begin s:=0;

for j:=1 to n do begin s:=a[i,j]*z01[j]+s;

end;

a1[i]:=s;

end;

end;

procedure it_agr;

var i,j:integer;

begin for i:=1 to n do begin r:=0;

r1:=0;

for j:=1 to n do begin r:=a[i,j]*u0[j]+r;

r1:=a[i,j]*v0[j]+r1;

end;

sn[i]:=r;

sn1[i]:=r1;

end;

r2:=0;

r3:=0;

for i:=1 to n do begin r2:=sn[i]*lr[i]+r2;

r3:=sn1[i]*lr[i]+r3;

end;

r4:=0;

r5:=0;

for i:=1 to n do begin r4:=u0[i]*lr[i]+r4;

r5:=v0[i]*lr[i]+r5;

end;

g:=0;

for i:=1 to n do begin g:=f[i]*lr[i]+g;

end;

t:=g/(r4-r2);

t1:=g/(r5-r3);

for i:=1 to n do begin u[i]:=t*sn[i]+f[i];

v[i]:=(t1)*sn1[i]+f[i];

end;

end;

procedure otn;

var i,j:integer;

begin for i:=1 to n do begin zn[i]:=v0[i]-v[i];

ch[i]:=u[i]-u0[i];

end;

for i:=1 to n do begin p[i]:=ch[i]/zn[i];

end;

h2:=0;

for i:=1 to n do begin h2:=p[i]+h2;

end;

m01:=h2/n;

for i:=1 to n do begin q[i]:=zn[i]/ch[i];

end;

h3:=0;

for i:=1 to n do begin h3:=q[i]+h3;

end;

m02:=h3/n;

end;

begin { начало основной программы } wwod;

byferr;

writeln('Введите вектор u0:');

for i:=1 to n do begin readln(u0[i]);

end;

writeln('Введите вектор v0:');

for i:=1 to n do begin readln(v0[i]);

end;

writeln('Введите количество приближений:');

readln(x);

for l:=1 to x do begin it_agr;

otn;

for i:=1 to n do begin if (m01=-1) or (m02=-1) then begin u1[i]:=u[i];

v1[i]:=v[i];

writeln(l,':',u1[i]:11:8,' ',v1[i]:11:8);

writeln('деление на ноль');

end else begin u1[i]:=(u[i]+m01*v[i])/(1+m01);

v1[i]:=(v[i]+m02*u[i])/(1+m02);

writeln(l,':',u1[i]:11:8,' ',v1[i]:11:8);

{ writeln(lst,l,':',u1:11:8,' ',v1:11:8);

} end;

end;

for i1:=1 to n do begin u0[i1]:=u[i1];

v0[i1]:=v[i1];

end;

readln;

end;

end. program wert;

{ uses printer;

} var lr,ch,ch1,zn,zn1,f,sn,sn1,sn2,sn3,z0,z01,z1,a1,a2,a00,b00,b0,u0,v0,u,v,p,q,p1,q1,u 2,v2,u02,c72: array[1..25] of real;

a: array[1..25,1..25] of real;

it,it1,h1,h2,h3,h11,h12,s,k,b,kt,k1,d0,d1,d01,d10,m01,m02,d02,d12,d012,d102,m0 12,m022,u1,v1,k0:real;

g,g2,t,t1,t2,t3,r,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,h9,h10,h88,h99:real;

c,n1,i,j,n,x,hl,i1,l,dd :integer;

procedure wwod;

var i,j:integer;

begin writeln('введите размерность матрицы A:');

readln(n);

writeln('Ввод элементов матрицы А:');

for i:=1 to n do begin for j:=1 to n do begin write('элемент A[',i,',',j,']=');

readln(a[i,j]);

end;

end;

writeln('Введите координаты свободного вектора f:');

for i:=1 to n do begin readln(f[i]);

end;

writeln('Введите координаты вектора z0 :');

for i:=1 to n do begin readln(z0[i]);

end;

for i:=1 to n do lr[i]:=1;

end;

procedure byferr;

var i,j:integer;

begin for i:=1 to n do begin z01[i]:=z0[i];

{ writeln(u01[i]:4:4)} end;

end;

procedure umn;

var i,j: integer;

s: real;

begin for i:=1 to n do begin s:=0;

for j:=1 to n do begin s:=a[i,j]*z01[j]+s;

end;

a1[i]:=s;

end;

end;

procedure it_agr;

var i,j:integer;

begin for i:=1 to n do begin r:=0;

r1:=0;

for j:=1 to n do begin r:=a[i,j]*u0[j]+r;

r1:=a[i,j]*v0[j]+r1;

end;

sn[i]:=r;

sn1[i]:=r1;

end;

r2:=0;

r3:=0;

for i:=1 to n do begin r2:=sn[i]*lr[i]+r2;

r3:=sn1[i]*lr[i]+r3;

end;

r4:=0;

r5:=0;

for i:=1 to n do begin r4:=u0[i]*lr[i]+r4;

r5:=v0[i]*lr[i]+r5;

end;

g:=0;

for i:=1 to n do begin g:=f[i]*lr[i]+g;

end;

t:=g/(r4-r2);

t1:=g/(r5-r3);

for i:=1 to n do begin u[i]:=t*sn[i]+f[i];

v[i]:=(t1)*sn1[i]+f[i];

writeln(v[i]:3:3);

end;

end;

procedure otn;

var i,j:integer;

begin for i:=1 to n do begin zn[i]:=v0[i]-v[i];

ch[i]:=u[i]-u0[i];

end;

h2:=ch[1];

for i:=2 to n do begin if ch[i]

end;

h9:=zn[1];

for i:=2 to n do begin if zn[i]>h9 then h9:=zn[i];

end;

m01:=h2/h9;

h3:=zn[1];

for i:=2 to n do begin if zn[i]

end;

h10:=ch[1];

for i:=2 to n do begin if ch[i]>h10 then h10:=ch[i];

end;

m02:=h3/h10;

end;

procedure byferr2;

var i,j : integer;

begin for i:=1 to n do begin u2[i]:=u[i];

v2[i]:=v[i];

u02[i]:=u0[i];

c72[i]:=v0[i];

end;

end;

procedure it_agr2;

var i,j:integer;

begin for i:=1 to n do begin r6:=0;

r7:=0;

for j:=1 to n do begin r6:=a[i,j]*u02[j]+r6;

r7:=a[i,j]*c72[j]+r7;

end;

sn2[i]:=r6;

sn3[i]:=r7;

end;

r8:=0;

r9:=0;

for i:=1 to n do begin r8:=sn2[i]*lr[i]+r8;

r9:=sn3[i]*lr[i]+r9;

end;

r10:=0;

r11:=0;

for i:=1 to n do begin r10:=u02[i]*lr[i]+r10;

r11:=c72[i]*lr[i]+r11;

end;

g2:=0;

for i:=1 to n do begin g2:=f[i]*lr[i]+g2;

end;

t2:=(g2)/(r10-r8);

t3:=(g2)/(r11-r9);

for i:=1 to n do begin u2[i]:=(t2)*sn2[i]+f[i];

v2[i]:=(t3)*sn3[i]+f[i];

end;

end;

procedure otn2;

var i,j: integer;

begin for i:=1 to n do begin ch1[i]:=(u2[i]-u02[i]);

zn1[i]:=(c72[i]-v2[i]);

end;

h11:=ch1[1];

for i:=2 to n do begin if ch1[i]

end;

h88:=zn1[1];

for i:=2 to n do begin if zn1[i]>h88 then h88:=zn[i];

end;

m012:=h11/h88;

h12:=zn1[1];

for i:=2 to n do begin if zn1[i]

end;

h99:=ch1[1];

for i:=2 to n do begin if ch1[i]>h99 then h99:=ch1[i];

end;

m022:=h12/h99;

end;

begin { начало основной программы } wwod;

byferr;

writeln('Введите вектор u0:');

for i:=1 to n do begin readln(u0[i]);

end;

writeln('Введите вектор v0:');

for i:=1 to n do begin readln(v0[i]);

end;

it_agr;

otn;

writeln('Введите количество приближений:');

readln(x);

for i:=1 to n do begin writeln('приближение к ',i,'-ой координате вектора решения:');

byferr2;

m012:=m01;

m022:=m02;

for l:=1 to x do begin if (m012=-1) or (m022=-1) then begin u1:=u2[i];

v1:=v2[i];

writeln(l,':',u1:11:8,' ',v1:11:8);

writeln('деление на ноль');

end else begin u1:=(u2[i]+m012*v2[i])/(1+m012);

v1:=(v2[i]+m022*u2[i])/(1+m022);

writeln(l,':',u1:11:8,' ',v1:11:8);

end;

for dd:=1 to 4 do begin for i1:=1 to n do begin u02[i1]:=u2[i1];

c72[i1]:=v2[i1];

end;

it_agr2;

end;

otn2;

readln;

end;

end;

end.

Pages:     | 1 ||





© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

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