1:二分法
求根号5
a:折半: 5/2=2.5。
b:平方校验: 2.5*2.5=6.25>5,并且得到当前上限2.5。
c:再次向下折半:2.5/2=1.25。
d:平方校验:1.25*1.25=1.5625<5,得到当前下限1.25。
e:再次折半:2.5-(2.5-1.25)/2=1.875。
f:平方校验:1.875*1.875=3.515625<5,得到当前下限1.875。
每次得到当前值和5进行比较,并且记下下下限和上限,依次迭代,逐渐逼近平方根:
代码如下:
import math
from math import sqrt。
def sqrt_binary(num):。
x=sqrt(num)
y=num/2.0
low=0.0
up=num*1.0
count=1
while abs(y-x)>0.00000001:。
print count,y
count+=1
if (y*y>num):。
up=y
y=low+(y-low)/2。
else:
low=y
y=up-(up-y)/2
return y
print(sqrt_binary(5))。
print(sqrt(5))
2:牛顿迭代
仔细思考一下就能发现,我们需要解决的问题可以简单化理解。
从函数意义上理解:我们是要求函数f(x) = x²,使f(x) = num的近似解,即x² - num = 0的近似解。
从几何意义上理解:我们是要求抛物线g(x) = x² - num与x轴交点(g(x) = 0)最接近的点。
我们假设g(x0)=0,即x0是正解,那么我们要做的就是让近似解x不断逼近x0,这是函数导数的定义:
从几何图形上看,因为导数是切线,通过不断迭代,导数与x轴的交点会不断逼近x0。
python如何计算平方和平方根在python中,有多种方法可以求一个数的平方和平方根,可以使用:内置模块、表达式、内置函数等实现。1.使用内置模块mathimport mathmath.pow(4,2) 求4的平方...。
下面是一个 Python 程序,它输入一个正整数 n,并计算 1 到 n 之间所有整数的平方根之和:。
import math
n = int(input("Enter a positive integer: "))。
# 计算平方根之和
sum = 0
for i in range(1, n+1):。
sum += math.sqrt(i)。
print("Sum of square roots from 1 to", n, ":", sum)。
在这个程序中,我们使用 math 库中的 sqrt 函数计算数字的平方根。我们使用一个循环来遍历 1 到 n 之间的所有整数,并将它们的平方根添加到变量 sum 中。最后,我们使用 print 函数输出结果。
def sqrt_newton(num):。
x=sqrt(num)。
y=num/2.0
count=1
while abs(y-x)>0.00001:。
print count,y。
count+=1。
y=((y*1.0)+(1.0*num)/y)/2.0000。
return y
希望 是你想要的结果。
可以使用math库
import matha = 4print math.sqrt(4) # 2。
也可以直接利用python的**运算符。
a = 8a**(1/3) # 开3次方相当于1/3次乘方 结果是2 math中其他常用的数学函数:ceil(x) 取顶floor(x) 取底fabs(x) 取绝对值factorial (x) 阶乘hypot(x,y) sqrt(x*x+y*y)pow(x,y) x的y次方sqrt(x) 开平方log(x)log10(x)trunc(x) 截断取整数部分isnan (x) 判断是否NaN(not a number)degree (x) 弧度转角度radians(x) 角度转弧度。