Nonscalar arrays of function handles are not allowed; use cell arrays instead.
5 ビュー (過去 30 日間)
古いコメントを表示
syms o p
fun1=o+p;
fun2=o*p+5;
eq1=matlabFunction(fun1);
eq2=matlabFunction(fun2);
bbb=fsolve(@(o,p) [eq1;eq2],[0,1]);
What am I doing wrong?
0 件のコメント
採用された回答
Steven Lord
2022 年 4 月 9 日
You need to evaluate the function handles in your fsolve call. Alternately you could skip converting the symbolic expressions into function handles and use solve.
syms o p
fun1=o+p;
fun2=o*p+5;
eq1=matlabFunction(fun1);
eq2=matlabFunction(fun2);
bbb=fsolve(@(op) [eq1(op(1), op(2));eq2(op(1), op(2))],[0,1]) % or
bbb2 = solve(eq1, eq2, o, p)
vpa(bbb2.o, 5)
vpa(bbb2.p, 5)
0 件のコメント
その他の回答 (2 件)
David Hill
2022 年 4 月 9 日
Why use symbolic and convert?
fun=@(x)[x(1)+x(2);x(1)*x(2)+5];
x=fsolve(fun,[0,1]);
参考
カテゴリ
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!