Solving equation using 'vpa' function

13 vues (au cours des 30 derniers jours)
Tan
Tan le 17 Mai 2023
Modifié(e) : Dyuman Joshi le 17 Mai 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 commentaire
VBBV
VBBV le 17 Mai 2023
Modifié(e) : VBBV le 17 Mai 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

Connectez-vous pour commenter.

Réponses (2)

KSSV
KSSV le 17 Mai 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
  1 commentaire
Tan
Tan le 17 Mai 2023
the reference ans is: 4.4275

Connectez-vous pour commenter.


Dyuman Joshi
Dyuman Joshi le 17 Mai 2023
Modifié(e) : Dyuman Joshi le 17 Mai 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

Communautés

Plus de réponses dans  Power Electronics Control

Catégories

En savoir plus sur Formula Manipulation and Simplification dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by