Решение связанного нелинейного уравнения в Matlab без масштабирования

Я пытаюсь решить два связанных алгебраического уравнения

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

типичный порядок величины функций f1 а также f2 являются 10^42, Я запустил код Matlab, но он сказал, что решение не найдено. Я подумал, что проблема в том, что масштабы очень высоки. Пересчет всего уравнения довольно утомителен. Я хочу остановить функцию поиска корня (fsolve) когда delta(f)/f < epsilon(say 1e-6), Как это условие может быть реализовано в Matlab? Любое альтернативное решение проблемы масштабирования также приветствуется.

1 ответ

RTFM (конечно, дружелюбно), https://de.mathworks.com/help/optim/ug/fsolve.html

Опции, которые вы можете предоставить солверу, содержат параметр TolFun со значением по умолчанию 1e-6 это абсолютный допуск для значения функции. По-видимому, здесь нет положения относительно относительного допуска, поэтому вам нужно вычислить шкалу значений функции из начальной точки или более общие соображения, чтобы установить TolFun = scale * epsilon,

Другие вопросы по тегам