Проблема находится в первой строке кода:
dy =(2+2*x-2^2);
, поскольку это первая инструкция кода, переменная x
не была объявлена, и Matlab возвращает указанную вами ошибку.
Я также хотел бы добавить два комментария:
Потому что в for l oop вы уже ввели производную, y= y + 2+2*x-2^2 * h;
, вам не нужно указать производную в начале кода. Прокомментируйте или удалите первую строку.
Однако лучший способ сделать метод Эйлера более общим - использовать дескрипторы функций . Затем вы можете ввести в первой строке кода
dy = @(x) (2+2*x-2^2);
и для l oop использовать эту функцию:
for x = x0 : h : xn-hypot
y = y + dy(x) * h;
x = x + h;
end
Таким образом, вам не нужно менять значение l oop с помощью метода Эйлера, и он фактически работает для любого дифференциального уравнения первого порядка (просто измените функцию dy
).