牛顿迭代法(大白话)
解释:
首先看图:曲线与X轴(横坐标)的切点就是曲线的根
经过无数次取切线,就会发现,慢慢靠近曲线的根。
这就是牛顿迭代法,大致思路理解了吧。
公式
那么根据该公式可以按以下步骤求解一元方程的任意次的根
(1) 选一个方程的近似根,赋给变量X0,x1是根据牛顿迭代公式计算
(2) 将x1的值保存于变量x0,然后牛顿迭代公式计算并将结果存于变量x1;
(3) 当x0与x1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算。
若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就认为是方程的根。
Java代码
public class Main {
//表示原式子 F(x)
static double f(double x){
return 2*x*x*x-4*x*x+3*x-6;
}
//表示导函数 f(x)
static double fd(double x){
return 6*x*x-8*x+3;
}
public static void main(String[] args){
double x0=1.5;
double x1=1.5;
//套入公式
do{
x0=x1;
x1=x0-f(x0)/fd(x0);
}
while(Math.abs(x1-x0)>=1e-5);
//输出结果
System.out.println(x1);
}
}
python代码
# 表示原函数 F(x)
def f(x):
return 2*x*x*x-4*x*x+3*x-6
# 表示导函数 f(x)
def fd(x):
return 6*x*x-8*x+3
def cal():
# 可以取任意值,只是循环次数不同而已
x0=100
x1=x0-f(x0)/fd(x0)
while abs(x1-x0)>=1e-5:
x0=x1
x1=x0-f(x0)/fd(x0)
return x1
print(cal())
leetcode练习题
本文来自博客园,作者:帅气的涛啊,转载请注明原文链接:https://www.cnblogs.com/handsometaoa/p/16200674.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)