我使用fsolve
函数来查找向量x
(答案),但我需要我的函数来返回其他值A
,但下面的代码不起作用。
这是我的功能:
function [F,A] = myfun(x,c)
F = [ 2*x(1) - x(2) - exp(c*x(1))
-x(1) + 2*x(2) - exp(c*x(2))];
.
.
.
A = 1;
这是来电者:
[x,a] = fsolve(@(x) myfun(x,c),[-5;-5])
但在上面a
中保存F(x)
值(必须几乎为零)而不是A
。
答案 0 :(得分:2)
你的最后一行
[x,a] = fsolve(@(x) myfun(x,c),[-5;-5])
请求a
成为fsolve
(fval
)的第二个输出。在内部,fsolve
仅使用函数的第一个输出;任何其他输出都被忽略。
在解决方案点获取函数的第二个输出的最简单方法是在fsolve
之后再次评估函数:
x = fsolve(@(x) myfun(x,c),[-5;-5]);
[~,a] = myfun(x,c);