Вычисление функций рядом Маклорена % Вычисление функций рядом Маклорена % d-derivatives (производные функции вычисленные в нуле) % x- аргумент вычисляемой функции % Например: % d=ones(32,1); % x=1; % y=fmacloren01(d,x); % function y=fmacloren01(d,x) y=0; p=1; f=1; n=length(d); if n<1 return; end; for k=1:n y=y+(d(k)/f)*p; f=f*k; p=p*x; end; % Вычисление функции SIN(x) рядом Маклорена % x- аргумент вычисляемой функции % Например: % x=pi/2; % y=fsin01(x); % function y=fsin01(x) y=0; % Предустановка результата p=1; % x - в очередной степени f=1; % Очередное значение факториала % d-derivatives (производные функции вычисленные в нуле) d=[0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1]; n=length(d); for k=1:n y=y+(d(k)/f)*p; f=f*k; p=p*x; end; % Вычисление функции SIN(x) рядом Маклорена % (Оптимизация алгоритма для исключения вычислений с нулевыми производными) % x- аргумент вычисляемой функции % Например: % x=pi/2; % y=fsin02(x); % function y=fsin02(x) y=0; % Предустановка результата p=1; % x - в очередной степени f=1; % Очередное значение факториала % d-derivatives (производные функции вычисленные в нуле) d=[0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1]; n=length(d); for k=1:n if d(k) ~= 0 y=y+(d(k)/f)*p; end; f=f*k; p=p*x; end; % Вычисление функции SIN(x) рядом Маклорена % (Оптимизация алгоритма с ограничением длины ряда по достижению ошибки delta) % x- аргумент вычисляемой функции % Например: % x=pi/2; % y=fsin03(x,1e-10); % function y=fsin03(x,delta) y=0; % Предустановка результата p=1; % x - в очередной степени f=1; % Очередное значение факториала % d-derivatives (производные функции вычисленные в нуле) d1=[0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1]; d2=[0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1]; d=[d1,d2]; s=realmax; n=length(d); for k=1:n if d(k)~=0 y=y+(d(k)/f)*p; if abs(s-y)