⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svdsum

📁 求矩阵奇异分解svd算法
💻
📖 第 1 页 / 共 3 页
字号:
         echo -n "|      -        " >> $output      else if ($programfiles[1] =~ las1 || $programfiles[1] =~ las2) then          grep "NO. MULT. BY TRANSPOSE" $coutputfile | awk '{printf ("| %-13s ", $7) >> "'$output'" }'      else if ($programfiles[1] =~ sis1 || $programfiles[1] =~ sis2) then          grep "MXV" $coutputfile | awk '{printf ("| %-13s ", $4) >> "'$output'" }'      else if ($programfiles[1] =~ tms1 || $programfiles[1] =~ tms2) then          grep "MULTIPLICATIONS BY A^T" $coutputfile | awk '{printf ("| %-13s ", $6) >> "'$output'" }'      else         grep "NO. MULT. BY TRANSPOSE" $coutputfile | awk '{printf ("| %-13s ", $7) >> "'$output'" }'      endif      @ c++	  shift programfiles    end    echo "|" >> $output    echo -n "+--------------------------" >> $output    foreach item ($datafiles)       echo -n "----------------" >> $output    end    echo "+" >> $output    echo -n "|  LEFT  END OF INTERVAL  |" >> $output    @ c = 1 + ($count * 5)    foreach file ($datafiles)       set coutputfile = $file.out$id[$c]       set value = `grep "LEFT  END OF THE INTERVAL" $coutputfile | awk '{printf ("%-13s ", $8) }'`       if ($value !~ -[0-9]*) then	      set endlerror = `grep -c 'ENDL MUST BE LESS THAN ENDR' $coutputfile`		  if ($endlerror == 1) then             echo -n "|   ERROR 8   " >> $output             set error8 = 1             set endlerror = 0          else             echo -n "|      -        " >> $output          endif       else          grep "LEFT  END OF THE INTERVAL" $coutputfile | awk '{printf ("| %-13s ", $8) >> "'$output'" }'       endif       @ c++    end    echo "|" >> $output    echo -n "|  RIGHT END OF INTERVAL  |" >> $output    @ c = 1 + ($count * 5)    foreach file ($datafiles)       set coutputfile = $file.out$id[$c]       set value = `grep "RIGHT END OF THE INTERVAL" $coutputfile | awk '{printf (" %-13s ", $8) }'`       if ($value !~ [-0-9]*) then          echo -n "|      -        " >> $output       else          grep "RIGHT END OF THE INTERVAL" $coutputfile | awk '{printf ("|  %-12s ", $8) >> "'$output'" }'       endif       @ c++    end    echo "|" >> $output    echo -n "+--------------------------" >> $output    foreach item ($datafiles)       echo -n "----------------" >> $output    end    echo "+" >> $output    echo -n "|    INITIAL BLOCKSIZE    |" >> $output    @ c = 1 + ($count * 5)    set programfiles = `echo $programlist`    while ($#programfiles > 0)       set coutputfile = $programfiles[1].out$id[$c]       shift programfiles       if ($programfiles[1] =~ sis1 || $programfiles[1] =~ sis2) then          set value = `grep "INITIAL SUBSPACE" $coutputfile | awk '{printf ("%-13s ", $6) }'`       else if ($programfiles[1] =~ tms1 || $programfiles[1] =~ tms2) then          set value = `grep "INITIAL SUBSPACE" $coutputfile | awk '{printf ("%-13s ", $6) }'`       else          set value = `grep "INITIAL BLOCKSIZE" $coutputfile | awk '{printf ("%-13s ", $5) }'`       endif       if ($value !~ [0-9]*) then          set blockerror = `grep -c 'INITIAL BLOCK SIZE MUST BE GREATER THAN 1' $coutputfile`          if ($blockerror == 1) then             echo -n "|   ERROR 2    " >> $output			 set error2 = 1	         set blockerror = 0          else             echo -n "|      -        " >> $output          endif       else if ($programfiles[1] =~ sis1 || $programfiles[1] =~ sis2) then	      grep "INITIAL SUBSPACE" $coutputfile | awk '{printf ("| %-13s ", $6) >> "'$output'" }'       else if ($programfiles[1] =~ tms1 || $programfiles[1] =~ tms2) then	      grep "INITIAL SUBSPACE" $coutputfile | awk '{printf ("| %-13s ", $6) >> "'$output'" }'       else	      grep "INITIAL BLOCKSIZE" $coutputfile | awk '{printf ("| %-13s ", $5) >> "'$output'" }'                  endif       @ c++       shift programfiles       end       echo "|" >> $output    echo -n "|     FINAL BLOCKSIZE     |" >> $output    @ c = 1 + ($count * 5)    set programfiles = `echo $programlist`    while ($#programfiles > 0)       set coutputfile = $programfiles[1].out$id[$c]       shift programfiles       if ($programfiles[1] =~ sis1 || $programfiles[1] =~ sis2) then          set value = `grep "FINAL   SUBSPACE"   $coutputfile | awk  '{printf ("%-12s  ", $6) }'`       else if ($programfiles[1] =~ tms1 || $programfiles[1] =~ tms2) then          set value = `grep "FINAL   SUBSPACE"   $coutputfile | awk  '{printf ("%-12s  ", $6) }'`       else          set value = `grep "FINAL   BLOCKSIZE" $coutputfile | awk '{printf ("%-13s ", $5) }'`       endif       if ($value !~ [0-9]*) then          echo -n "|      -        " >> $output       else if($programfiles[1] =~ sis1 || $programfiles[1] =~ sis2) then          grep "FINAL   SUBSPACE" $coutputfile | awk '{printf ("| %-12s  ", $6) >> "'$output'" }'       else if($programfiles[1] =~ tms1 || $programfiles[1] =~ tms2) then          grep "FINAL   SUBSPACE" $coutputfile | awk '{printf ("| %-12s  ", $6) >> "'$output'" }'       else          grep "FINAL   BLOCKSIZE" $coutputfile | awk '{printf ("| %-13s ", $5) >> "'$output'" }'       endif       @ c++       shift programfiles    end    echo "|" >> $output    echo -n "| MAXIMUM SUBSPACE BOUND  |" >> $output	@ c = 1 + ($count * 5)	foreach file ($datafiles)	set coutputfile = $file.out$id[$c]	set value = `grep "MAXIMUM SUBSPACE BOUND" $coutputfile | awk '{printf ("%-13s ", $6) }'`	if ($value !~ [0-9]*) then        set suberror = `grep -c 'MAXIMUM SUBSPACE DIMENSION IS INVALID' $coutputfile`		if ($suberror == 1) then           echo -n "|   ERROR 4    " >> $output           set error4 = 1           set suberror = 0        else           echo -n "|      -        " >> $output        endif    else	   grep "MAXIMUM SUBSPACE BOUND" $coutputfile | awk '{printf ("| %-13s ", $6) >> "'$output'" }'    endif	@ c++	end	echo "|" >> $output    echo -n "|  FINAL  SUBSPACE BOUND  |" >> $output    @ c = 1 + ($count * 5)    foreach file ($datafiles)       set coutputfile = $file.out$id[$c]       set value = `grep "FINAL   SUBSPACE BOUND" $coutputfile | awk '{printf ("%-13s ", $6) }'`       if ($value !~ [0-9]*) then          echo -n "|      -        " >> $output       else          grep "FINAL   SUBSPACE BOUND" $coutputfile | awk '{printf ("| %-13s ", $6) >> "'$output'" }'       endif       @ c++    end    echo "|" >> $output    echo -n "+--------------------------" >> $output    foreach item ($datafiles)       echo -n "----------------" >> $output    end    echo "+" >> $output	echo -n "|  MAX CHEBYSHEV DEGREE   |" >> $output	@ c = 1 + ($count * 5)	foreach file ($datafiles)	   set coutputfile = $file.out$id[$c]	   set value = `grep "CHEBYSHEV POLY" $coutputfile | awk '{printf ("%-13s ", $7) }'`	   if ($value !~ [0-9]*) then		  echo -n "|      -        " >> $output	   else		  grep "CHEBYSHEV POLY" $coutputfile | awk '{printf ("| %-13s ",$7) >> "'$output'" }'	   endif	   @ c++	end	echo "|" >> $output		echo -n "+--------------------------" >> $output	foreach item ($datafiles)	   echo -n "----------------" >> $output	end	echo "+" >> $output   echo -n "|  JOB PARM FOR TMS1(2)   |" >> $output   @ c = 1 + ($count * 5)   foreach file ($datafiles)	  set coutputfile = $file.out$id[$c]	  set value = `grep "JOB:" $coutputfile | awk '{printf ("%-13s ", $7) }'`	  if ($value !~ [0-9]*) then	     echo -n "|       -       " >> $output      else		 grep "JOB:" $coutputfile | awk '{printf ("| %-13s ",$7) >>"'$output'"}'	  endif	  @ c++   end   echo "|" >> $output   echo -n "|  RESID. REDUCTION TOL.  |" >> $output   @ c = 1 + ($count * 5)   foreach file ($datafiles)      set coutputfile = $file.out$id[$c]      set value = `grep "REDUCTION"  $coutputfile | awk '{printf ("%-13s ", $6)}'`	  if ($value !~ [0-9]*) then         echo -n "|       -       " >> $output      else         grep "REDUCTION" $coutputfile | awk '{printf ("| %-13s ",$6) >> "'$output'" }'      endif      @ c++   end   echo "|" >> $output   echo -n "+--------------------------" >> $output   foreach item ($datafiles)      echo -n "----------------" >> $output   end   echo "+" >> $output    if ($error1 == 1) then	   echo "ERROR 1 = NUMBER OF SINGULAR VALUES INVALID" >> $output	   set error1 = 0    endif    if ($error2 == 1) then       echo "ERROR 2 = INITIAL BLOCK SIZE MUST BE GREATER THAN 1" >> $output	   set error2 = 0    endif    if ($error3 == 1) then       echo "ERROR 3 = INIT BLOCK SIZE MUST BE LESS THAN NO. OF S-VALUES DESIRED" >> $output	   set error3 = 0    endif	if ($error4 == 1) then       echo "ERROR 4 = MAXIMUM SUBSPACE DIMENSION IS INVALID" >> $output	   set error4 = 0    endif    if ($error5 == 1) then       echo "ERROR 5 = SORRY, YOUR MATRIX IS TOO BIG" >> $output       set error5 = 0    endif    if ($error6 == 1) then       echo "ERROR 6 = NCOL MUST NOT BE GREATER THAN NROW" >> $output       set error6 = 0    endif    if ($error7 == 1) then       echo "ERROR 7 = TOLERANCE IS INVALID" >> $output       set error7 = 0    endif    if ($error8 == 1) then       echo "ERROR 8 = ENDL MUST BE LESS THAN ENDR" >> $output       set error8 = 0    endif    if ($error9 == 1) then       echo "ERROR 9 = MAXPRS CANNOT EXCEED LANMAX" >> $output       set error9 = 0    endif    if ($error10 == 1) then       echo "ERROR 10 = N = NROW + NCOL MUST BE GREATER THAN ZERO" >> $output       set error10 = 0    endif    if ($error11 == 1) then       echo "ERROR 11 = LANMAX (NUMBER OF LANCZOS STEPS) IS INVALID" >> $output       set error11 = 0    endif    if ($error12 == 1) then       echo "ERROR 12 = MAXPRS (NUMBER OF EIGENPAIRS DESIRED) IS INVALID" >> $output       set error12 = 0    endif	    if ($error13 == 1) then       echo "ERROR 13 =  6*N+4+LANMAX+1 + LANMAX>*LANMAX CANNOT EXCEED NW" >> $output       set error13 = 0    endif	if ($error14 == 1) then       echo "ERROR 14 = " >> $output       set error14 = 0    endif    echo "  -- $output"   @ count++end   echo " "   echo "... svdsum complete"#---------------------------------------------------------------------------# End of svdsum ------------------------------------------------------------#---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -