2014-02-18 4 views
-3

Я использую этот код для оценки параметров. это дает мне ошибку в строке, приведенной ниже. как я могу исправить это. заранее спасибо.Где моя ошибка и как я могу ее исправить?

while dcnorm>1E-6 & iter<10 

f=a*(b.^(c.^t))-y; 

Ji1=b.^(c.^t); 
Ji2=a*(b^(c.^(t-1)))*(c.^t); %ERROR LINE 
Ji3=a*(b^(c.^t))*ln(b)*t*(c.^(t-1)); 

J=[Ji1 Ji2 Ji3]; 
dc=-J\f; tahmin=tahmin+dc; 

dcnorm=norm(dc); iter=iter+1; 

a=tahmin(1); b=tahmin(2); c=tahmin(3); 

D=[iter a b c norm(f) norm(dc)] 
end 
+0

На каком языке это? –

+0

- это код в формате MATLAB. – mert

ответ

2

попытка (явно использовать операции поэлементно по всему выражению):

Ji2=a.*(b.^(c.^(t-1))).*(c.^t); 

Моя догадка вам нужно изменить следующую строку, а также.

+0

, пожалуйста, напишите Ji3. "Л3 = а * (Ь^(с^т)..) * Журнал (б) * T * (с^(т-1).);.." также дает ошибку. – mert

+2

@mert вам также придется проявить некоторое усилие с вашей стороны. пожалуйста, прочитайте мой ответ. Попробуйте и ПОНИМАЙТЕ его - каким образом он отличается от вашего исходного кода и почему эта разница работает. Теперь попробуйте применить и те же рассуждения к следующей строке кода. – Shai

+0

, конечно, я попробовал. но когда я применил его, код дал предупреждение о матрице «rank rank», поэтому я снова спросил его. Прости. в любом случае я постараюсь изменить его. – mert

Смежные вопросы