[计算机数值分析]利用秦九韶算法求多项式的值
Posted Spring-_-Bear
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[计算机数值分析]利用秦九韶算法求多项式的值相关的知识,希望对你有一定的参考价值。
问题描述
例:求p(x) = x⁵ - 3 x⁴ + 4 x² - x + 1 ,当x = 3时的值。
按秦九韶算法展开:则p(x)=(x(x(x(x-3)+4)-1)+1),则最里层为(x-3),对它的解释为最高项的系数与x的乘积加上次高项的系数,这个结果作为下一次循环的系数,即计算(x(x-3)+4)等于上次计算结果(x-3)与x的乘积x(x-3)加上次次高项(x(x-3)+4)的系数4。依次迭代,最终得出多项式的值。
运行示例
源码
//实现利用秦九韶算法求多项式的值
//示例:例如求p(x)=pow(x,5)-3*pow(x,4)+4*pow(x,2)-x+1 ,当x=3时的值
//按秦九韶算法展开:则p(x)=(x(x(x(x-3)+4)-1)+1)
#include<iostream>
using namespace std;
int main(void)
double item,x,coefficient; //coefficient每项前的系数,x为自变量
int up,i; //up为最高次项的次数
cout << "请输入自变量x的值:";
cin >> x;
cout << "请输入最高次项的次数:";
cin >> up;
cout << "请输入"<<up<<"次项的系数:";
cin >> coefficient;
//把item赋值为最里层最高次项的系数, 以便进入第一次循环时进行最里层第一项的计算,避免再次输入次高项系数时最高项系数被覆盖
item = coefficient;
//系数cofficient依次从次高项直至次数为0项依次输入
for (i = up-1; i >= 0; i--)
if (i == 0)
cout << "请输入常数项的值:";
cin >> coefficient;
else
cout << "请输入" << i << "次项的系数:";
cin >> coefficient;
//按秦九韶算法展开,最里面一项为最高次项的一次乘系数加上次高项的系数,往后依次迭代
item = item * x + coefficient;
cout << "\\n所求多项式的值为:" << item << endl;
return 0;
以上是关于[计算机数值分析]利用秦九韶算法求多项式的值的主要内容,如果未能解决你的问题,请参考以下文章