Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.06.2013, 18:20
Новичок на форуме
Отправить личное сообщение для harold Посмотреть профиль Найти все сообщения от harold
 
Регистрация: 20.06.2013
Сообщений: 8

Возведение матрицы в степень
Подскажите как возвести матрицу в натуральную степень?

В задании только "великая" подсказка A^n=A*A*...*A (n-раз).
Уверен есть js библиотека для работы с матрицами, но никак не найду
Ответить с цитированием
  #2 (permalink)  
Старый 24.06.2013, 18:51
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

http://habrahabr.ru/post/148901/
Ответить с цитированием
  #3 (permalink)  
Старый 24.06.2013, 19:16
Новичок на форуме
Отправить личное сообщение для harold Посмотреть профиль Найти все сообщения от harold
 
Регистрация: 20.06.2013
Сообщений: 8

Сообщение от Deff Посмотреть сообщение
http://habrahabr.ru/post/148901/

понял только, что в статье рассматриваются единичные или почти единичные матрицы, а нужно для любых.
Ответить с цитированием
  #4 (permalink)  
Старый 24.06.2013, 19:47
Аватар для Demath
Профессор
Отправить личное сообщение для Demath Посмотреть профиль Найти все сообщения от Demath
 
Регистрация: 22.06.2012
Сообщений: 168

Сначала составляете функцию перемножения двух матриц, затем рекурсивно умножаете матрицу на саму себя.


function multMatrix(A,B)
{   
    var rowsA = A.length,
        rowsB = B.length,
        colsB = B[0].length,
        C = [];

    for (var i=0; i<rowsA; i++)
     { C[i] = new Array(colsB); }

    for (var k=0; k<colsB; k++)
     { for (var i=0; i<rowsA; i++)
        { var temp = 0;
          for (var j=0; j<rowsB; j++)
           { temp += A[i][j]*B[j][k]; }
          C[i][k] = temp;
        }
     }

    return C;
}

function MatrixPow(n,A)
{  
   if (n==1) return A;
   else return multMatrix(A,MatrixPow(n-1,A));
}
Ответить с цитированием
  #5 (permalink)  
Старый 27.06.2013, 00:01
Новичок на форуме
Отправить личное сообщение для harold Посмотреть профиль Найти все сообщения от harold
 
Регистрация: 20.06.2013
Сообщений: 8

Demath,
спасибо, выручили!
умножение двух матриц у меня получилось почти также, но рекурсию не осилил бы, не понимаю ее (

помогите еще с LU-разложением матрицы
Ответить с цитированием
  #6 (permalink)  
Старый 29.06.2013, 02:24
Аватар для Demath
Профессор
Отправить личное сообщение для Demath Посмотреть профиль Найти все сообщения от Demath
 
Регистрация: 22.06.2012
Сообщений: 168

Сообщение от harold
помогите еще с LU-разложением матрицы
Например так

<script>
function LU(A)
{ 
    var n = A.length, L = [], U = A;

    for (var i=0; i<n; i++)
     { L[i] = [];
       for (var j=0; j<n; j++) L[i][j] = 0;      
     }

    for (var i=0; i<n; i++)
     { for (var j=i; j<n; j++)
         L[j][i] = U[j][i]/U[i][i];
     }
    
    for (var k=1; k<n; k++)
     { for (var i=k-1; i<n; i++)
        { for (var j=i; j<n; j++)
              L[j][i] = U[j][i]/U[i][i];
        }
       for (var i=k; i<n; i++)
        { for (var j=k-1; j<n; j++)
              U[i][j] -= L[i][k-1]*U[k-1][j];
        }
     }

    return [L,U];
}
</script>

<button onclick="a = LU([[11,21,5],[2,7,-5],[13,-19,17]]);
document.write('A = <br>'+[[11,21,5],[2,7,-5],[13,-19,17]].join('<br>')
+'<br><br>L = <br>'+a[0].join('<br>')+'<br><br>U = <br>'+a[1].join('<br>') )">
Пример для A = [[11,21,5],[2,7,-5],[13,-19,17]]</button>

Последний раз редактировалось Demath, 29.06.2013 в 15:18.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
возведение числа в степень BpArCuCTeMbI Общие вопросы Javascript 15 09.06.2014 02:07
Возведение в очень большую степень. satan Общие вопросы Javascript 0 25.10.2012 18:21
считывание матрицы StelZ Общие вопросы Javascript 3 11.05.2012 23:00
Матрица JS запись и чтение из матрицы greg_zel Общие вопросы Javascript 9 04.05.2012 19:55
Поменять элемент матрицы при нажатии кнопки в другом фрейме Alexiy Общие вопросы Javascript 1 09.11.2011 10:49