matlab牛顿法解超越方程,超越方程的牛顿法
超越方程:tan(x)/x+b=0,其中b是任意实数。我需要引入n并给出这个方程的n个解。在我的代码(Python):from math import tan, cos, pi, sqrt, sin,expimport numpy as npfrom matplotlib.figure import Figureimport matplotlib.pyplot as pltdef f(x,b):r
超越方程:
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个解。需要修复什么才能正常工作?请帮帮我。在
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)