Линейные преобразования собственных чисел и собственных векторов матриц
Порядок нахождения собственных чисел и собственных векторов матриц. Проведение аналитического решения в виде разложения по биортогональной системе собственных векторов. Построение графиков по результатам. Анализ тестирования программы в Paskal ABC.NET.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 26.02.2012 |
Размер файла | 36,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Факультет Технической Кибернетики
СПбГПУ (Политех)
2083/2
Лабораторная работа
по линейному программированию
Дифференциальные системы
Преподаватель
Окорочков С.Н.
Студент
Барышников Ю.С.
Задана линейная дифференциальная система и поставлена задача Коши:
I. Построить характеристическое уравнение и найти собственные числа и правые и левые собственные векторы матрицы. Получить аналитическое решение системы в виде разложения по биортогональной системе собственных векторов.
II. Написать программу интегрирования системы методом:
)
Вычислительный эксперимент состоит в:
Анализе точностных характеристик заданного метода по сравнению с аналитическим решением и решением, которое дает программа RKF45. Шаг для интегрирования заданным методом выбрать по норме:
h выбрана 0.05, то что модуль суммы последней строки самой большой матрицы дает около 40, h=2/40=0.05, затем был составлен алгоритм программы расчета интегрирования предложенным методом
1) dz [i] = A[i,j]*z[i]+B[i]
2) z5/6[i]=z[i]+5h/6*dz[i]
3) dz5/6[i]=A[i,j]*z5/6[i]+B[i]
4)z(n+1)= z[i]+h/5*(2*dz[i]+3*dz5/6[i])
Программа тестировалась в Paskal ABCNET, по сути своей это программа перемножения матриц, и умножение матриц на число. Программа выполняет цикл, который приводит решение к целому значению чисел.
program t11;
label 1,2;
const h=0.05;
var z: array [1..3] of real;
a: array [1..3,1..3] of integer;
b: array [1..3] of integer;
f1: real; f2: real; f3: real;
dz1: real; dz2: real; dz3: real;
dzz1:real; dzz2: real;dzz3: real;
z561:real; z562: real; z563:real;
az561:real; az562:real; az563:real;
dz561:real; dz562:real; dz563:real;
dz21:real; dz22:real;dz23:real;
zn1:real; zn2:real; zn3:real; t: real;
begin
z[1]:=0; z[2]:=-1; z[3]:=-2;
a[1,1]:=-14; a[1,2]:=-5; a[1,3]:=-5;
a[2,1]:=10; a[2,2]:=-4; a[2,3]:=5;
a[3,1]:=10; a[3,2]:=-5; a[3,3]:=-24;
b [1]:=-18; b[2]:=19; b[3]:=49; {chtoby programma sama ostanavlivalas' mogno t:=0 suda postavit, a nige t:=0 udalit'}
1: f1:=a[1,1]*z[1]+ a[1,2]*z[2]+a[1,3]*z[3];
f2:=a[2,1]*z[1]+a[2,2]*z[2]+a[2,3]*z[3];
f3:=a[3,1]*z[1]+a[3,2]*z[2]+a[3,3]*z[3];
dz1:=f1+b[1]; dz2:=f2+b[2]; dz3:=f3+b[3];
dzz1:= dz1*5*h/6; dzz2:=dz2*5*h/6; dzz3:=dz3*5*h/6;
z561:=z[1]+dzz1; z562:=z[2]+dzz2; z563:=z[3]+dzz3;
az561:=a[1,1]*z561+ a[1,2]*z562+a[1,3]*z563;
az562:=a[2,1]*z561+a[2,2]*z562+a[2,3]*z563;
az563:=a[3,1]*z561+a[3,2]*z562+a[3,3]*z563;
dz561:=az561+b[1];dz562:=az562+b[2]; dz563:=az563+b[3];
dz21:=2*dz1; dz22:=2*dz2; dz23:=2*dz3;
zn1:=(dz21+3*dz561)*h/5+z[1]; zn2:=(dz22+3*dz562)*h/5+z[2]; zn3:=(dz23+3*dz563)*h/5+z[3];
writeln ('pervaja stroka matricy zn1=',zn1,'vtoraja stroka matricy zn2=', zn2, 'tretija stroka matricy zn3=',zn3);
t:=0 {postavil suda chtoby bysree avtomaticheski priiti k celomu znacheniiu otvetov, programma
ostanavlivartsya v ruchuiu stopom}; t:=t+h; z[1]:= zn1; z[2]:= zn2; z[3]:= zn3;
if t<3.1 then goto 1 else goto 2; {t<3.1, eto chtoby poluchit` celye chisla, esli t:=0 postavit` pered label ``1:``, polucheno metodom podgonki}
2:end.
Получились такие значения строк
-0,81625 0,185 -0,0787499999999
-1,3690359375 0,7941375 0,6078546875
-1,69596584570313 1,0585409140625 0,837493001953125
-1,871415946149 1,1430955284375 0,911280735612793
-1,9948818972985 1,11981246613026 0,951733949611487
-2,00846883168722 1,088137837559 0,962760453077679
-2,00997993469209 1,0399163895294 0,980282732023268
-2,00757005848419 1,01570441268653 0,991032508323399
-2,00349555834383 1,00950987621847 0,994216401022802
-2,00222552639737 1,00565450167541 0,996358216393823
-2,00137618385714 1,00330994438758 0,99775365299974
-2,00083140112981 1,00191130572216 0,998638984131493
-2,00049272026325 1,00109047520105 0,99918823999162
-2,00028729100031 1,00061551752581 0,999522523966155
-2,00016517138077 1,00034409044009 0,999722615593287
-2,00009379602139 1,00019068303602 0,999840646387905
-2,00005268268103 1,00010483547754 0,999909373956193
-2,00002930060611 1,00005722353517 0,999948931371204
-2,00000883240047 1,00001672844787 0,999984174804056
-2,00000479465346 1,00000897028516 0,999991285563664
-2,00000258559066 1,0000047875436 0,999995231856807
-2,00000138601832 1,0000025447149 0,999997406251369
-2,00000073902715 1,0000013478961 0,999998596492034
-2,0000003922019 1,00000071194407 0,999999244132526
-2,00000020729965 1,0000003752329 0,999999594626751
-2,00000010919927 1,00000019748209 0,999999783388866
-2,00000005736943 1,00000010385898 0,999999884610689
-2,00000003008189 1,00000005462303 0,99999993868605
-2,00000001575561 1,00000002875091 0,999999967482333
-2,00000000824949 1,00000001515636 0,999999982776929
-2,00000000432164 1,00000000800782 0,999999990884022
-2,0000000022671 1,00000000424317 0,999999995175301
-2,00000000119194 1,0000000022561 0,999999997445052
-2,00000000062855 1,00000000120431 0,99999999864543
-2,00000000033269 1,00000000064557 0,999999999280592
-2,00000000017685 1,00000000034757 0,999999999617063
-2,00000000009445 1,00000000018795 0,999999999795614
-2,0000000000507 1,00000000010207 0,99999999989058
-2,00000000002735 1,00000000005565 0,999999999941227
-2,00000000001483 1,00000000003045 0,999999999968322
-2,00000000000808 1,00000000001671 0,999999999982866
-2,00000000000442 1,0000000000092 0,99999999990702
-2,00000000000243 1,00000000000507 0,999999999994938
-2,00000000000134 1,0000000000028 0,999999999997236
-2,00000000000074 1,00000000000155 0,999999999998487
-2,00000000000041 1,00000000000086 0,99999999999917
-2,00000000000023 1,00000000000047 0,999999999999544
-2,00000000000013 1,00000000000026 0,999999999999749
-2,00000000000007 1,00000000000015 0,999999999999862
-2,00000000000004 1,00000000000008 0,999999999999924
-2,00000000000002 1,00000000000004 0,999999999999958
-2,00000000000001 1,00000000000002 0,999999999999977
-2,00000000000001 1,00000000000001 0,999999999999987
-2 1,00000000000001 0,999999999999993
-2 1 0,999999999999996
-2 1 0,999999999999998
-2 1 0,999999999999999
-2 1 0,999999999999999
-2 1 1
В программе Excel был построен график по этим результатам.
До этого был построен график по программке, где не было задания цикла, и графики не сходились к целым значениям, цикл вбивался в ручную, при котором, на некоторых не целых значениях он останавливался и к целым значениям не хотел идти. вектор матрица собственный число
А при задании цикла это удалось достигнуть, постепенно графики идут к целым значениям, быстрота прихода к ним зависит от выбора шага h, но не во всех выбранных значениях h, при некоторых, программа давала ошибочные значения (не возможность расчета из-за больших параметров при прохождении циклов) или просто давала слишком большие цифры и останавливалась.
Размещено на Allbest.ru
Подобные документы
Понятие алгебраической кратности собственного значения. Вычислительные методы собственных значений и собственных векторов. Программное обеспечение некоторых алгоритмов их нахождения. Программы на языке С++. Разработка М-файлов для системы MatLab.
реферат [286,5 K], добавлен 23.04.2012Нахождение собственных чисел и собственных векторов в связи с широкой областью использования краевых, начально-краевых и спектральных задач в науке и технике. Методы вычисления спектральных характеристик Леверье–Фаддеева, А.Н. Крылова и А.М. Данилевского.
курсовая работа [2,1 M], добавлен 22.09.2014Нахождение собственных чисел и разработка фундаментальной системы решений. Построение фундаментальной матрицы методом Эйлера. Зависимость Жордановой формы матрицы А от ее собственных чисел. Решение задачи Коши. Построение фазового портрета в MATLAB.
курсовая работа [1,4 M], добавлен 20.12.2013Рассмотрение основных особенностей компьютерной программы Assembler: функции, структурное описание. Характеристика собственных векторов обработчиков прерываний. Div64 как функция-вычислитель, реализующая операцию деления знаковых чисел в формате 64:16.
контрольная работа [224,7 K], добавлен 11.03.2013Анализ прямого метода Данилевского нахождения собственных векторов практически любой матрицы. Возможность применения этого метода в современном программировании, и так же области науки, где пользоваться методом Данилевского было бы очень удобно.
курсовая работа [198,2 K], добавлен 13.05.2008Элементарные функции: тригонометрические и экспоненциальные, для определения округлений и остатков, размерности и размера матриц, задания одномерных и дву- массивов, векторов-столбцов и векторов-строк, удаления строк и столбцов, перестановки элементов.
презентация [139,0 K], добавлен 24.01.2014Особенности работы с массивами с помощью MS Excel. Вычисление определителей матриц, произведения матриц и матрицы на вектор. Скалярное произведения найденных векторов. Поиск обратных матриц. Решение системы линейных уравнений, проверка найденных решений.
лабораторная работа [270,9 K], добавлен 05.06.2015Составление алгоритмов и написание программ циклической структуры с использованием векторов, указателей и векторов указателей на вектор на языке C++. Статическое и динамическое распределение памяти. Функция ввода и обработки элементов вектора или матрицы.
контрольная работа [210,5 K], добавлен 25.03.2015Зарождение и развитие системы MatLab. Порядок выполнения простых вычислений. Построение логической области в графическом окне. Работа с символьными массивами. Написание функции, выполняющей требуемое задание для матриц и векторов любой размерности.
отчет по практике [761,4 K], добавлен 21.10.2015Краткая характеристика пакета Mathcad, описание простейших примеров работы с ним, примеры решения основных задач элементарной математики. Компьютерные технологии решения математических задач и символьных вычислений. Образование векторов и матриц.
дипломная работа [621,1 K], добавлен 11.03.2011