在无标度的情况下求解matlab中的耦合非线性方程

时间:2015-04-05 14:35:57

标签: matlab nonlinear-functions

我试图解决两个耦合代数方程

f1(x,y) = 0;  
f2(x,y) = 0;

函数f1f2的典型数量级是10^42。我运行了matlab代码,但它说没有找到解决方案。我认为问题在于因为涉及的尺度非常高。重新调整整个等式非常繁琐。我希望在(fsolve)时停止根查找功能delta(f)/f < epsilon(say 1e-6)。如何在matlab中实现这个条件?对扩展问题的任何替代解决方案也是受欢迎的。

1 个答案:

答案 0 :(得分:1)

RTFM(当然是友好的),https://de.mathworks.com/help/optim/ug/fsolve.html

您可以为解算器提供的选项包含参数TolFun,默认值为1e-6,它是函数值的绝对容差。显然没有相对容差的规定,因此您需要从初始点或更多全局考虑因素计算函数值比例以设置TolFun = scale * epsilon