problem using variables solving trigonometric equation with "solve('...')
2 次查看(过去 30 天)
显示 更早的评论
Hi all,
I am trying to solve a trigonometric equation. It works just fine if I put a number in the solver, but return an error if I type a variable.
For example:
syms x;
solve('sin(x) = x -1')
works perfectly.
However, when I try:
syms x;
a = 1;
solve('sin(x) = x -a')
I get the error:
Warning: Explicit solution could not be found.
> In solve at 81
ans =
[ empty sym ]
As the equation in integrated in some code, it is of no use if I cannot solve it with the variable. If someone has an idea it would be great!
Cheers, Flavien
0 个评论
回答(2 个)
Aaditya Kalsi
2012-4-1
It may be better to define 'a' as a symbolic variable and not a double.
syms x;
a = sym('1');
f = sin(x) -x + a;
myVal = solve(f, x);
1 个评论
Walter Roberson
2012-4-1
Defining it as a symbolic variable doesn't matter.
a = 1
f = sin(x) - x + a;
myVal = solve(f,x);
Walter Roberson
2012-4-1
syms x;
a = 1;
solve(subs(sym('sin(x) = x -a')));
The MATLAB-level value of a variable is not used within a quoted string (such as you were solving for) unless you use the subs() operation to request the substitution.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Calculus 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!