У меня возникли проблемы с устранением этой ошибки. Я прочитал несколько подобных вопросов, но я просто должен пропустить что-то очень простое. Следующий код использует ODE45. Есть 3 начальных условия, и мне кажется, что моя функция также выводит 3 переменные. Тем не менее, он говорит:Конфликт векторных элементов MATLAB.
«??? Ошибка с помощью ==> odearguments на 116 DBTS возвращает вектор длины 2, но длина начального условия вектора 3. Вектор, возвращаемый DBTS и начальное вектор условий должен иметь одинаковое количество элементов ».
Это мой м-файл:
function dDdt=Dbts(t,i)
global p1 p2 p3 n V1 Gb Ib U
I=i(1);
X=i(2);
G=i(3);
dIdt=-(n*(I-Ib))+(U/V1);
dXdt=-(p2*X)+(p3*I);
dGdt=-(p1*G)-(X*(G-Gb))+(9.0*exp(-0.05*t));
dDdt=[dIdt;dXdt;dGdt];
Это то, что я вложил в основной:
global p1 p2 p3 n V1 Gb Ib
p1=0.028735;
p2=0.0228344;
p3=.00005035;
n=.0926;
V1=12;
Gb=81;
Ib=15;
global G X I U
TT=[];
SS=[];
i0=[0 0 0];
tspan=[0 400];
[t,i]=ode45(@Dbts,tspan,i0);
На данный момент ошибка я отправил выше придумывает. Я знаю, что я, должно быть, что-то просчитал, но я просто не могу это точно определить. Если бы кто-нибудь мог помочь с этим, я был бы чрезвычайно благодарен. Все, что мне нужно сделать, это графики графика 3, когда я исправляю эту проблему.
То же самое касается 'G',' X' и 'I'. – am304
А, я полностью забыл размер U. Большое вам спасибо. G, I и X, где отлично, потому что я определяю их в начальных условиях. Его всегда легче решить проблему с новым набором глаз. Еще раз спасибо! – Okari