‘壹’ python 二分法求方程的根
import matplotlib.pyplot as plt
a=3
b=-2
x=(a+b)/2.0 # 中点
def f(x): # 定义方程式
y=x-2**0.5
return(y)
u=max([a,b])
l=min([a,b])
i=0
z=[]
est=[]
# 循嫌困键环体
while abs(f(x))> 10.0**(-15.0): # 计算精度
if f(u)*f(l)>0: # 判断输入假设是否芹巧成立
print('Error: Assumption not holds! ')
break
if f(x)*f(u)>0: # 判断零点落尺蔽入区间
u=x
x=(x+l)/2.0
else:
l=x
x=(x+u)/2.0
i=i+1
z=z+[abs(x-2**0.5)]
est=est+[abs(a-b)/2**i]
plt.semilogy(z)
plt.semilogy(est)
plt.grid('on')
plt.legend(['simu','theo'])
plt.show()
‘贰’ 请问一下python程序代码错在哪里了,谢谢。是通过二分法求方程根的函数
代码有两个地方有问题
1:19行的return缩进有问题,19行的return不应该出现在一个非方法的地方
2:代码有可能出现死循环,在我输入a:10,b:10,c:10,d:10的时候出现死循环,请检查代码逻辑
我已经调整好了
deff(x):
s=(a*x)**3+(b*x)**2+(c*x)+d
returns
a=int(input("a"))
b=int(input("b"))
c=int(input("c"))
d=int(input("d"))
mid=0
foriinrange(-100,100,1):
x1=int(i)
x2=int(i+1)
iff(x1)*f(x2)<0:
lo,hi=x1,x2
whilehi-lo>0.01:
mid=(lo+hi)/2
iff(lo)*f(mid)<0:
hi=mid
else:
lo=mid
else:
pass
printmid
‘叁’ python里的二次根式怎么写
二次方根,表示为〔√ ̄〕。
如:数学语言为:√ ̄16=4。语言描述为:根号下16=4。
以下实例为通过用户输入一个数字,并计算这个数字的平方根:#-*-coding:UTF-8-*-#Filename:test.pynum=float(input('请输入一个数字:'))num_sqrt=num**0.5print('%0.3f的平方根为%0.3f'%(num,num_sqrt))。执行以上代码输出结果为:$pythontest.py请输入一个数字:44.000的平方根为2.000,在该实例中,我们通过用户输入一个数字,并使用指数运算符**来计算该数的平方根。
‘肆’ python怎么求解一元二次方程的根
import numpy as np
def solve_quad(a,b,c):
if a == 0:
print('您输入的不是二次方程!')
else:
delta = b*b-4*a*c
x = -b/(2*a)
if delta == 0:
print('方程有惟一解,X=%f'%(x))
return x
elif delta > 0:
x1 = x-np.sqrt(delta)/(2*a)
x2 = x+np.sqrt(delta)/(2*a)
print('方程有两个实根:X1=%f,X2=%f'%(x1,x2))
return x1,x2
else:
x1 = (-b+complex(0,1)*np.sqrt((-1)*delta))/(2*a)
x2 = (-b-complex(0,1)*np.sqrt((-1)*delta))/(2*a)
print(x1,x2)
return x1,x2
Python
是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。
‘伍’ 利用Python语言计算方程的根
import math
def erfenfa(function, a, b): #定义函数,利用二分法求方程的根,氏枣裤function为具体方程,a,b为根的取值范围
start = a
end = b
if function(a) == 0:
歼简return a
elif function(b) == 0:
return b
elif function(a) * function(b) > 0:
print("couldn't find root in [a,b]")
return
else:
mid = (start + end) / 2
while abs(start - mid) > 0.0000001:
if function(mid) == 0:
return mid
岩好elif function(mid) * function(start) < 0:
end = mid
else:
start = mid
mid = (start + end) / 2
return mid
def f(x):#定义构造方程式函数
return math.pow(x, 5) -15*math.pow(x, 4) +85*math.pow(x, 3)-225*pow(x,2)+274*x - 121
print(round(erfenfa(f, 1.5, 2.4),6))
‘陆’ python如何求平方根
while True: a=float(input('请输入实数:'))
def power(x):
return x*x print(a,'^2=',power(a))
b=int(input('是否要继续计算,是,请输入1,否,请输入0: '))
if b==0: print('已退出计算器')
break
else:
continue
(6)在python中二分法求函数根扩展阅读:
使用Python完成,输入两个数,得到加减乘除余结果的功能,其中结果输出使用不同的格式。
1. 定义两个变量a,b,使用键盘输入的方式。python的2.x版本中键盘输入有两种方式可以实现:raw_input(),input(),在3.X版本中两者合并为一个,只支持input().
2. 输出结果:
(1) 输出string型的结果
[python] view plain print?
<codeclass="language-python">print("A+B=%s"%(a+b))#outputstring</code>
print("A+B = %s"%(a+b)) # output string
(2) 输出int型的结果:默认格式,占位符格式,填充占位符格式,靠左格式
[python] view plain print?
<codeclass="language-python">print("A-B=%d"%(a-b))#outputint
print("A-B=%4d"%(a-b))
print("A-B=%04d"%(a-b))
print("A-B=%-4d"%(a-b))</code>
print("A-B = %d"%(a-b)) # output intprint("A-B = %4d"%(a-b))print("A-B = %04d"%(a-b))print("A-B = %-4d"%(a-b))
结果:a=7,b=3
A-B = 4A-B = 4A-B = 0004A-B = 4
(3) 输出为浮点数类型:默认格式,限制小数位数格式,占位符及限制小数位数格式
print("A*B = %f"%(a*b)) # output floatprint("A/B = %.2f"%(a/b)) # output float of two decimal placesprint("A/B = %05.2f"%(a/b)) # output float of two decimal places
结果:a=7,b=3
A*B = 21.000000
A/B = 2.33
3. 全部实现,开发工具为pycharm
# calculatea = int(input("Please input number A:"))b = int(input("Please input number B:"))print("A+B = %s"%(a+b)) # output stringprint("A-B = %d"%(a-b)) # output intprint("A*B = %f"%(a*b)) # output floatprint("A/B = %.2f"%(a/b)) # output float of two decimal placesprint("A%B"+" = %06d"%(a%b)) # output int of 6 bit placeholder filled with 0print("A与B和是%s,差是%d,乘积是%02.2f,商是%-4.2f,余数是%03d"%(a+b,a-b,a*b,a/b,a%b))