홈>
RK2와 RK4의 방법을 사용하여 matlab에서 Lorenz System을 해결하려고했습니다. 두 가지 방법 모두에 대한 스크립트가 있었는데 이제 문제는 다음을 수렴하는 방법입니다.
y(1) = @(t,y) 10*(y(2)-y(1));
y(2) = @(t,y) y(1)*(28-y(3))-y(2);
y(3) = @(t,y) y(1)*y(2)-8*y(3)/3;
간단히 y의 열 벡터로
여기서 내가 바라던 것이 있는데 결코 효과가 없었습니다 :
y = zeros(3,1);
y(1) = @(t,y) 10*(y(2)-y(1));
y(2) = @(t,y) y(1)*(28-y(3))-y(2);
y(3) = @(t,y) y(1)*y(2)-8*y(3)/3;
다음은 RK2 기능입니다. 내 RK4는이 RK2와 비슷하지만, 이것이 실제로 함수 벡터가 필요한 이유를 이해하는 데 도움이 될 수 있습니다.
function y = RK2(fcn,lrange,urange,step,init)
%fcn = vector of functions
%lrange = lower bound
%urange = upper bound
%step = number of steps
%init = initial value
row = size(fcn,1);
stepsize = (urange-lrange)/step;
y = zeros(row,step);
%initializing vector of y
y(:,1) = init;
%initial condition
t = zeros(1,step+1);
%initializing vector of t
if row ~= size(init,1)
disp('number of functions and number of initial values do not match');
end
for n = 1:step
t(n) = (n-1)*stepsize;
t(step+1) = urange;
y1 = stepsize.*fcn(t(n),y(:,n));
y2 = stepsize.*fcn(t(n) + stepsize/2, y(:,n) + y1./2);
y(:,n+1) = y(:,n) + y2;
end
- 답변 # 1
- 답변 # 2
또는
f = cell(3,1); % create a cell array % initialize f{1} = @(t) t^2; f{2} = @(t) cos(2*t); f{3} = @(t) 4*(t^3); % access properties size(f)(1); % access the number of functions f{1} % access the first function f{2}(17) % evaluate the second function at x = 17
문서 : https://www.mathworks.com/help/matlab/ref/cell.html
또는 옥타브에서 :
A cell array is a data type with indexed data containers called cells, where each cell can contain any type of data.
f = cell(3,1); # create a cell array # initialize f(1) = @(t) t^2; f(2) = @(t) cos(2*t); f(3) = @(t) 4*(t^3); # access properties size(f)(1); # access the number of functions f{1} # access the first function f{2}(17) # evaluate the second function at x = 17
관련 자료
- 여러 헤더가있는 텍스트 파일에서 Matlab 배열을 만드는 창의적인 방법
- 파이썬 목록에서 2D 배열을 만드는 방법은 무엇입니까?
- javascript - map ()을 사용하여 객체 배열에서 객체를 만들 수 있습니까?
- 이 MATLAB 코드에서 인덱스를 계산하는 데 배열이 사용되는 이유는 무엇입니까?
- python - 데이터 빈도에 따라 numpy 배열에 쌍을 만드는 방법
- javascript - react에서 map 또는 다른 방법으로 사용자 지정 배열을 만드는 방법은 무엇입니까?
- php - sql - 다른 값과 일치하는 값 배열 만들기
- javascript - 배열의 모든 요소를 계산하고 모든 항목에 대해 키/값 개체를 만드는 방법은 무엇입니까?
- MATLAB에서 배열의 평균 계산
- 다른 배열의 값을 기반으로 배열을 만드는 방법 Python Numpy
- javascript - 루프를 통해 다른 배열에서 js에 다차원 배열 만들기
- MATLAB에서 대용량 데이터 세트를 생성하고 저장하는 방법은 무엇입니까?
- 사용자가 c의 배열에 삽입하는 숫자를 읽는 함수를 어떻게 만들 수 있습니까?
- xquery - 맵 배열 생성
- c# - 원형 진행률 표시 줄 배열을 만드는 방법은 무엇입니까?
- javascript - 다차원 배열에서 [12,24, 13,21]을 만드는 방법
- javascript - typescript에서 다른 배열의 정렬 된 인덱스 배열을 만드는 방법은 무엇입니까?
- c++ - 데이터를 읽고 표시하는 2 개의 함수 생성
- Javascript에서 특수 배열 문자열로 객체를 만들 수 있습니까?
- 일반 배열의 키/값을 사용하여 Java 8에서 연관 배열을 만드는 방법은 무엇입니까?
이것은 작동합니다. 함수 출력을 벡터로 만드십시오.