Trying to estimate the elements of the coefficient vector $c$ of an $N\times N$ linear system $(A+B)c = y$

32 Views Asked by At

I have the following coupled system of equations for the coefficients $c = \{c_n\}_{n=1}^N$ in which the strength of the coupling is controlled by the parameter $d$:

$$ c_n n^n + \frac{1}{n^n}\sum_{m=1}^N \bigg(\frac{|m-n|}{d}\bigg)^{|m-n|}c_m = \frac{1}{2^n}, \quad \quad n=1,\dots,N \quad \quad (1). $$

The magnitude of the coefficients $|c_n|$ appears to converge to $0$ very rapidly (see image below) but I am having trouble showing this theoretically.

The system of equations can be written as a standard linear system $$ (A+B)c = y, $$ where the elements of the matrices $A$ and $B$, and the vector $y$, are given by $$ A_{nm} = \begin{cases} n^n, & \quad m=n, \\ 0, & \quad m \neq n, \\ \end{cases}, \\ B_{nm} \begin{cases} \dfrac{1}{n^n}\bigg(\dfrac{|m-n|}{d}\bigg)^{|m-n|} \\ \end{cases}. \\ y_n = \dfrac{1}{2^n}. $$

If I solve this in Matlab for, say, $N=25$ and various values of the parameter $d$, I get the plot shown below for the magnitude of the coefficients $|c_n|$.

Is it possible to obtain an estimate for $|c_n|$ that will predict the behavior of $|c_n|$, in particular its dependence on $d$, that I computed in Matlab? If the second term was removed from the Eq. (1) we would have a decoupled system of equations and we could simply divide across by $n^n$ to explicitly get $c_n = 1/(2n)^n$ (black dots in plot). As you can see below, when $d$ reaches $5$, the system essentially behaves as if it is completely uncoupled.

But how can we solve for $c_n$, or more realistically, how can we estimate $c_n$, when this second term (which represents coupling) is present?

enter image description here

N = 25;
M = N;

A = zeros(N,M);
for n=1:N
    for m=1:N
        if n==m
            A(n,n) = n^n;
        end
    end
end

B = zeros(N,M);
dList = [0.05, 0.25, 0.5, 1, 5];

figure
hold on
grid on
for d=dList
    for n=1:N
        for m=1:N
            B(n,m) = 1/n^n*(abs(m-n)/d)^(abs(m-n));
        end
    end

    T = A+B;
    y = 1./2.^(1:N).';

    c = T\y;

    plot(abs(c))
end

xlabel('n')
ylabel('|c_n|')
set(gca,'Yscale','log');
plot(1./((1:N).*2).^(1:N).','k.'); % This is d=inf, i.e., the coupling term disappears

legend('d=0.05', 'd=0.25', 'd=0.5', 'd=1', 'd=5', 'd=inf')