超越方程:

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个解。需要修复什么才能正常工作?请帮帮我。在

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐