|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.06.2013, 12:52 | #1 |
Новичок
Джуниор
Регистрация: 30.10.2012
Сообщений: 2
|
матлаб, метод розенброка
народ, помогите с кодом на матлабе , не получается, а послезавтра уже экзамен(((.
function lekciyarozenbrok z1=0; %приращение по первому вектору z2=0; %приращение по второму вектору eps=0.01; h1=1; d1=[1 0]; d2=[0 1]; x0=[2 2]; h = h1; while (h > eps) while (abs(h)>eps) x1=x0+h.*d1; %точка используется для векторов f0=f(x0(1,1),x0(1,2)); f1=f(x1(1,1),x1(1,2)); if(f1<=f0) x0=x1; z1=z1+h; end while((f1>f0) && (abs(h)>eps)) h=-h; x1=x0+h.*d1; f1=f(x1(1,1),x1(1,2)); if(f1>f0) h=h/4; else x0=x1; z1=z1+h; end end end h=h1; while(abs(h) > eps) x1=x0+h.*d2; %точка используется для векторов f0=f(x0(1,1),x0(1,2)); f1=f(x1(1,1),x1(1,2)); if(f1<=f0) x0=x1; z2=z2+h; end while((f1>f0) && (abs(h)>eps)) h=-h; x1=x0+h.*d2; f1=f(x1(1,1),x1(1,2)); if(f1>f0) h=h/4; else x0=x1; z2=z2+h; end end end if((z1~=0) && (z2~=0)) a1=z1.*d1+z2.*d2; a2=z2.*d2; c2=a2-dot(a1,d1).*d1; d1=a1./sqrt(a1(1,1)^2+a1(1,2)^2); d2=c2./sqrt(c2(1,1).^2+c2(1,2).^2); end l = sqrt(z1^2+z2^2); z1=0; z2=0; h=h1; end end и отдельным .m файлом сама ф-ция function f = f(x0,x1) f = 10*(x1 - x0).^2 + (1 - x0).^2; return Последний раз редактировалось UTPcat5e; 20.06.2013 в 13:30. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Метод Прогонки (Алгоритм Томаса) в Матлаб (MatLab) | Саша Дмитриева | Помощь студентам | 7 | 06.06.2015 13:50 |
матлаб | Asia_Ver27 | Помощь студентам | 0 | 27.01.2013 13:48 |
Метод Розенброка с дискретным шагом | Дмитрий Дёмин | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 10.12.2012 11:34 |
МатЛаб | Vampirius | Фриланс | 0 | 12.01.2012 20:10 |
матлаб | 6669991 | Помощь студентам | 0 | 30.05.2011 13:05 |