我需要一个c++程序

来源:百度知道 编辑:UC知道 时间:2024/06/08 12:36:38
用牛顿法图解方程
要求:
1。可以求解一元n次方程的实数解,输入ax^n+bx^(n-1)+....的形式,在程序中识别n及各项系数。
2。输入x的初值范围,输入后要判断范围内是否有实数解。
3。画出弦截线及多次迭代的过程,要求有必要的坐标说明。
4。输出结果。
5。可以从数据文件中读取方程并将方程输入到该文件中。

穷举的方法,把x范围内的数都一一带入验证,如果符合的话就有解

/*
------迭代法------
前置条件
x=g(x)是f(x)=0的迭代函数
1)存在区间[a,b],使当x属于[a, b]时,g(x)属于[a, b]
2)|g'(x)|恒小于1
3)x0属于[a,b]

后置条件
返回f(x)=0在[a,b]上的根

牛顿法:将f(x)在一个近似根x0处做泰勒展开,取前两项做线性近似,整理得
x=x0-f(x0)/f'(x0)

*/
double iter_algo(double (*g)(double), double x0)
{
double t=g(x0);
while(t-x0>1e-6 ||t-x0<-1e-6){
x0=t;
t=g(x0);
}
return t;
}