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