Нахождение, где два уравнения равны

У меня есть вопрос, где я хочу найти, где два уравнения равны. Я хочу решить эту проблему, вычитая два уравнения и используя fzero(разность), чтобы получить корень при разности = 0, что приводит к равенству двух уравнений. Я делаю это следующим образом:

fun1 = @(R) sqrt(2*R/(1+R))-1 + sqrt(1/R)*(1-sqrt(2/(1+R)));
fun2 = @(R) sqrt(2) - 1 + sqrt(1/R)*(sqrt(2)-1);
difference = @(R) sqrt(2*R/(1+R))-1 + sqrt(1/R)*(1-sqrt(2/(1+R))) - sqrt(2) - 1 + sqrt(1/R)*(sqrt(2)-1);
Rval = fzero(difference,11)

При этом я сталкиваюсь со следующей ошибкой: Выход из fzero: прерывание поиска интервала, содержащего изменение знака, поскольку во время поиска возникла сложная функция. (Значение функции при -3,08 составляет -1,1346+0,80582i.) Проверьте функцию или попробуйте снова с другим начальным значением.

Rval =

NaN

Я не понимаю, почему я получаю эту ошибку и как ее исправить. Я знаю, что значение R, для которого они равны, равно 0,5431, которое я получил графиком, и вижу, где они пересекаются.
Я уверен, что мой метод верен, если кто-нибудь сможет мне помочь, и я буду очень признателен.

0 ответов

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