2015-12-06 3 views
0

У меня есть следующие функции:Ошибка при помощи fzero() с отрицательными значениями

function f = graph1(x) 
    f = sqrt(x) - cos(sqrt(x)); 
end 

Вызов fzero для него с помощью:

>> x1 =fzero(@graph1, [-1.0,1.0]) 

И есть ошибка:

Error using fzero (line 242) 
Function values at interval endpoints must be finite and real. 

Все отлично работает с положительными значениями, что не так?

P.S Я новичок в Matlab.

+3

Ошибка довольно понятная, значения 'f' на ваших границах (' [-1.0, 1.0] ') должны быть конечными и реальными. 'sqrt (x)' не является действительным для отрицательных чисел. – excaza

+0

Спасибо, я понимаю свою ошибку, проблема в математике не в коде :) Как пометить свой комментарий как ответ? –

+0

Добро пожаловать, я отправлю ответ в любой момент. – excaza

ответ

2

Как я уже говорил выше, ошибка более или менее понятна. Ваша функция не является конечной и реальной на ваших конечных точках, потому что sqrt(x) не является реальным для отрицательных значений x.

Смежные вопросы