Линейные преобразования собственных чисел и собственных векторов матриц

Порядок нахождения собственных чисел и собственных векторов матриц. Проведение аналитического решения в виде разложения по биортогональной системе собственных векторов. Построение графиков по результатам. Анализ тестирования программы в 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.