Я хочу создать 3D-график последней доли травы, покрытой Землей (= через 2 миллиарда лет) (= A) в зависимости от меняющейся смертности травы (= D) и скорость роста травы (= G).Создание 3D-графика в Matlab
Окончательное значение А (в 2 миллиарда лет от сейчас) может быть вычислена с помощью цикла со следующим уравнением: discritised
A (T + DT) = А (Т) * ((1- а (т)) * GD) * дт + а (т)
%Define variables and arrays
D=0.1; %constant value
G=0.4; %constant value
A=0.001; %initial value of A at t=0
t=0;
dt=10E6;
startloop=1; %define number of iterations
endloop=200;
timevector=zeros(1,endloop); %create vector with 0
grassvector=zeros(1,endloop);
%Define the loop
for t=startloop:endloop
A=A.*((((1-A).*G)-D)) + A;
grassvector(t)=A;
timevector(t)=t*dt;
end
Теперь я застрял на том, как создать 3D сюжет этой конечной величины а в зависимости от того или иного G и D. Я получил это, но после нескольких испытаний он продолжает давать ошибки:
%(1) Create array of values for G and D varying between 0 and 1
A=0.001;
G=[0.005:0.005:1]; %Vary from 0.005 to 1 in steps of 0.005
D=[0.005:0.005:1]; %Vary from 0.005 to 1 in steps of 0.005
%(2) Meshgrid both variables = all possible combinations in a matrix
[Ggrid,Dgrid]=meshgrid(G,D);
%(3) Calculate the final grass fraction with varying G and D
D=0.1;
G=0.4;
A=0.001;
t=0;
dt=10E6;
startloop=1; %define number of iterations
endloop=200;
timevector=zeros(1,endloop); %create vector with 0
grassvector=zeros(1,endloop);
%Define the loop
for t=startloop:endloop
A=A.*((((1-A).*Ggrid)-Dgrid)) + A;
grassvector(t)=A;
timevector(t)=t*dt;
end
%(4) mesh together with D and G
...??
Может ли кто-нибудь помочь? Благодаря!
Вы код trhows ошибку, потому что grassvector не тот же размер, как A. Первый, аккуратный код, а затем спросить о заговоре! –