Октава, как работает февал? - PullRequest
0 голосов
/ 07 апреля 2019

Я пытаюсь понять, как работает этот язык, и я испытываю 2 проблемы. У меня есть пример, который использует метод деления пополам в октаве (по некоторым причинам я не мог загрузить код метода деления пополам)

Первое: if feval(fun,xa)*feval(fun,xb)>0, проверяется ли xa, xb выше нуля?
Второе: xperiod=[xperiod;[xa,xb]]; Если xperiod=1, xa=2, xb=3, что будет xperiod?

1 Ответ

0 голосов
/ 07 апреля 2019

То, что вы спрашивали, было очень трудно понять без некоторого базового форматирования.Это совсем не ясно: if feval(fun,xa)*feval(fun,xb)>0.Однако обычно feval просто вызывает функцию fun с входными аргументами xa в первом случае и xb во втором.Поэтому feval(fun,xa)*feval(fun,xb)>0 просто вычисляет два фекалии, а затем умножает их, проверяя, что результат положительный.Зачем ему проверять, что xa, xb> 0, поскольку вы не просили Октаву сделать это?

xperiod=[xperiod;[xa,xb]]; выдаст ошибку времени выполнения.xperiod=1.xa=2, xb=3, поэтому [xa,xb] - это матрица (1x2): [2,3].Однако ; вставляет новую строку, поэтому [xperiod;[xa,xb]]; пытается создать матрицу из двух строк, с первой строкой [1] и второй [2,3].Это приведет к ошибке, поскольку в каждой строке и каждом столбце должно быть одинаковое количество элементов.

...