m0_57066015 2021-06-03 11:59 采纳率: 66.7%
浏览 255
已采纳

带有两个三角函数的方程用Python如何解决?这个没有输出

x=symbols('x')
aam=20
aab=60
aaf=100
u=pi*(1-aam/aaf)



v=nonlinsolve([2*sin(0.5*(u-x))-sin(x)-pi*aab/(2*aaf)],[x])
print(v)
  • 写回答

1条回答 默认 最新

  • 小P聊技术 2021-06-03 12:15
    关注

     
    首先确定方程组有解。由一式得  ,代回带二式,解得  ,方程组有解。不过这样解只用了数学,不符题意,下面使用 Python 来迭代求解。求解该方程组,可等价于求下述二元函数的最小值。 ( 写成  以方便观看。) 这样就可以用一些最优化算法求解了,这里使用粒子群算法。import numpy as np 

    
    from math import pi, sin, cos
    from Algorithms.PSO import ParticleSwarm
    
    def cost(v : np.ndarray) -> float:
        a, b = v
        return (a * sin(b) - 25) ** 2 + (a * (139 * cos(b) - 25 * sin(b)) + 50000) ** 2
    
    search_space = np.array([
        [-500, -2 * pi],
        [500, 2 * pi]
    ])
    
    solver = ParticleSwarm(cost, 30, search_space)
    solution = solver.iteration(1000)
    
    print(solution.best_fitness)
    print(solution.best_position)
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵