wufaxian 发表于 2020-10-11 18:01:29

cos(θ)*sin(θ)+(sin(θ)-1)*cos(θ)=0 如何用Python 或 sage 求出指定区间的所有解

以上方程我想用 sage 或 python 求出指定范围的全部解。
sage 代码在以下链接: https://sagecell.sagemath.org/?z=eJyrsC1LLNJQr1DX5NLQ0EjOL9ao0NSMM9LULc7MAzK1NCC0rqGmpl5aZl5KfFF-fomGgY6RToUmAAwrEVI=&lang=sage&interacts=eJyLjgUAARUAuQ==

但是只给出了一个解。且是小数形式。

问题:
1 、如何得到 0-2pi 之间的全部解?
2 、得到的解如何得到 pi 的分数形式数值解?如:1.5707963267694458 完全可以给出 pi/2 的解。看着更舒服。自己手工转换也可以。就是麻烦。感觉这应该是计算机的工作。没必要手工去做。
3 、搜到一个求全解的帖子 https://ask.sagemath.org/question/40758/find-all-roots-of-an-equation/。但是感觉过于繁琐。连循环都用上了。希望论坛大神能给出更加简洁的方案。sage 官方应该有求指定范围全解的函数吧?
4 、sage 的官方文档都在这里了么? https://doc.sagemath.org/html/en/#
这个是不是 sage 的帮助文档?: https://journalssolutions.sagepub.com/support/home
5、如果用python可以得到上述想要的效果。也是可以的。烦请各位老师给出python下的示例代码。多谢!

aimisiyou 发表于 2020-10-12 09:19:29

这算问题吗?化简后不就是方程sin(2Q)=sin(pi/2-Q).

wufaxian 发表于 2020-10-12 10:12:51

aimisiyou 发表于 2020-10-12 09:19
这算问题吗?化简后不就是方程sin(2Q)=sin(pi/2-Q).

这是一个有关软件使用方法的问题。三角函数只是用于说明问题的一个例子。请问你知道这个软件使用方法问题的答案么?

markfang2050 发表于 2020-10-12 11:14:39

本帖最后由 markfang2050 于 2020-10-12 12:00 编辑

import sympy # 引入解方程的专业模块sympy
from sympy import *
import numpy as np
from numpy import sin,cos,array,pi
x=symbols('x')   # 申明未知数"x"
result =sympy.solve(sympy.cos(x)*sympy.sin(x)+sympy.cos(x)*(sympy.sin(x)-1),x)
print("三角函数方程cos(θ)*sin(θ)+(sin(θ)-1)*cos(θ)=0符号解:",result)# 打印出结果

///////////////////
三角函数方程cos(θ)*sin(θ)+(sin(θ)-1)*cos(θ)=0符号解:
[-pi/2,pi/6, pi/2, 2*atan(sqrt(3) + 2]

wufaxian 发表于 2020-10-12 15:08:31

markfang2050 发表于 2020-10-12 11:14
import sympy # 引入解方程的专业模块sympy
from sympy import *
import numpy as np


多谢。没想到在这个问题上sympy比sage做的好。不过也可能是我sage使用方法不对。
页: [1]
查看完整版本: cos(θ)*sin(θ)+(sin(θ)-1)*cos(θ)=0 如何用Python 或 sage 求出指定区间的所有解