2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Помогите разобраться с задачей в Maple
Сообщение24.10.2018, 13:21 


02/01/18
22
Добрый день!!! Уважаемые знатоки форума
Помогите разобраться с задачей в Maple с методом вращения Якоби для собственных значениях
Я не очень понимаю это метод, как он работает, но нашел в инете прогу, там написана процедура, объясните пожалуйста как он работает
Код:
restart;
with(LinearAlgebra):
n:=10;
j:=1.5+0.1*n;
k:=n;
l:=n;
Jacobi:=proc(A::Matrix)
local n, a, i, j, p, c, s, G, r;
n:=RowDimension(A);
a:=[[0,0],0];
for i from 1 to n do
for j from i+1 to n do
if abs(A[i,j])>=abs(a[2]) then a:=[[i,j], A[i,j]] fi;
od; od;
r:=A[a[1,1],a[1,1]]-A[a[1,2],a[1,2]];
p:=`if`(r<>0,2*a[2]/r, infinity);
c:=evalf(cos(arctan(p)/2));
s:=evalf(sin(arctan(p)/2));
G:=Matrix(n,{op(subsop(a[1,1]=((a[1,1],a[1,1])=c), a[1,2]=((a[1,2],a[1,2])=c),[seq((i,i)=1, i=1..n)])), (a[1,1],a[1,2])=-s, (a[1,2],a[1,1])=s}); print(G); print(a);
Transpose(G).A.G;
end proc:
A:=Matrix([[j*10,0.5*j,0,0.2*l,0],[0.5*j,j,0.3*j,0,0.1*l],[0,0.3*j,10,-0.3*j,0.5*l],[0.2*k,0,-0.3*j,j,-0.1*j],[0,0.1*k,0.5*k,-0.1*k,j*10]]);
(Jacobi@@20)(A);
Eigenvalues(A);

а именно: что выводит a:=[[0,0],0] и r:=A[a[1,1],a[1,1]]-A[a[1,2],a[1,2]]?
if abs(A[i,j])>=abs(a[2]) then a:=[[i,j], A[i,j]] fi; и почему именно a[2]?
я предполагаю, что 1) a:=[[0,0],0] первые две координаты [0,0] выводят номер строки и номер столбца максимального по модулю элемента А, а вот третья координата: мое предположение: угол поворота(если это не так, исправьте меня)
2) r это выражение, стоящее в знаменателе, когда ищем нужный угол для поворота. Например, если оказалось, что a=[[2,3],7] , то r=A[2,2]-A[3,3] , а A[2,3]=7
на третий вопрос, если я правильно понимаю: он сравнивает второй элемент

 Профиль  
                  
 
 Posted automatically
Сообщение24.10.2018, 22:26 
Заслуженный участник


09/05/12
25179
 i  Тема перемещена из форума «Околонаучный софт» в форум «Карантин»
по следующим причинам:

- отсутствуют собственные содержательные попытки ответа на вопрос.

Исправьте все Ваши ошибки и сообщите об этом в теме Сообщение в карантине исправлено.
Настоятельно рекомендуется ознакомиться с темами Что такое карантин и что нужно делать, чтобы там оказаться и Правила научного форума.

 Профиль  
                  
 
 Posted automatically
Сообщение25.10.2018, 15:16 
Заслуженный участник


09/05/12
25179
 i  Тема перемещена из форума «Карантин» в форум «Околонаучный софт»

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group