使用fsolve返回x向量旁边的一些其他变量

时间:2013-09-05 11:39:27

标签: matlab

我使用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

1 个答案:

答案 0 :(得分:2)

你的最后一行

[x,a] = fsolve(@(x) myfun(x,c),[-5;-5])

请求a成为fsolvefval)的第二个输出。在内部,fsolve仅使用函数的第一个输出;任何其他输出都被忽略。

在解决方案点获取函数的第二个输出的最简单方法是在fsolve之后再次评估函数:

x = fsolve(@(x) myfun(x,c),[-5;-5]);
[~,a] = myfun(x,c);