Solving equation using 'vpa' function

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 件のコメント

VBBV
VBBV 2023 年 5 月 17 日
編集済み: VBBV 2023 年 5 月 17 日
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

サインインしてコメントする。

回答 (2 件)

KSSV
KSSV 2023 年 5 月 17 日

0 投票

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 件のコメント

Tan
Tan 2023 年 5 月 17 日
the reference ans is: 4.4275

サインインしてコメントする。

Dyuman Joshi
Dyuman Joshi 2023 年 5 月 17 日
編集済み: Dyuman Joshi 2023 年 5 月 17 日

0 投票

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

コミュニティ

カテゴリ

質問済み:

Tan
2023 年 5 月 17 日

編集済み:

2023 年 5 月 17 日

Community Treasure Hunt

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

Start Hunting!

Translated by