Various errors whilst running a while loop.
情報
この質問は閉じられています。 編集または回答するには再度開いてください。
古いコメントを表示
h(1)=100000; %initial Height
t(1)=0; %Initial Time
dt=0.005;
p(1)=(((h(1))/71)+1.4); %Air Density
g(1)=(40*10^7)/(6371+h(1))^2; %initial gravity
A=5; %Area
c=0.7; %Drag Coefficient
m=850; %Mass
Fd(1)=0.5*c*(p(1))*a(1)*(v(1))^2;
v(1)=59.29; %Initial velocity
a(1)=0.03535; %Initial Acceleration
i=1; %Loop Counter
while h(end)>=0
t(i+1)=t(i)+dt;
h(i+1)=100000-((v(i+1)*t(i+1))+(0.5*(a(i))*(t(i+1))^2));
p(i+1)=(((h(i+1))/71)+1.4);
Fd(i+1)=0.5*c*(p(i+1))*A*(v(i+1))^2;
g(i+1)=(40*10^7)/(6371+h(i+1))^2;
a(i+1)=g(i+1)-(Fd(i+1)/850);
v(i+1)=v(1)+(a(i+1)*t(i+1));
end
With this code I want to be able to plot graphs and get values for a and v. When I run it an error comes up either saying 'undefined function or variable a'. or 'undefined function or variable v'. One time I managed to stop these errors but I still got an error saying 'Index exceed number of array elements'. Any help would be appreciated.
6 件のコメント
Walter Roberson
2020 年 3 月 14 日
Fd(1)=0.5*c*(p(1))*a(1)*(v(1))^2;
That does need a and v but you have not assigned anything to them. You assigned to A but not a
Sam Potter
2020 年 3 月 14 日
Walter Roberson
2020 年 3 月 14 日
Fd(1)=0.5*c*(p(1))*a(1)*(v(1))^2;
is before those lines
Sam Potter
2020 年 3 月 14 日
編集済み: Walter Roberson
2020 年 3 月 14 日
Walter Roberson
2020 年 3 月 14 日
h(i+1)=100000-((v(i+1)*t(i+1))+(0.5*(a(i))*(t(i+1))^2));
When i is 1, that tries to use v(1+1) and t(1+1) and a(1) . You assigned to t(1+1) in the previous line of code, so that exists, and a(1) exists . But v(2) does not exist yet, and will not exist until the end of the loop (and it relies upon the updated a(2) so you cannot just move it to earlier in the code.)
Sam Potter
2020 年 3 月 14 日
回答 (1 件)
Sriram Tadavarty
2020 年 3 月 14 日
0 投票
Hi Sam,
This is the same as asked before here.
Hope this helps.
Regards,
Sriram
1 件のコメント
Sam Potter
2020 年 3 月 14 日
この質問は閉じられています。
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!