Реши уравнение sin(2x)+3cosx=√3(1+cos(2x) +sinx)
創建於:2025年7月12日
創建於:2025年7月12日
Реши уравнение sin(2x)+3cosx=√3(1+cos(2x) +sinx)
pythonimport sympy as sp, math, sympy x= sp.symbols('x') expr = sp.sin(2*x)+3*sp.cos(x) - sp.sqrt(3)*(1+sp.cos(2*x)+sp.sin(x)) sp.simplify(expr) 2*sqrt(3)*cos(x + pi/6) - 2*cos(2*x + pi/6) - sqrt(3)
pythonsol= sp.solve(sp.Eq(expr, 0), x) sol[:10]
pythonsol= sp.solveset(sp.Eq(expr,0), x, domain=sp.S.Reals) sol
pythonimport math def check(x): return math.sin(2*x)+3*math.cos(x)-math.sqrt(3)*(1+math.cos(2*x)+math.sin(x)) print(check(math.pi/3)) print(check(math.pi/3+math.pi))
pythonimport sympy as sp t= sp.symbols('t', real=True) eq= (2*t - 2*sp.sqrt(3)) + sp.sqrt(1+t**2)*(3 - sp.sqrt(3)*t) sp.factor(eq) -sqrt(3)*t*sqrt(t**2 + 1) + 2*t + 3*sqrt(t**2 + 1) - 2*sqrt(3)
pythonsp.factor(eq.subs(t, sp.sqrt(3)+sp.symbols('h'))) -h*(sqrt(3)*sqrt(h**2 + 2*sqrt(3)*h + 4) - 2)
pythonsolutions= sp.solveset(eq, t, domain=sp.S.Reals) solutions FiniteSet(sqrt(3), -sqrt(3)/3, sqrt(3)/3)
pythonfor t_val in [math.sqrt(3), -math.sqrt(3)/3, math.sqrt(3)/3]: x= math.atan(t_val) # principal value print(t_val,x, check(x))
pythonprint(check(math.pi/6)) print(check(math.pi/6+math.pi))
pythonprint(check(7*math.pi/6))
pythonprint(check(math.pi/3+math.pi))
pythonprint(check(5*math.pi/6))
pythonsols=[] for n in range(-4,5): x= n*0.1 # not helpful. Let's sample fine grid. import numpy as np, math vals=[] for x in np.linspace(0, 2*math.pi, 1000): if abs(check(x))<1e-6: vals.append(x) vals[:20] [4.1887902047863905]
pythonprint(check(math.pi/3))
pythonprint(check(11*math.pi/6))
pythonprint(math.tan(5*math.pi/6))
pythonimport sympy as sp c= sp.symbols('c', real=True) solutions_c= sp.solve(4*c**2 - 2*sp.sqrt(3)*c - (2 - sp.sqrt(3)), c) solutions_c [sqrt(3)/4 + sqrt(11 - 4*sqrt(3))/4, -sqrt(11 - 4*sqrt(3))/4 + sqrt(3)/4]
python[sol.evalf() for sol in solutions_c] [0.937480042864636, -0.0714546390801975]
pythonimport math c1=0.937480042864636 y1= math.acos(c1) y1, 2*math.pi - y1 (0.35547854777760945, 5.9277067594019766)
pythonx1= y1 - math.pi/6 x1 -0.16812022782068936
python11*math.pi/6 5.759586531581287
pythonx2= 5.9277067594019766 - math.pi/6 x2 5.404107983803677
pythonprint(check(x1)) print(check(x2))
pythonroots=[] for x in np.linspace(0, 2*math.pi, 10001): if abs(check(x))<1e-4: roots.append(x) roots[:20] []
pythondef find_roots(start): try: r= sp.nsolve(expr.subs(x,start), start) return float(r%(2*math.pi)) except: return None roots=set() for guess in np.linspace(0, 2*math.pi, 30): r=find_roots(guess) if r is not None: roots.add(round(r,10)) sorted(roots) [0.5235987756, 1.0471975512, 4.1887902048, 5.7595865316]
Решение
Запишем уравнение
Подставляем:
Разделим на *:
Положим и учтём :
Разберём два случая.
a)
b) .
Переносим и делим:
Возведя в квадрат и упростив, получаем ещё два корня
Проверка в исходном уравнении показывает, что решение с годится только при , то есть при или .
Проверкой в исходном уравнении убеждаемся, что других решений нет (случай приводит к противоречию).
*Для (то есть ) левая часть становится , а правая — ; поэтому эти точки не являются корнями.