#matlab
#matlab
Вопрос:
Для решения этой задачи нам нужно использовать метод Ньютона-Рафсона, чтобы найти корни конкретной функции. Код работает, когда вводится единственное значение, но когда вводится вектор, ответы не совсем правильные.
Например, когда x=2
это входные данные, 2.5933
возвращается значение, а когда x=4
, 4.3215
возвращается. Оба эти ответа верны, но когда я ввожу вектор x = [2,4]
, он возвращается [2.4106,4.4106]
.
f = @(x) [(17/77196).*x.^(3)-(15/12866).*x.^(2) 0.004];
fd = @(x) [(17/25732).*x.^(2)-(15/6433).*x];
x= %initial guess;
for i=1:10
x=x-f(x)/fd(x);
end
Ответ №1:
Вы можете попробовать это
f = @(x) [(17/77196).*x.^(3)-(15/12866).*x.^(2) 0.004];
fd = @(x) [(17/25732).*x.^(2)-(15/6433).*x];
x= [2, 4];
for i = 1:10
x = x - f(x)./fd(x);
end
x
Вам не хватало .
после f(x)
, чтобы сделать это поэлементным разделением.
Комментарии:
1. Я потратил так много времени, пытаясь убедиться, что уравнения для f и fd были введены правильно, что я совершенно забыл об этом утверждении, большое спасибо, чувак ! 🙂