MATLAB 秦九韶算法求解多项式 y = x^5 + 3x^3 - 2x + 6

本代码使用 MATLAB 实现秦九韶算法,求解多项式 y = x^5 + 3x^3 - 2x + 6 在 x = 1.1, 1.2, 1.3 时的值。

% 定义多项式系数
a = [1, 0, 3, 0, -2, 6];
% 定义输入的x
x = [1.1, 1.2, 1.3];
% 定义结果矩阵
y = zeros(1, length(x));

% 循环计算每一个x的结果
for i = 1:length(x)
    % 初始值为a_n
    result = a(end);
    % 从高次项开始计算
    for j = length(a)-1:-1:1
        % 使用秦九韶算法计算
        result = result * x(i) + a(j);
    end
    % 将结果保存到结果矩阵
    y(i) = result;
end

% 输出结果
disp(y);

代码解释

  • a = [1, 0, 3, 0, -2, 6]; 定义多项式的系数,从最高次项到常数项。
  • x = [1.1, 1.2, 1.3]; 定义要计算的 x 值。
  • y = zeros(1, length(x)); 创建一个与 x 值数量相同的数组,用于存储计算结果。
  • for i = 1:length(x) 循环遍历每个 x 值。
  • result = a(end); 初始化结果变量为多项式常数项。
  • for j = length(a)-1:-1:1 这是一个关键循环,用于实现秦九韶算法。循环从多项式系数的倒数第二个元素开始(即 length(a)-1),每次递减 1,循环到第一个元素(即 1)。这样就可以从高次项开始计算多项式的值,使用秦九韶算法进行优化。
  • result = result * x(i) + a(j); 使用秦九韶算法计算当前 x 值对应多项式的值。
  • y(i) = result; 将计算结果保存到结果数组 y 中。
  • disp(y); 输出计算结果。

总结

这段代码使用 MATLAB 实现秦九韶算法,可以快速高效地计算多项式在多个 x 值时的值。代码中使用循环语句实现算法,并解释了循环语句的含义和作用。


原文地址: https://www.cveoy.top/t/topic/mkjG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录