牛顿迭代法(大白话)
创作时间:
作者:
@小白创作中心
牛顿迭代法(大白话)
引用
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练习题
热门推荐
自驾游安全指南:全面检查清单助你安心出行
结婚日期看阴历还是阳历?两种日历的差异解析!
2025年兔年运势大揭秘:己卯日柱必看!
八字己卯日的命运解析:如何趋吉避凶?
己卯日柱:你的命运密码
八字命理揭秘:己卯日柱的性格密码
阳江出发:重庆乌江画廊五日游完整攻略及行程指南
《奇异人生》:时间倒流中的情感救赎
冬季行车必备:车载充气泵正确使用指南
车载充气泵:你的行车安全神器!
盐焗鸡竟伤肾?这些食物要远离!
肾病患者如何正确吃牛肉?
慢性肾脏病:如何早发现早治疗?
股票市场交易风险管理策略:如何实施风险管理策略
充电宝能充几次手机?基本工作原理和参数详解!
周公解梦面前的大坑:女人梦见大坑的真正预兆
黄兆康医生教你正确防寒:告别“酒后寒”,远离错误保暖法
酒后寒怎么办?这些方法帮你快速缓解
酒依赖后的营养调理方案
青平:文化自信是国产动画崛起的深层动力
都市奇幻:魔法与城市的完美邂逅
“四大才子”之首:陈怡的音乐传奇
陈怡姐姐首秀《开门大吉》:从主持人到电影人的华丽转身
北方新能源汽车市场崛起,为地方经济注入新动力
坚持引体向上带来的益处与标准动作指南
2025年中国乘用车市场:新能源车将成主导力量
哈瓦那冬季游:古巴最佳旅行时间解析
当哲学触碰文学,激发出的时代智慧
刘裕:从草根到帝王的逆袭与家族悲剧
主任医师如何应对医患沟通新挑战?