Немного программирования в среде Matlab

anaxaimEM
Сообщений: 2
Зарегистрирован: 16 дек 2012, 21:00

Немного программирования в среде Matlab

Сообщение anaxaimEM » 17 дек 2012, 19:38

Имеются параметры объекта K,T1,T2
Расчетное значение кривой Xp и значение искаженной помехами кривой Xizm=Xp+shum
Нужно найти такие параметры TT1 и TT2, которые обеспечивают минимум критерия близости рассчитанного как (((Xizm-Xp)^2)/N)^0.5
Эта задача у меня выполнена.

А задание состоит в следующем: Уменьшать шаг (shag) до тех пор пока не будет достигнута заданная точность ez (среднеквадратичная ошибка), равная e=((Xe-Xp)*(Xe-Xp)')/N^0.5, где Xe рассчитанное с данными параметрами T1 и T2, а Xp -расчетное значение, но уже с найденными TT1 и TT2, которые обеспечивают минимальный критерий близости.

Помогите а то уже замучился с ней. Код рабочей программы.

Код:

Код: Выбрать все

K=100; T1=4.58; T2=1.72; N=50; i=1:1:N; t=(20/N)*i;
shum=40*rand(1,50);
Xp=K*(1+(T1/(T2-T1))*exp(-t/T1)+(-T2/(T2-T1))*exp(-t/T2));
Xizm=Xp+shum-20;
shag=0.1; ez=5;
for m=1:50;
 T10=shag*m;
 for l=0:(m-1);
 T20=shag*l;
 Xp=K*(1+(T10/(T20-T10))*exp(-t/T10)+(-T20/(T20-T10))*exp(-t/T20));
 F=(Xizm-Xp)*((Xizm-Xp)');
 if m==1 & l==0 Fmin=F; end;
 if F<Fmin Fmin=F; T1min=T10; T2min=T20; end;
 end;
 end;
T0=(Fmin/(N-2))^0.5;
TT1=T1min;
TT2=T2min;
Xe=K*(1+(T1/(T2-T1))*exp(-t/T1)+(-T2/(T2-T1))*exp(-t/T2));
Xp=K*(1+(TT1/(TT2-TT1))*exp(-t/TT1)+(-TT2/(TT2-TT1))*exp(-t/TT2));
e=((Xe-Xp)*(Xe-Xp)')/(N-1)^0.5;
plot(t,Xp,t,Xe,t,Xizm);
Последний раз редактировалось anaxaimEM 30 ноя 2019, 15:54, всего редактировалось 1 раз.
Причина: test

Вернуться в «Для начинающих»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 7 гостей