用秦九韶算法求多项式p(x)=3*x^5-2*x^3+x+7在x=3处的值 Matlab程序设计
时间: 2024-10-15 22:17:15 浏览: 39
数学:1.3《算法案例---秦九韶算法》学案(新人教A版必修3).doc
秦九韶算法也称为霍纳法(Horner's method),是一种用于高效计算多项式在特定点的值的算法。对于多项式 p(x) = a_n * x^n + a_{n-1} * x^{n-1} + ... + a_0,它将复杂的乘法步骤简化为一系列简单的加法和乘法操作。当给定 x 的值时,我们不需要先做所有次幂运算,而是逐步从最高次项开始。
对于多项式 p(x) = 3*x^5 - 2*x^3 + x + 7,我们可以按照秦九韶算法的步骤来计算:
1. 将系数重新排列,形成 [a_n, a_{n-1}, ..., a_0] = [3, -2, 1, 0, 7]
2. 初始化结果 r = a_0 = 7
3. 对于每一步 i 从 n 到 1,做 r = a_i * (r + x),这里的 x = 3
以下是用 MATLAB 编写的简单程序实现秦九韶算法计算 p(3):
```matlab
function result = qinjiushao_poly_value(coefficients, x)
% Initialize the first and last terms of the polynomial
r = coefficients(end);
for i = length(coefficients) - 2:-1:1
r = coefficients(i) * (r + x);
end
result = r;
end
% Test with your given polynomial at x = 3
coeffs = [3, -2, 1, 0, 7]; % Coefficients in descending order
x_val = 3; % Value of x
result = qinjiushao_poly_value(coeffs, x_val);
disp(['The value of p(x) at x = ' num2str(x_val) ' is ' num2str(result)]);
阅读全文