牛顿迭代法(大白话)
创作时间:
作者:
@小白创作中心
牛顿迭代法(大白话)
引用
1
来源
1.
https://www.cnblogs.com/handsometaoa/articles/16200674.html
解释:
首先看图:曲线与X轴(横坐标)的切点就是曲线的根
经过无数次取切线,就会发现,慢慢靠近曲线的根。
这就是牛顿迭代法,大致思路理解了吧。
公式
[\chi_{n+1}=\chi_{n}-\frac {f(\chi_{n})}{f\prime{}(\chi_{n})} ]
那么根据该公式可以按以下步骤求解一元方程的任意次的根
(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练习题
热门推荐
离婚协议书怎样写才有效?一文详解撰写要点与办理流程
金伯莉·布雷恩:孩子闹脾气背后的真相
如何通过情绪管理教育提升孩子心理健康?
李玫瑾教你四招搞定熊孩子脾气
理解孩子生气背后的需求:从情绪管理到亲子沟通
沙特阿美:全球能源市场的“巨无霸”与“调节器”
痛风患者的饮食秘籍:降尿酸不求药!
深圳天童美语揭秘:四龙聚首的文化魅力
李煜《浪淘沙·帘外雨潺潺》:一曲凄婉的亡国之音
中国大运河:世界遗产的文化瑰宝
燃灯佛舍利塔:大运河畔的千年传奇
苏州大运河:十大遗产点串起的千年风韵
高盐饮食为什么会导致高血压
腊肉到底能不能吃?如何吃更安全?
如何正确安装一氧化碳检测仪?它的使用寿命是多久?
沙特阿美加码中国炼化市场:布局与影响
奇骏车主必看:62AH电瓶使用指南
朋友间高效沟通小妙招,让友情升级!
麻辣豆腐的做法
安徽麻婆豆腐的美味秘诀:口感+调料完美结合
腊肉选购全攻略:从外观到气味,教你挑选优质腊肉
冬日打卡:赣南客家文化深度游
探访赣南“客家摇篮”:千年围屋展新颜
合肥未来大科学城总体规划:打造世界一流科研“圣地”
蚌埠双墩国家考古遗址公园文物保护项目即将完工
古宅新生!这座温州著名实业家的故居,即将修缮如故
中国气象局发布:台风季出行必看!
超强台风“格美”来袭!多部门联动防御,公众如何做好安全防护?
广州首创军转干部移动端系统,远程报到实现“零跑腿”
脾虚患者服用生脉饮的五大注意事项