java如何对一个表达式开根号_如何手工开根号?(简述Newton-Raphson 法)

请问大家一个问题,如何手工求解根号2?

6062f9cea7c74215a816e4a52288863a.png

当然可以按计算器啦,但是计算器是如何算的呢,感兴趣的小伙伴接着往下看吧。

首先构造一个函数,如下图:

aaeeb6e7a1a2e9a93b34c149b821aed8.png

显然,当y=0时,x的正根就是根号2的数值

dfdf12602d781edd8117a06aa2908591.png

我们取f(x)上的(2,2)这个点

ebf5692ffd76ebaf483fe891de6298fb.png

我们过(2,2)这一点做f(x)的切线,此切线的方程为y-2=f'(2)(x-2),f'(2)的为f(x)在(2,2)这一点的导数,等于,切线方程为y=4x-6

2bfe82d9ff319662ba9a7320122154c4.png

我们取切线方程的根,当y=0时,x=1.5。在(1.5 , 0)这个点再做一条垂直的线,和f(x)相交,求出交点坐标再做切线,求出切线的根,得到点(1.4375 , 0),如此反复循环下去,所得到的的结果会无线逼近根号2。

3b281f6bc101433e1b6759866ebe6887.png

亲爱的小伙伴看到这里应该大致明白什么叫做牛顿拉普森法了,实际上牛顿拉普森法也叫牛顿求根法,其目的是为了求那些非常复杂的函数的根。

那么牛顿拉普森法和结构设计有什么关系呢?在结构进行非线性计算的时候,由于要考虑结构的几何非线性,也就是结构在荷载作用下发生了较大的位移,我们需要考虑新发生的位移在荷载作用下的附加作用,这个时候我们就需要使用牛顿拉普森方法进行求解。

但是需要注意,我们可以求根的前提是函数不存在拐点,也就是导数不会改变正负,如果导数改变了正负,那么牛顿拉普森法就无法模拟导数变号之后的情况,详见下图:

413b0082e84a132c61b9598b096c8678.png
图片摘自NIDA软件说明书

牛顿拉普森方法是非线性计算常用的一种数值方法,此外还有位移法,弧长法,做功恒定法等一些列方法,感兴趣的小伙伴点赞订阅,后期我会更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值