Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 07.01.2015
Сообщений: 10
1

Безусловный минимум функции. Метод половинного деления

19.01.2015, 16:52. Показов 1888. Ответов 6
Метки нет (Все метки)

Здравствуйте, облазил весь форум но не нашел нечего по теме. Поэтому решил создать тему нахождения минимума функции.
Итак есть код но он не правильный.
<a target="_blank" href="http://www.***********"><img src="http://i004.***********/1501/bf/3c611878b934.jpg" ></a>
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
fx=inline('2*x.^2-12*x');
x=0:0.2:10;
y=fx(x);
figure(2);
plot(x,y), grid on;
eps=0.0001;
e=0.2;
a= 0;
b= 10;
u =(a+b-eps)/2;
z =(a+b+eps)/2;
if fx(u)<fx(z)
             a =a;
             b =z;
             x= a:0.2:z;
    while abs (x) > l
    u =(a+b-eps)/2;
    z =(a+b+eps)/2;
          if fx(u)<fx(z)
             a =a;
             b =z;
             x= a:0.2:z;
          else
               a =u;
               b =z;
               x= u:0.2:z;
               
             
          end
            
    end
end
 
b,
a,
y,
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2015, 16:52
Ответы с готовыми решениями:

Найти безусловный минимум функции одной переменной
здравствуйте я начинающий программист в области matlab и у меня такая задача требуется найти...

Найти площадь заштрихованной фигуры (метод половинного деления и метод трапеций)
Нужно найти площадь заштрихованной фигуры используя метод половинного деления и метод трапеций ...

Метод половинного деления
Всем привет. С матлабом работаю недолго, расскажите, пожалуйста, как осуществить метод половинного...

Метод половинного деления
По графику понятно, что функция имеет 2 корня. Как изменить цикл, чтобы он считал и второй корень?...

6
Модератор
Эксперт по математике/физике
4733 / 3621 / 1230
Регистрация: 30.07.2012
Сообщений: 10,348
19.01.2015, 17:21 2
Underdog, загляните в самый низ этой страницы в раздел "Похожие темы"
0
0 / 0 / 0
Регистрация: 07.01.2015
Сообщений: 10
19.01.2015, 17:52  [ТС] 3
VSI, я уже это все просмотрел. Мне нужно "Нахождения минимума функции", а не нахождение корней.
0
Модератор
Эксперт по математике/физике
4733 / 3621 / 1230
Регистрация: 30.07.2012
Сообщений: 10,348
19.01.2015, 17:58 4
Underdog, а если заглянуть СЮДА? Или СЮДА?
0
0 / 0 / 0
Регистрация: 07.01.2015
Сообщений: 10
19.01.2015, 18:24  [ТС] 5
VSI,спасибо это я и так знал. Суть не в этом, я не могу правильно оптимизировать цикл.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
fx=inline('2*x.^2-exp(x)');
x=0:0.2:1;
y=fx(x);
figure(2);
plot(x,y), grid on;
eps=0.0001;
e=0.2;
a= 0;
b= 1;
u =(a+b-eps)/2;
z =(a+b+eps)/2;
x= a:z;
while  abs (x)>1
    if fx(u)<fx(z)
    a =a;
    b =z;
    x= a:z;
else
    a =u;
    b =b;
    x =u:z; 
   end
   
end
x,
b,
a,
y,
Цикл работает неправильно, хотя есть потому что я что то упускаю. Дело в том что завершением решения является последний минимальный отрезок который делиться на 2.
0
2404 / 1807 / 397
Регистрация: 15.12.2013
Сообщений: 7,776
19.01.2015, 18:41 6
Цитата Сообщение от Underdog Посмотреть сообщение
Дело в том что завершением решения является последний минимальный отрезок который делиться на 2.
Любой отрезок можно разделить на 2
0
0 / 0 / 0
Регистрация: 07.01.2015
Сообщений: 10
20.01.2015, 08:16  [ТС] 7
Все работает правильно, простите меня. Я не это имел ввиду, мне надо просто вывести на экран минимальное значение, а то у меня тупо все фигачит.

Добавлено через 13 часов 15 минут
Кому интересно, вот готовый код. Всего 2 дня и нашел таки.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function Minimum(a,b,eps)
%Minimum(a,b,eps) функция нахождения минимума функции f(x)
% методом "Дихотомии" на отрезке [a, b] с точностью eps.
% Функция f(x) задаётся в M-файле, находящимся в той же дирекктории.
% (!) Для правильной работы функции необходимо, чтоб a<b и
% искомое значение было б единствено на [a, b].
fx=inline('2*x.^2-exp(x)');
x=0:0.2:1;
y=fx(x);
figure(2);
plot(x,y), grid on;
a = 0;
b = 1;
eps = 0.0001
x1=(a+b-eps)/2; x2=(a+b+eps)/2;
A=fx(x1); B=fx(x2);
while 1
if A<B
b=x2;
a=a;
if b-a<eps break;
else x2=x1; B=A; x1=(a+b-eps)/2; A=fx(x1);
end;
else
a=x1;
b=b;
if b-a<eps break;
else x1=x2; A=B; x2=(a+b+eps)/2; B=fx(x2);
end;
end;
end;
x=(a+b)/2;
disp(sprintf('%s %.15f','Минимум функции f(x): x_min = ',x));
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2015, 08:16

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Метод половинного деления
Помогите пожалуйста как организовать эту всю штуку... Решение уравнений с одной переменной....

Метод половинного деления
Создать программу на внутреннем языке среды МatLAB, реализующей метод половинного деления:...

Метод половинного деления и метод ньютона
Помогите пожалуйста отладить программу, выдает ошибку, а от чего именно не пойму clear all; %...

Метод половинного деления (бисекции)
Всем привет! В универе сейчас тема по решению в Matlab, но из-за травмы приходится лежать дома. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.