Как правильно установить значения rhs для метода конечных разностей в R, если у меня есть полином 5-й степени. Похоже, метод дает неправильные значения - PullRequest
0 голосов
/ 29 апреля 2020

Мой код, который вычисляет производные в заданной точке, используя метод конечных разностей, не работает, и я думаю, что он как-то связан с rhs, который я дал как rhs = [0; 0; 0; 0; 0; 0] но ранее я поставил его как rhs = [0; 1; 0; 0; 0; 0], и это было еще хуже, потому что по крайней мере со всеми нулями я правильно получаю первую точку на графике дифференцированных функций.

Вот картина, которая обостряет проблему:

enter image description here

function script()

Я не совсем понимаю, что здесь представляет rhs и как узнать правильные значения для него.

Вот мой код:

syms x; f=tan(x^3) - x^2 + 1; h = 1;

xx=0:1/5:1;

yy = subs(f,xx);

ss=zeros(6,1);
rhs = [0;0;0;0;0;0];

l = 0;
r = 5;
 for j=0:l+r
        V(j+1,:)=[-l:r].^j;
    end
atr=V\rhs;

 for k=1:6
    ss(1)=ss(1)+atr(k)*yy(k)/h; 
 end

  l=1;r=4;   
    for j=0:l+r
        V(j+1,:)=[-l:r].^j;
    end
    atr=V\rhs; 

    for k=1:6
    ss(2)=ss(2)+atr(k)*yy(k)/h; 
    end

     l=2;r=3;

    for j=0:l+r
        V(j+1,:)=[-l:r].^j; 
    end
    atr=V\rhs; 

    for k=1:6
    ss(3)=ss(3)+atr(k)*yy(k)/h; 
    end

       l=3;r=2;

    for j=0:l+r
        V(j+1,:)=[-l:r].^j; 
    end
    atr=V\rhs; 


for k=1:6
    ss(4)=ss(4)+atr(k)*yy(k)/h;
    end

       l=4;r=1;

    for j=0:l+r
        V(j+1,:)=[-l:r].^j; 
    end
    atr=V\rhs; 

    for k=1:6
    ss(5)=ss(5)+atr(k)*yy(k)/h; 
    end

       l=5;r=0;

    for j=0:l+r
        V(j+1,:)=[-l:r].^j; 
    end
    atr=V\rhs; 

    for k=1:6
    ss(6)=ss(6)+atr(k)*yy(k)/h; 
    end

ss
subs(diff(f),xx)
    figure
    ezplot(diff(f),[-1, 1])
    hold on
    plot(xx,ss, '*') 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...