Учитывая количество полиномов с коэффициентами, сохраненными в матрицах, каков самый быстрый / самый эффективный способ найти корни каждого полинома.
например. У меня есть 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. У кого-нибудь еще есть идеи по этому поводу?