Help with 'solve' function in MATLAB for numerical solution!
조회 수: 7 (최근 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!