matlab taylor函数 C/C++实现
时间: 2024-06-06 22:07:07 浏览: 190
以下是一个MATLAB实现的Taylor函数:
function [y] = taylor(f,x0,n,x)
% Calculates the Taylor polynomial of degree n for function f at point x0
% and evaluates it at point x.
syms t;
y = 0;
for k = 0:n
y = y + subs(diff(f,t,k),t,x0)/factorial(k)*(x-x0)^k;
end
y = double(y);
以下是一个C/C++实现的Taylor函数:
#include <iostream>
#include <cmath>
double taylor(double (*f)(double), double x0, int n, double x) {
double y = 0;
for (int k = 0; k <= n; k++) {
double df = 0;
for (int i = 0; i <= k; i++) {
df += pow(-1,i)*std::tgamma(k+1)/(std::tgamma(i+1)*std::tgamma(k-i+1))*
f(x0+(i-k/2.0)*(x-x0)/n);
}
y += df*pow(x-x0,n-k)/std::tgamma(n-k+1);
}
return y;
}
其中,f是需要求Taylor多项式的函数指针,x0是中心点,n是多项式的最高次数,x是需要求函数值的点。
阅读全文