Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 05.11.2019
Сообщений: 14
Matlab до v. 2013

Не выполняется условие if

25.11.2019, 12:03. Показов 727. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал функцию, в которой необходимо найти новый массив (x1,x2,x3).
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
function primer(x0,delx)
x1=x0;
x2=x1+delx;
f1=myfun(x1);
f2=myfun(x2);
if f1<f2
    x3=x1-delx;
    f3=myfun(x3);
else
    x3=x1+2*delx;
    f3=myfun(x3);
end
x=[x1 x2 x3];
xsort=sort(x);
x1=xsort(1); x2=xsort(2); x3=xsort(3);
f1=myfun(x1); f2=myfun(x2); f3=myfun(x3);
sprintf([' x1 = ', num2str(x1), '  x2 = ', num2str(x2), '  x3 = ', num2str(x3), '  f1 = ', num2str(f1), '  f2 = ', num2str(f2), '  f3 = ', num2str(f3)])
f=[f1 f2 f3];
[fmin, idxf]=min(f)
xmin=xsort(idxf)
a0=f1;
a1=(f2-f1)/(x2-x1);
a2=(1/(x3-x2))*(((f3-f1)/(x3-x1))-a1);
X=(1/2)*(x2+x1)-(a1/(2*a2))
sprintf(['a0 = ', num2str(a0), '  a1 = ', num2str(a1), '  a2 = ', num2str(a2)])
        if x1<X<x2 
        x1=x1
        x2=x2
        x3=X
    elseif x2<X<x3
        x1=X
        x2=x2
        x3=x3    
    end
end
Получаю следующие результаты:

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
37
38
39
40
41
42
43
44
45
>> primer(2.5, 5.5)
 
ans =
 
 x1 = -3  x2 = 2.5  x3 = 8  f1 = 2.6607  f2 = 1.4763  f3 = 1.536
 
 
fmin =
 
    1.4763
 
 
idxf =
 
     2
 
 
xmin =
 
    2.5000
 
 
X =
 
    4.9860
 
 
ans =
 
a0 = 2.6607  a1 = -0.21534  a2 = 0.020564
 
 
x1 =
 
    -3
 
 
x2 =
 
    2.5000
 
 
x3 =
 
    4.9860
Значение X (большое) получилось 4.9860, оно явно лежит в интервале x2 < X < x3, но функция игнорирует это условие и подставляет значение в интервал x1 < X < x2, что является неправильным. Подскажите пожалуйста, в чем может быть проблема?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.11.2019, 12:03
Ответы с готовыми решениями:

Вывести на экран "условие выполняется", если все элементы массива положительные и "условие не выполняется", если это не так.
1)Тип массива вещественный.Число элементов 11. Вывести на экран &quot;условие выполняется&quot;, если все элементы массива положительные и...

Если все элементы двумерного массива положительные, то вывести сообщение «УСЛОВИЕ ВЫПОЛНЯЕТСЯ», иначе «УСЛОВИЕ НЕ
3) Если все элементы двумерного массива положительные, то вывести сообщение «УСЛОВИЕ ВЫПОЛНЯЕТСЯ», иначе «УСЛОВИЕ НЕ ВЫПОЛНЯЕТСЯ».

Написать λ -выражение, описывающее условие, которое проверяет список и выдает истину, если выполняется условие
Здравстуйте! Решите, пожалуйста, задачу на Lisp, не понимаю функциональный язык( А лабороторные сдать надо. 1)Необходимо написать λ...

3
117 / 83 / 39
Регистрация: 06.01.2013
Сообщений: 274
25.11.2019, 12:20
такая запись условия неправильна в матлаб
Matlab M
1
if x1<X<x2
нужно
Matlab M
1
if x1<X && X<x2
1
0 / 0 / 0
Регистрация: 05.11.2019
Сообщений: 14
25.11.2019, 14:29  [ТС]
Сергей Тетьора, Спасибо!
0
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
25.11.2019, 21:17
withoutname, у вас много лишних действий в программе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.11.2019, 21:17
Помогаю со студенческими работами здесь

Почему выполняется условие else, если выполнилось условие if?
При вводе буквы, которое есть в переменной word, по идеи, если такой буквы нету, то должно выдать сообщение, то, что **Такой буквы нету**. ...

Написать программу, которая в качестве результата дает истину, если выполняется заданное условие, или ложь, если условие
Написать программу, которая в качестве результата дает истину, если выполняется заданное условие, или ложь, если условие не выполняется:...

Если не выполняется условие в if, то не попадает в условие в else, а попадает сразу в блок catch
Всем привет) Решил выучить язык C#... наткулся на простенький пример ниже! если не выполняется if, не попадаю в else, а попадаю сразу в...

Не выполняется условие
Добрый день есть код регистрации пользователя! данный код работает но не выполняет одно условие а именно: /* reg user - регистрация...

Не выполняется условие
В приведённом коде почему-то не выполняется условие if. Данные приходят из формы. В переменной $name - имя поля, в $value - то, что...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru