设计用牛顿迭代法解方程C++程序

来源:百度知道 编辑:UC知道 时间:2024/05/26 06:17:36

#include<iostream>
#include<cmath>
using namespace std;
void fun(double, double);
int main()
{
double x0 = 0, epsilon; //将x初值赋为0,根据题目要求
cout << "请输入允许的最大误差: ";
cin >> epsilon;
fun(x0, epsilon);
return 0;
}
void fun(double x0, double epsilon)
{
double x1 = x0;
x0 = (x1 - (x1*x1 + 3*x1 - 4) / (2*x1 + 3)); //按指定的方程计算新的近似根
if(fabs(x0 - x1) > epsilon) //大于误差值的时候继续迭代
fun(x0, epsilon);
else
cout << "方程的近似根是" << x0 << endl;
}
你看下,我运行了没错误

你说的是用牛顿迭代法求函数的最值吗?这个不知道是不是你要的。
#include "stdafx.h"
#include<iostream>
using namespace std;
int main()
{
double f(double);//目标函数
double fdot(double);//目标函数的一阶导数
double fdot2(double);//目标函数的二阶导数
int i;
int N=1000;//循环次数
double x;//变量
double h;//步长
cout<<"请输入初始值"<<endl;<