Как я могу эффективно найти корни нескольких полиномов, где коэффициенты хранятся в матрицах? - PullRequest
0 голосов
/ 24 марта 2020

Учитывая количество полиномов с коэффициентами, сохраненными в матрицах, каков самый быстрый / самый эффективный способ найти корни каждого полинома.

например. У меня есть p = m * n полиномов, где коэффициенты каждого из членов полинома хранятся в элементе (i, j) каждой из матриц A, B, C, D & E, где все матрицы имеют размер mxn и:

Ax ^ 4 + Bx ^ 3 + Cx ^ 2 + Dx + E = 0

Я хотел бы найти корни каждого уравнения и в идеале сохранить их в 4 новых матрицы, например R1, R2, R3 и R4, все размером mx n.

В настоящее время я использую следующее l oop для достижения этой цели:

for i = 1:m
  for j = 1:n
    R=roots([A(i,j),B(i,j),C(i,j),D(i,j),E(i,j)]);
    R1(i,j)=R(1);
    R2(i,j)=R(2);
    R3(i,j)=R(3);
    R4(i,j)=R(4);
  endfor
endfor

Этот метод медленно для большого p, и я хотел бы улучшить время выполнения, если это возможно. Я видел один поток , который обсуждает это в некоторых деталях и приходит к выводу, что векторизация (я не полностью понял процесс, который они использовали для этого) не быстрее, чем циклы basi c. У кого-нибудь еще есть идеи по этому поводу?

...