4 votos

Algoritmo de ortogonalización de polinomios con producto interior específico

Estoy intentando generar una colección lo más grande posible de polinomios ortogonales $p_1, p_2, ..., p_n$ , $\left\langle p_i, q_i\right \rangle = \delta_{ij}$ donde el producto interno es con respecto a una función de peso específica.

Es bien sabido que esto se puede hacer mediante el proceso de Gram-Schmidt, pero mi problema es que para un tamaño suficientemente grande $n$ los polinomios resultantes pierden su ortogonalidad debido a la inestabilidad numérica. También he implementado el Gram-Schmidt modificado algoritmo pero para alrededor de $n=30$ también no son ortogonales.

Mi pregunta es si hay un método mejor para generar estos polinomios. Estoy buscando un enlace o referencia o descripción del método.

1voto

Omegatron Puntos 101

No puedo decir por lo que has dicho lo que has implementado, este es un ejemplo llamado [Chebfun]. 1 . Sería mejor que publicaras tu código. Tenga en cuenta que este es un código para los polinomios Legendgre con pseudo-código.

x = chebfun('x',[-1 1]);
w = exp(pi*x);
N = 5;
P = OrthPoly(w,N);

    function P = OrthPoly(w,N)
        if isnumeric(w), w = chebfun(w,[-1 1]); end
        d = w.ends;                     % the domain
        x = chebfun('x',d);             % linear chebfun
        P = chebfun(1./sqrt(sum(w)),d); % the constant (normalised)
        for k = 1:N;
            xk = x.*P(:,k);
            P(:,k+1) = xk;
            for j = 1:k       % Subtract out the components
                C = sum(w.*xk.*P(:,j));
                P(:,k+1) = P(:,k+1) - C*P(:,j);
            end
            P(:,k+1) = P(:,k+1)./sqrt(sum(w.*P(:,k+1).^2)); % normalise
        end
    end

enter image description here

En realidad es la iteración de Lanczos..

enter image description here

Tenga en cuenta que esto es de Trefethen ..

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X