迭代求方程的根c++

迭代求方程的根c++

题目

求x³-x-1=0的根

迭代求根方法

  1. 将方程变形,求出根的收敛表达示g(x),即x=∛(x+1)。而不能变成x=x³-1,因为这个x的表达式是发散的。
  2. 选一个方程的近似根2,赋给变量x0。
  3. 将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0;
  4. 当x0与x1的差的绝对值还大于指定的精度要求时,重复步骤2、3的计算。

代码

cpp 复制代码
#include<stdio.h>
#include<math.h>
typedef double(*fpt)(double);//函数指针 
int rootX(fpt g,double initRoot,double precision,double *root){
	double x0=initRoot,x1=0;
	int n=0;//迭代次数
	do{
		printf("x%d=%.5f\n",n,x0);
		x1=x0;
		x0=g(x1);
		n++;
	} while(fabs(x0-x1)>= precision);
	*root=x0;
	printf("x%d=%.5f\n",n,x0);
	return n;
}
double f(double x){
	return pow(x+1,1.0/3.0);
}
int main(){
	double x;
	int m=rootX(f,2,0.000005,&x);
	printf("迭代%d次,根为%.5f\n",m,x);
}

说明

pow 函数

  • base 是底数,可以是任意浮点数。
  • exponent 是指数,也可以是任意浮点数。
  • 返回值是 base 的 exponent 次幂,类型为 double。
cpp 复制代码
double pow(double base, double exponent);
相关推荐
ZPC821013 小时前
joy 及sensor_msgs
算法
Three_ST13 小时前
沐神-动手学习深度学习-习题答案4.4模型选择,欠拟合,过拟合
人工智能·python·深度学习·学习·算法
CIO_Alliance13 小时前
AI深度系列(2)| CNN卷积池化感受野原理:从局部感知到全局视野
人工智能·深度学习·线性代数·算法·计算机视觉·企业ai转型·企业cio联盟
探物 AI13 小时前
机器人清理墙角蜘蛛网,背后需要哪些算法?——从视觉分割到贴墙力控
算法·机器人
青 春 记 忆13 小时前
LeetCode 226. 翻转二叉树|Python 解法详解
python·算法·leetcode
Brilliantwxx13 小时前
【Linux】 进程(5) 僵尸进程与内存泄漏扩展
linux·运维·服务器·网络·c++
民乐团扒谱机14 小时前
【微科普】压缩感知(CS):违反了奈奎斯特采样定理?不先采集也能还原信号?大白话讲透稀疏采样、L1重建与OMP,一文吃透附代码
python·神经网络·线性代数·算法·数学建模·压缩感知·奈奎斯特
88号技师14 小时前
2026年SCI-分数牛顿衍生优化算法Fractional Newton-derived optimizer-附Matlab免费代码
开发语言·算法·数学建模·matlab·优化算法
程与留14 小时前
08_对话框系统全解析——模态非模态、QMessageBox、QFileDialog
c++·qt
夏玉林的学习之路14 小时前
算法7.链式栈
算法