Solving equation using 'vpa' function

5 visualizaciones (últimos 30 días)
Tan
Tan el 17 de Mayo de 2023
Editada: Dyuman Joshi el 17 de Mayo de 2023
I'm solving this eq: sin(x - 1.1556)+(sin(1.1556)*exp(-x/2.2683)) using vpa function but cannot solve, and below are my coding:
syms x;
x = solve(sin(x - 1.1556)+(sin(1.1556)*exp(-x/2.2683)));
vpa(x)
How can i solve this problem?
  1 comentario
VBBV
VBBV el 17 de Mayo de 2023
Editada: VBBV el 17 de Mayo de 2023
You can modify the code by assuming constraints on variable x as shown below
syms x;
assume(x >= 1.1556 & x < 5 )
warning('off')
sol = solve(sin(x - 1.1556)+(sin(1.1556)*exp(-x/2.2683)),x);
double(vpa(sol))
ans = 4.4275

Iniciar sesión para comentar.

Respuestas (2)

KSSV
KSSV el 17 de Mayo de 2023
syms x;
eqn = sin(x - 1.1556)+(sin(1.1556)*exp(-x/2.2683))==0;
solve(eqn,x)
Warning: Unable to solve symbolically. Returning a numeric solution using vpasolve.
ans = 
0.00000000000055271527457236056353377918317335
vpasolve(eqn,x)
ans = 
0.00000000000055271527457236056353377918317335

Dyuman Joshi
Dyuman Joshi el 17 de Mayo de 2023
Editada: Dyuman Joshi el 17 de Mayo de 2023
The equation you have has multiple solutions, see plot below for reference.
If you want to return a particular solution, use vpasolve() with a specifc initial guess near that particular solution
syms x
eqn = sin(x - 1.1556)+(sin(1.1556)*exp(-x/2.2683));
fplot(eqn, [-5 25])
yline(0)
out = double(vpasolve(eqn == 0, x, 4))
out = 4.4275

Comunidades de usuarios

Más respuestas en  Power Electronics Control

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by