Нахождение корня уравнения с использованием итерации - PullRequest
0 голосов
/ 27 октября 2018

Я пытаюсь найти корень уравнения 3x 3 + x 2 -10, используя итерацию.Вот код, который у меня есть до сих пор, однако я не думаю, что правильно реализовал цикл while, поскольку в настоящее время уравнение вычисляется только один раз.По сути, код должен оценивать, является ли абсолютное значение xVal-cVal меньше 0,0001, и, если это так, он должен распечатать значение cVal и остановиться.В противном случае значение xVal должно быть установлено равным cVal и возвратиться, однако код этого не делает.

xVal = input('Enter a value for x:');
cVal =((10-xVal^2)/3)^(1/3);
while (abs(xVal-cVal)>0.0001)
   xVal = cVal;
end
disp(cVal);

Image of flowchart for equation

Ответы [ 2 ]

0 голосов
/ 28 октября 2018

Вам необходимо обновить cVal в цикле while.

xVal = input('Enter a value for x:');
cVal =((10-xVal^2)/3)^(1/3);
while (abs(xVal-cVal)>0.0001)
   xVal = cVal;
   cVal =((10-xVal^2)/3)^(1/3);
end 
disp(cVal);

Выход:

Enter a value for x:0
    1.3905
0 голосов
/ 27 октября 2018

Методология в предоставленном изображении потоковой диаграммы не будет работать.

Попробуйте этот скрипт:

func = @(xVal)((10-xVal^2)/3)^(1/3);
x = fzero(func,StratingX)
...