필터 지우기
필터 지우기

Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

matlab 'Index exceeds array boundaries'

조회 수: 1 (최근 30일)
alsgud qor
alsgud qor 2020년 4월 19일
마감: MATLAB Answer Bot 2021년 8월 20일
by this code, that error happens...and i dunno why...
function H12 =H1(t,X)
m=10;
c=1000;
k=100000;
e=0.001;
w=100;
R=0.5;
X=R*cos(w*t);
Y=R*sin(w*t);
F1=m*e*w^2*cos(w*t);
F2=m*e*w^2*sin(w*t);
H12=[X(2); -c/m*X(2)-k/m*X(1)+F1/m];
end
--------------------------------------------------------
t=0:0.1:20;
X0=[0,0];
>>
[t,X]=ode45(@H1,t,X0);
  댓글 수: 2
madhan ravi
madhan ravi 2020년 4월 19일
편집: madhan ravi 2020년 4월 19일
What’s X(2) ? Will you post the latex form of the equation?
alsgud qor
alsgud qor 2020년 4월 19일
편집: alsgud qor 2020년 4월 19일
It s a second derivate form...um..I think I misunderstood that matlab automatically understood that thing...also X(1) is equal to X's first derivate..I put
X(1)=diff(X);
X(2)=diff(X(1));
in that function and it s still ain't working...

답변 (1개)

Devineni Aslesha
Devineni Aslesha 2020년 4월 21일
편집: Devineni Aslesha 2020년 4월 21일
In the given code, the initial conditions are passed to 'ode45' from the variable 'X0' which is a vector. The 'X0' values are taken by the variable 'X' to obtain the ode solver output. However, in the code, the variable 'X' is modified in such a way that it becomes a scalar value due to which the error occurs. The error can be resolved by not modifying the variable 'X' in the function definition.
I would like to know why the variable 'X' has to be modified in the function definition.

이 질문은 마감되었습니다.

태그

Community Treasure Hunt

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

Start Hunting!

Translated by