Help with 'solve' function in MATLAB for numerical solution!
6 ビュー (過去 30 日間)
古いコメントを表示
For example, lets say I have the expression "x=2^x*b+c" and I use solve function as,
d=solve('x=(2^x)*b+c');
Now if I were to assign 'b' and 'c' values prior to writing the solve statement, the solution in 'd' will still return a SYMBOLIC solution.
If b=2, c=3, for example and I write,
d=solve('x=(2^x)*2+3');
I will get the numerical solution, but INSTEAD
if i type
d=solve('x=(2^x)*b+c');
with the values of 'b' and 'c' declared prior to this statement, I get a symbolic solution.
What do I need to do to get a NUMERICAL answer each time? (This is because the values of 'b' and 'c' are changing within a loop) (Also note this is just an example to illustrate my problem, not the real function I wish to solve)
Thanks Ian
0 件のコメント
採用された回答
Matt Fig
2012 年 9 月 5 日
編集済み: Matt Fig
2012 年 9 月 5 日
d = solve('x=(2^x)*b+c');
n = subs(d,{'b','c'},{2,3}) % Put 2 for b, 3 for c
If you are doing the substitutions in a loop, this will probably be faster:
C = matlabFunction(d); % Convert symbolic into a func handle.
C(2,3)
その他の回答 (2 件)
Babak
2012 年 9 月 5 日
After you get the symbolic solution "d", you may need to say:
num_sol = vpa(d)
which computes d with numbers provided before. You should look at the list of the functions provided in Symbolic Math Toolbox.
0 件のコメント
Heidi Miller
2020 年 9 月 16 日
%%
%
syms x y g
x=x==6
x=6
g = 3*pi*x.^2
gives the numerical answer too
1 件のコメント
Walter Roberson
2020 年 9 月 16 日
The original question had x on both sides of the equation.
The code you post here does not have x on both sides of the equation. It also overwrites values in such a way that the code is completely equivalent to just the last two lines, assigning numeric 6 to x and then calculating g purely numerically. No equation solving is performed.
参考
カテゴリ
Help Center および File Exchange で Symbolic Math Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!