超越方程:
tan(x)/x+b=0,其中b是任意实数。
我需要引入n并给出这个方程的n个解。在
我的代码(Python):from math import tan, cos, pi, sqrt, sin,exp
import numpy as np
from matplotlib.figure import Figure
import matplotlib.pyplot as plt
def f(x,b):
return tan(x)/x + b
def f1(x,b):
return (x/(cos(x)*cos(x)) - tan(x))/(x**2)
e = 0.00000000001
def newtons_method(x0, f, f1, e):
x0 = float(x0)
while True:
x1 = x0 - (f(x0,b) / f1(x0,b))
if abs(x1 - x0) < e:
return x1
x0 = x1
result = []
n = int(input("Input n: "))
b = float(input("Input b: "))
for i in range(2,4*n,1):
result.append(newtons_method(i, f , f1, e))
lambda_result = sorted(list(set(result)))
print(len(lambda_result))
我在第1步中改变了初始近似。根的周期为~pi,因此第二个参数为4*n。我通过集合排除重复解。如果n是50,那么他只找到18个解。需要修复什么才能正常工作?请帮帮我。在