Solve equations by fsolve and with input anonymous function format

22 次查看(过去 30 天)
By the help document of Matlab, the example of fsolve is:
function F = root2d(x)
F(1) = exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2);
F(2) = x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5;
fun = @root2d;
x0 = [0,0];
x = fsolve(fun,x0)
But now outer function transfer a anonymous function of fun, like:
fun = @(x,y) [x+y^2-5, 6*x^2+13*y-5]
Start value x0 = [1, 1]
How do I fit fsolve input format?

采纳的回答

Steven Lord
Steven Lord 2020-9-12
fun = @(x,y) [x+y^2-5, 6*x^2+13*y-5]
Since fsolve requires the function you pass into it to accept one input, a vector, you need an adapter.
g = @(xy) fun(xy(1), xy(2));
This has the interface fsolve requires and calls fun the way it expects to be called.
g([1 2]) % [0 27]
fun(1, 2) % [0 27]

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Develop Apps Using App Designer 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by