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

📄 iteration_singular.m

📁 computing singular value of matrix by iteration
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%
%%   Main Function
function Matrix( )
    fprintf(' -------------------------------------------- \n');
    fid = fopen('matrix.txt', 'r');
    A = fscanf(fid, '%5f', [8 8]);
    B = fscanf(fid, '%5f', [1 8]);
    C = fscanf(fid, '%f',  [5 5]);
    A = C';
    [res, time] = Singulars(A);
    res, time
    
    
    
function [res, time] = Singulars( A )
    TOL = 1e-5;
    i = 1;
    check = 0;
    dim = size(A);
    N = dim(1,1);
    lenda_l = cond(A, inf)
    lenda_h = cond(A, inf)
    E = eye(N);
    while( check == 0)
        if( det(A - lenda_l*E) * det(A - lenda_h*E) > 0)       
            lenda_l = lenda_l - TOL*100;
            continue;
        end
        [res(i), time(i)] = Get_result( lenda_l, lenda_h, A, TOL);
        lenda_h = lenda_l;        
        if( i > 3)
            break;
        end
        i = i + 1;
    end
    
function [res,time] = Get_result( lenda_l, lenda_h, A, TOL )
    check = 0;
    dim = size(A);
    N = dim(1,1);
    E = eye(N);
    len = (lenda_l + lenda_h)/2;
    time = 1;
    while abs(det(A - len * E)) > TOL
        if( det(A - len*E) * det(A - lenda_l*E) < 0)
            lenda_h = len;
        else
            lenda_l = len;
        end
        len = (lenda_l + lenda_h)/2;
        time = time + 1;
    end
    res = len;
   

    

⌨️ 快捷键说明

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