for문과 (x : y : z) 를 통한 벡터 생성 질문입니다.

2 views (last 30 days)
junghwan Na
junghwan Na on 9 Jun 2021
Answered: Shivani on 30 May 2024
x = (x0:h:xn); // 이때 x벡터가 어떤식으로 생성되는지와
n = length(x);
y = zeros(n,1);
y(1) = y0;
for i=2:n // 현재 함수에 값 입력시 for문이 작동하지 않습니다.
y(i) = y(i-1)+h*feval(f,x(i-1),y(i-1));
end

Answers (1)

Shivani
Shivani on 30 May 2024
Hello @junghwan Na,
한국어에 대한 지식이 부족하기 때문에 이 질문에는 영어로 답변하겠습니다.
On analysing the code snippet provided, I understand that this code is a simple implementation of the Euler method.
In the following line of code we are populating the vector ‘x’
x = (x0:h:xn);
Here, 'x0' represents the initial value, 'xn' denotes the final value, and 'h' is the step size used to populate the array. 'x(1)' will be equal to 'x0', with every subsequent element increasing by the step size 'h' until the value in 'x' reaches or exceeds 'xn'.
This is also elaborated on in the following MATLAB Answer thread: https://www.mathworks.com/matlabcentral/answers/151486-creating-an-array-of-given-size-and-increment
The ‘for’ statement iterates from the second element of the vector ‘x’ to the last one. This is because the first value of ‘y’ is already set as the initial condition ‘y0’. Please note that for solving an ODE using the Euler method, given an initial condition and a function 'f' defined as a function handle, you must remember to replace the example function 'f' with your specific function that defines the ODE you wish to solve.
Hope this helps!

Categories

Find more on MATLAB 시작하기 in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!