Форум программистов, компьютерный форум, киберфорум
Наши страницы
Matlab
Войти
Регистрация
Восстановить пароль
 
Raimen
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 5
1

Не получается вывести ошибку при некорректном вводе данных

29.05.2015, 21:03. Просмотров 286. Ответов 8
Метки нет (Все метки)

Есть проблемка, матлаб строит мне график с точкой, но точка находиться за границей графика, нужно сделать так, чтобы если точка выходит за границу графика, выводилась ошибка, но ничего не получается(

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
clc;
            clear;
            try
                d = input('Введите функцию:','s'); %Сама функция
                %Вторая производная функции заинлайненная
                %Ввод исходных данных
                f = inline(d);
                z = diff(d); %Первая производная функции
                f1 = inline(z); %Первая производная функции заинлайненная
                z1 = diff(z); %Вторая производная функции
                f2 = inline(z1);
                E = input('Введите относительную погрешность E= ');
                a = input('Введите левую границу промежутка  a= ');
                b = input('Введите правую границу промежутка b= ');
                while a>b
                disp('Ошибка! Левая граница больше правой, повторите ввод!')
                a = input('Введите левую границу промежутка\n');
                b = input('Введите правую границу промежутка\n');
                end 
            catch
            end
            if (f(a)*f2(a)) > 0
                xk=Newton(d,a,b,E);
                fprintf('Корень: х0 = %f \n',xk')
            else
            disp('Ваши данные не подходят для данного метода!');
            end
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function xk=Newton(d,a,b,E)
syms t
f = inline(d); %Инлайн функции
z = diff(d); %Первая производная функции
f1 = inline(z); %Первая производная функции заинлайненная
z1 = diff(z); %Вторая производная функции
f2 = inline(z1);
x0=a;
xk = x0;
xi = b;
while abs(xk-xi)>E
    xi = xk;
   xk = xi - f(xk)/f1(xk);
end 
x = a:(b-a)/(100):b;
y = double(subs(d,t,x));
plot(x,y,xk,0,'or'), grid on
xlabel x
ylabel y
end
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2015, 21:03
Ответы с готовыми решениями:

при вводе eps=10^-1 пишет ошибку Undefined function
при вводе eps=10^-1 пишет ошибку Undefined function or variable 'x'. Error in Untitled11 (line...

Найти и вывести значение y. При некорректном вводе данных программа должна сообщать об ошибке
Пользователь должен ввести значение x. Программа должна найти и вывести значение y. При...

Валидация полей: вывод сообщения при некорректном вводе данных
Есть вот такой код: if ($('#iname').val().trim() == "" || isDidit($('#iname').val())) {...

при некорректном вводе cin далее уже не принимает ввод, не понимаю почему?
В условии if (cin >> A >> B) {...} при некорректном вводе cin далее уже не принимает ввод, не...

Вывести ошибку при неверном вводе
Всем привет! Задача: Вывести логин и пароль для сайта введенного пользователем. Если сайта...

8
Nick07
415 / 329 / 35
Регистрация: 17.07.2013
Сообщений: 1,729
30.05.2015, 09:59 2
Цитата Сообщение от Raimen Посмотреть сообщение
но точка находиться за границей графика
Поясните, тут возможны варианты.
0
Raimen
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 5
30.05.2015, 17:49  [ТС] 3
Nick07, при решение уравнения, задаются границы графика, но есть вероятность, что точка(ответ) окажется за заданными границами, в этом случае нужно сделать так, чтобы выводилась ошибка
0
Nick07
415 / 329 / 35
Регистрация: 17.07.2013
Сообщений: 1,729
30.05.2015, 19:03 4
Цитата Сообщение от Raimen Посмотреть сообщение
точка(ответ) окажется за заданными границами
Это когда xk<a или xk>b ?
0
Raimen
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 5
30.05.2015, 20:54  [ТС] 5
Nick07, Да
0
Nick07
415 / 329 / 35
Регистрация: 17.07.2013
Сообщений: 1,729
31.05.2015, 08:45 6
Используйте оператор IF
http://www.mathworks.com/help/matlab/ref/if.html
0
Raimen
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 5
31.05.2015, 17:17  [ТС] 7
Nick07, Да я пытался, в том то и суть, что что-то не так делаю
0
Nick07
415 / 329 / 35
Регистрация: 17.07.2013
Сообщений: 1,729
31.05.2015, 21:06 8
Цитата Сообщение от Raimen Посмотреть сообщение
что что-то не так делаю
А что не так?
0
Raimen
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 5
02.06.2015, 00:51  [ТС] 9
Nick07, Спасибо за помощь, но тема более не актуальна, проблему решил, все оказалось довольно банально, но не так очевидно, достаточно было немного реструктурировать программу, чтобы все работало правильно
0
02.06.2015, 00:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2015, 00:51

При вводе данных выдает ошибку
uses Unit1; {$R *.dfm} procedure TForm2.FormShow(Sender: TObject); begin ...

Программа решает слау методом Гаусса: показывать ошибку при вводе некорректных данных
Программа решает слау методом гауса, привводе несовместимой системы или системе без решений вместо...

При вводе с клавиатуры получается непонятная строка
Объясните пожалуйста, почему когда строка задаю сразу в коде программа работает адекватно, а когда...


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

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

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