フィルターのクリア

How to accelerate matrix calculation with matlab?

1 回表示 (過去 30 日間)
imed NASRI
imed NASRI 2014 年 1 月 7 日
編集済み: imed NASRI 2014 年 1 月 8 日
I have 40800 linear sparse equations that have the following forms:
F(1)=2*x(1)+x(2)-10;
F(2)=x(9)+3*x(10)-7;......
F(40800)=x(40200)-x(1)+....-10;
I want to convert these equations to matrices by evaluating them at the columns of speye(N);
N=40200; %the number of variables
E=speye(N,N+1);
columns=cell(1,N);
beq=-evaluate_equations(E(:,N+1));
for i=1:N
columns{i}=evaluate_equations(E(:,i))+ beq;
end
Aeq=cell2mat(columns);
full(Aeq),
full(beq),
function F=evaluate_equations(x)
F(1)=2*x(1)+x(2)-10;
F(2)=x(9)+3*x(10)-7;......
F(40800)=x(40200)-x(1)+....-10;
F=F(:); %column vector
But Matlab is very slow. It can not build the matrices. However i use 8 workers to accelerate the computing. Have you an idea to overcome this problem? Thanks.

回答 (1 件)

Walter Roberson
Walter Roberson 2014 年 1 月 7 日
If they are sparse linear equations, could you not code them as a matrix multiplication in the first place? If you did that you could also skip the "for i" loop and do it as a single matrix multiplication.
  4 件のコメント
imed NASRI
imed NASRI 2014 年 1 月 8 日
編集済み: imed NASRI 2014 年 1 月 8 日
I generate my equations using a matlab code. Equations are generated in a text file using fprintf. Then i copy them into an other m file to generate the desired matrices Aeq and beq into an other text file(the code that I have posted above)
imed NASRI
imed NASRI 2014 年 1 月 8 日
編集済み: imed NASRI 2014 年 1 月 8 日
Aeq and beq are unknown. I have to generate them from equations:
F(1)=2*x(1)+x(2)-10;
F(2)=x(9)+3*x(10)-7;......
F(40800)=x(40200)-x(1)+....-10;
such that we have the following matrix form:
Aeq*x=beq
So, I would like to get my generated matrice Aeq and beq and save them to a text file because i will call them after in the ga() solver

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSolver Outputs and Iterative Display についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by