己知 f(x)=3+x+(x-4)2-6(x-4)3+4(x-4)5,用秦九韶算法求 f(3.9)及 f(4.2)(说明: 设一般多项式为 f(x)=a0+a1x+a2x2+...+anxn,则秦九韶算法的一般递推公式为𝑠0 =𝑎𝑛 (𝑘=1,2,...,𝑛) 𝑠𝑘 = 𝑠𝑘−1𝑥 + 𝑎𝑛−𝑘。用Matlab实现
时间: 2023-11-19 16:06:47 浏览: 182
可以使用Matlab代码实现秦九韶算法来求解多项式函数的值,具体代码如下:
```matlab
function result = qinjiushao(x, a)
% 输入参数 x:要求函数值的自变量;a:多项式的系数向量
% 输出结果 result:多项式在 x 处的函数值
n = length(a) - 1; % 多项式次数
s = a(n+1); % 初始化 s0
for k = n:-1:1 % 递推计算 s1, s2, ..., sn
s = s*x + a(k);
end
result = s; % 返回多项式在 x 处的函数值
```
对于给定的多项式函数 f(x),可以先将其系数按从高到低的顺序存放到一个向量中,然后调用 qinjiushao 函数即可计算任意点的函数值。例如,对于题目中给定的多项式:
$$
f(x)=3+x+(x-4)^2-6(x-4)^3+4(x-4)^5
$$
可以将其系数向量存储为:
```matlab
a = [4, 0, -6, 0, 1, 3];
```
然后分别调用 qinjiushao 函数计算 f(3.9) 和 f(4.2):
```matlab
>> qinjiushao(3.9, a)
ans =
1.0512
>> qinjiushao(4.2, a)
ans =
36.6888
```
因此,f(3.9)=1.0512,f(4.2)=36.6888。
阅读全文