First order autonomous reduced dynamics

First order autonomous reduced dynamics

Contents

function [R_0i,RHS] = Aut_1stOrder_RedDyn(z_k, Lambda_M, Lambda_K, W_M, reltol,RHS,V_M,B)
        

AUT_2NDORDER_REDDYN

This function computes the kernel of the coefficient matrix for eigenvalue pairs that are in resonance as described in the document ''Analytic Kernel of Coefficient matrix and Symmetries using multi-index notation''. It then computes the autonomous reduced dynamics coefficients at order k using the first order systems routine.

[Rk] = AUT_2NDORDER_REDDYN(I,F,THETA,PHI,C,Lambda_K,Lambda, M,Vm,Ym,l,z_k)

See also: AUT_1STORDER_SSM

COEFF_MATR_KERNEL Explicit kernel-construction of the coefficient-matrix

%SSM dimension
l         = size(Lambda_M,1);
%Compare for all combinations if singularity occurs
Lambda_Ci = Lambda_M - Lambda_K; % column vector - row vector
%threshold below which resonance occurs
ref       = min(abs(Lambda_M));
abstol = reltol*ref;
%find eigenvalues that trigger resonance
[I,F]  = find(abs(Lambda_Ci) < abstol); % I for eigenvalue and F for combination
r_k = length(I);
if r_k
    innerresonance = 1;

    % create E_F, E_I
    E_F = sparse( F, (1:r_k).', true(r_k,1), z_k, r_k);
    E_I = sparse( I, (1:r_k).', true(r_k,1), l, r_k);

    % create K_k, G_k
    K_k = khatri_rao_product(E_F, W_M(:,I));
    G_k = khatri_rao_product(E_F, E_I)';
else
    innerresonance = 0;

    K_k=[];
    G_k=[];
end

if innerresonance

    Skron = kron(speye(z_k),B*V_M);
    R_0i   = G_k.' * K_k' * RHS;
    RHS   = RHS - Skron*R_0i;
else
    R_0i   = sparse(l*z_k,1);
end
        
end