Лучший и безопасный способ найти все нули функции в MATLAB - PullRequest
0 голосов
/ 03 августа 2020

редактировать: я добавил изображение с примером к функции ошибки

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

Я пытался использовать функцию fzero(), но во многих случаях она упускала некоторые корни, так что теперь я делая это:

    multi_err_with_shifted = error_vals.*circshift(error_vals,-1,2);
    x_vals_near_zeros_temp = x_for_plotting(multi_err_with_shifted <= 0);

Проблема с этим методом заключается в том, что я получаю большое количество корней, а затем мне нужно удалить дубликаты, которые также вызывают проблемы, и иногда я удаляю истинные root.

Есть ли у кого-нибудь хорошая и простая идея, как мне легко найти корни?

Примечания:

  • Я не могу использовать root() в Matlab, потому что моя функция ошибок не является обязательной полиномиальной, и если это так, я не знаю ее представления.
  • Итерационный алгоритм, который я пытаюсь реализовать, - это Remez
  • Я не могу использовать обмен файлами
...