русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Працюючи в C++, для позначення тексту, що виводиться на екран, ви завжди повинні використовувати лапки.


Дата додавання: 2013-12-23; переглядів: 1426.


Метод вращения

Главное собственное число

 

Пусть А=(aij) – симметричная матрица. Метод максимизации столбцов дает следующее:

Перемножим равенства:

максимальное собственное число матрицы A2 (из метода максимизации).

λ=±b – главное собственное число симметричной матрицы А.

 

 

Рассмотрим симметричную матрицу А=(аij). Обозначим ортогональную матрицу вращения Upq(α):

uqq = upp= c =cosα, -upq = uqp= -s = - sinα, остальные диагональные элементы равны 1, а недиагональные – нулю.

Рассморим вращение матрицы в плоскости Opq:

Матрица В=AUpq отличается от А столбцами bp и bq:

bp=c·ap+s·aq

bq= -s·ap+c·aq

bj=aj, j≠p,q

Матрица отличается от В р-ой и q-ой строками:

dpj=c·bpj+s·bqj

dqj= -s·bpj+c·bqj

Остальные строки не изменяют.

Тогда,

Разобьем S на диагональную и недиагональную части:

Заметим:

При элементарном вращении D недиагональные элементы аpi, aqi и аip, aiq (i≠p,q) меняются так, что попарные суммы квадратов их модулей сохраняются.

Кроме этих элементов вне диагонали меняется элемент аpq.

Т.е. величина S2 меняется при элементарном вращении настолько, насколько изменится |apq|2.

Будем подбирать вращения так, чтобы S2 максимально уменьшалась.

Положим dpq=0:

dpq=c·bpq+s·bqq=c(-s·app+c·apq)+s(-s·aq p+c·aqq)=

α выберем следующим образом:

1) при аpp cos2α=0 => α=π/4

2) иначе

 

 

Оформлення програм на C++

Для того, щоб не лише|не тільки| ви, але і інші могли розібратися у ваших програмах, потрібно дотримуватися деяких правил. Один із способів - вставка коментарів. Вони ігноруються і|та| не впливають на роботу програми. Враховуйте, що об'єм|обсяг| і|та| складність ваших програм будуть увесь час|весь час| рости|зростати|.

У C++ перед коментарям ставиться подвійна коса риска (//), увесь текст за якою в рядку розглядається|розглядує| як коментар.

Наприклад, після додавання|добавляти| коментарів наша перша програма виглядатиме таким чином:

//********************************************************

// Програма C_Sal.CPP

//

// Ця програма показує на екрані гімнаста

// Складена Paulo Franca, 21.08.2011

// Останнє доопрацювання|доробка| 21.08.2011

//

//********************************************************

#include "franca.h"

athlete Sal; // Оголошуємо Сэла як гімнаста

void mainprog() // Початок|начало| програми

{

Sal. readyO; // Наказуємо Сэлу встати|постати| в позицію

// готовності

Sal.say("Hi"!); // Наказуємо Сэлу сказати "Hi"!

} // Кінець програми

 

Якщо текст не поміщається на одному рядку, просто скористайтеся наступною|слідуючою|, як це зроблено після інструкції Sal.ready().

Коментарі можуть знаходитися|перебувати| як на початку рядка, так і в будь-якому іншому місці.

Як видно|показний|, усі коментарі зрушені управо|вправо|. Так простіше визначити, де починаються і|та| де закінчуються дії. Використовуйте таку ж структуру для запису програмних|програмових| інструкцій (зверніть увагу, що усередині|всередині| фігурних дужок усі інструкції також зрушені управо|вправо|).

 

Поняття послідовності

Щоб виконати завдання|задачу|, необхідно|треба| пояснити комп'ютеру усе, що ми хочемо зробити.

Алгоритм - це точний і|та| детальний|докладний| опис виконання завдання|задавання|, яке може бути написане на будь-якій мові|язиці|.

Послідовний алгоритм - виконання дій послідовно, одна за іншою.

Програма - це алгоритм, записаний в зрозумілій комп'ютеру формі.

 

Послідовні кроки

Перед написанням програми необхідно|треба| чітко визначитися з|із| тим, що збираєтеся робити|чинити|.

Ви ніколи не поясните, де знаходиться|перебуває| станція метро, якщо самі цього не знаєте.

Інструкції Сэлу

† Примусимо Сэла виконати декілька вправ: ready, up, ready

При цьому треба враховати:

- На кожному рядку може бути тільки|лише| одна інструкція.

- Після інструкції ставиться крапка з комою.

- Переконаєтеся, що в повідомлення|сполучення| Сэлу входить ім'я об'єкту, крапка, ім'я повідомлення|сполучення| і|та| круглі дужки. Наприклад, Sal.right(), Sal.left() і|та| т. д.

Результат - Сел піднімає|підіймає| руки вгору|угору|, а потім опускає їх вниз.

† Реалізувати наступну|таку| послідовність повідомлень|сполучень| :

ready

up

left

up

ready

up

right

up

ready

Якщо ви правильно складете ці програми, то побачите, як вправляється Сел.

Ви повинні утямити собі характер роботи комп'ютера, який послідовно переглядає|проглядає| і|та| виконує ваші інструкції.

 

Домашнє|хатнє| завдання|задавання|

1. Зміните|зраджуватимете| попередню програму так, щоб виконання вправ стало повільніше. Для цього вставте число, наприклад 5, всередину дужок відповідних повідомлень|сполучень| ready, up, left, right.

2. Зміните|зраджуватимете| програму так, щоб прискорити виконання вправ. Для цього вставте в дужки 0.

3. Зміните|зраджуватимете| програму C_SAL.CPP так, щоб Сел говорив "Sal" замість "Hi"!.

4. Оголосите на додаток до об'єкту Sal ще один об'єкт, наприклад Sally (Салі), і|та| нехай|хай| кожен об'єкт повідомить своє ім'я.

5. Змусьте|примусьте| Сэла, а потім і|та| Салі виконати наступні|такі| вправи: ready, up, left, up, right, up, ready.

6. Змусьте|примусьте| Сэла по ходу виконання вправ говорити, яку вправу він робить|чинить| (ready, up, left, up, right, up, ready).


<== попередня лекція | наступна лекція ==>
Шестопалов С.В. | Вихідні дані.


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн