牛顿迭代法(大白话)
创作时间:
作者:
@小白创作中心
牛顿迭代法(大白话)
引用
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练习题
热门推荐
拒绝领导不合理的工作安排,这三招太好用
猫咪食谱:鸡胸肉的多种创意吃法
悄悄致癌的“肝炎—肝硬化—肝癌”三部曲
人工智能算法工程师需要掌握哪些技能?
人工智能算法工程师需要掌握哪些技能?
志愿军女文工团员被俘,军长命令警卫连:砸锅卖铁也要救回来
志愿军女文工团员被俘,军长命令警卫连:砸锅卖铁也要救回来
历史探秘:包公的形象与逝世之谜
宋朝名臣包拯死因揭秘
三角形质心计算器
134平米黑白灰现代简约风格装修案例:设计师详解空间布局与灯光运用
“公园20分钟效应”真的管用!多接触大自然好处不止“亿点点”
全球与中国氧化铝纤维和氧化铝连续纤维行业及细分市场规模分析
城市可持续发展对城市、经济和世界都有益
推动科技向善!这场论坛关乎科技伦理与人类未来
伤官配印查询:你需要知道的一切
西游记那么多动物,作者为什么偏偏选了猴子做主人公?
怎么知道自己是不是低血糖
中文爆破音词组有哪些
咏诵诸葛亮的经典诗词,一首比一首精彩,你认为哪首能高居榜首?
当代年轻人的“过年恐惧症”如何破?
为什么回忆难受的事情,容易钻牛角尖?
祛湿茶:早上喝还是晚上喝?这些人群需谨慎饮用
楷书习作:长卷《百泉春·液体之火》
商标抢注应对策略
碘酒和碘伏有什么区别?一文读懂
房屋裂缝鉴定标准及处理方法
神庭穴准确位置图功效作用和针刺艾灸按摩推拿法
头晕有什么方法缓解
古人为何视五月为“毒月”与“恶月”:由来与演变解析