Here is a slightly more comprehensible form of the power method code I posted yesterday. It will correctly calculate the principal eigenvectors in Coyle's paper.
mp=:+/ . * normalize=:%(>./@:|) iterate=:normalize@:mp init=:[: ? # # 0: power=:13 : 'y.&iterate^:_ init y.' rod=. >(1,(%3),%9);(3,1,%3);9 3 1 NB. "Replication of detail", p. 7 (%+/) power rod 0.0769231 0.230769 0.692308 0.077 0.231 0.692 NB. Coyle Tarmo Veskioja wrote: > Bill, > > I can reproduce Coyle's results (see 'm weigh_iter 5') if I use the > first iteration of finding the right eigenvector - this has been the > tradition in AHP, at least in the early days. Interesting. Is this because of technical limitations or a philosophical perspective? > There are ongoing discussions between using inexact vs exact weights and > between using left or right eigenvectors. Saaty prefers right > eigenvector. If the pairwise comparisons have been made by people, then > the differences (exact / inexact, left/right) are usually so small that > the results are more sensitive to subjective assessments. > Whether you should be looking at left or right eigenvectors depends basically on whether you think of your matrices multiplying on the left or right. In any case, the left eigenvalues of A are the right eigenvalues of |:A, so you don't need a separate method. > I have added a verb for calculating the exact error of each pairwise > comparison and a verb for "correcting" pairwise comparisons. If the > pairwise comparisons have been made by people, then the same people > should usually correct their mistakes and automatic correction should be > prohibited. > > Anyways, the real fun begins with incomplete comparison matrices. > > Hope this helps, > Tarmo > Thanks. John ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
