2015-04-05 57 views
0

我試圖解決兩個耦合代數方程求解耦合在MATLAB非線性方程而不重新縮放

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

的功能f1f210^42大小的典型順序。我跑了matlab代碼,但它說沒有找到解決方案。我認爲這個問題是因爲涉及的規模非常高。重新調整整個方程是非常繁瑣的。我想在delta(f)/f < epsilon(say 1e-6)時停止根查找功能(fsolve)。這個條件如何在matlab中實現?任何替代解決方案的擴展問題也是受歡迎的。

+0

雙精度浮點數可以取值10^42。 – 2015-04-05 14:59:19

回答

1

RTFM(友好的課程),https://de.mathworks.com/help/optim/ug/fsolve.html

的選項,你可以提供給求解器包含有默認值1e-6是對函數值的絕對公差參數TolFun。顯然沒有相對公差的規定,所以您需要從初始點或更多全局考慮來計算函數值範圍,以設置TolFun = scale * epsilon

+0

我試過了。如果函數具有不同的比例,它將無法工作?例如f1〜10^32和f2〜10^14。 – 2015-04-06 16:37:08