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

📄 lagrange.m

📁 This is a Matlab v6.5 implementation of the Lagrange interpolation algorithm.
💻 M
字号:
% Do funkcji dostarczamy wartosci x = wezly 
% np. wezly = [1, 3, 6, 7] =&ht; wielomian 3-go stopnia
% W(x) = a + bx + cx^2 + dx^3 (cztery wspolczynniki: a,b,c,d )
% stopien_n = stopien wielomianu + 1 (ile wspolczynnikow)
%    
% U縴wamy tak:
% p = lagrange(wart_x, wart_y, punkt_x)
% 
% Uwaga! 
% punkt_x = x w ktorym chcemy znalezc wartosc W(x)
% punkt_x musi byc r罂ny od wszystkich wartosci wezlow x

function [wyn] = lagrange(wart_x, wart_y, punkt)
    
    size_x = size(wart_x);          % tutaj obliczamy wielko舵 tablicy x-體
    ilosc_x = size_x(2);            % tutaj pobieramy z tablicy wielko禼i ilo舵 kolumn
    omw = 1;                        % na poczatku omw = 1 aby przy mnozeniu nie wyszlo 0
    s = 0;                          % to jest suma - na poczatku rowna 0
    
    % Robimy petle, ktora iteruje wszystkie wezly i tworzy sume wzoru Lagrange'a 
    for i = 1 : ilosc_x
        
        if wart_x(i) ~= punkt
            % Jesli punkt jest rozny od wart_x
            
            omw = omw * (punkt - wart_x(i));        % Omega (w liczniku)
            omp = 1;                                % Pierwsza pochodna omegi
                                                    % na pocz眛ku p阾li = 1
            for j = 1 : ilosc_x
                if j ~= i
                    % i != j aby nie odejmowac tej samej wartosci %
                    omp = omp * (wart_x(i) - wart_x(j));    
                    % Pierwsza pochodna omegi
                end
            end
            % Dodaje do sumy nowo obliczon

⌨️ 快捷键说明

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