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

Метод половинного деления

15.03.2016, 19:20. Показов 4603. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. С матлабом работаю недолго, расскажите, пожалуйста, как осуществить метод половинного деления (по возможности напишите несколько вариантов скриптов с подробными комментариями)? Сколько ни пытался, выдает ошибку, мол, такая вещь, как 'f' не задача. Задача: данным методом найти корень функции y = 2*x.^3 - 4 на отрезке от -5 до 5 с точностью до 0.01.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.03.2016, 19:20
Ответы с готовыми решениями:

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

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

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

5
 Аватар для Krasme
7245 / 5098 / 2151
Регистрация: 02.02.2014
Сообщений: 13,459
15.03.2016, 19:38
Цитата Сообщение от Tinspire Посмотреть сообщение
Сколько ни пытался, выдает ошибку, мол, такая вещь, как 'f' не задача
покажь свою работу...
0
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 9
15.03.2016, 22:23  [ТС]
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
a = -5;
b = 5;
e = 0.01;
x = a:0.1:b;
function y=Metod_polovinnogo_delenia(a,b,e)
y = 2*x.^3 - 3;
end
% Цикл
while abs(b-a)>e 
    c = (a+b)/2;
    if f(c)*f(a)>0 
        b=c;
    else 
        a=c;
    end 
end 
disp(['Ответ: x=' num2str])
Добавлено через 34 секунды
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
a = -5;
b = 5;
e = 0.01;
x = a:0.1:b;
function y=Metod_polovinnogo_delenia(a,b,e)
y = 2*x.^3 - 3;
end
% Цикл
while abs(b-a)>e 
c = (a+b)/2;
if f(c)*f(a)>0 
b=c;
else 
a=c;
end 
end 
disp(['Ответ: x=' num2str])
Добавлено через 10 минут
Цитата Сообщение от Krasme Посмотреть сообщение
Сообщение от Tinspire
Сколько ни пытался, выдает ошибку, мол, такая вещь, как 'f' не задача
покажь свою работу...
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
a = -5;
b = 5;
e = 0.01;
x = a:0.1:b;
function y=Metod_polovinnogo_delenia(a,b,e)
y = 2*x.^3 - 3;
end
% Цикл
while abs(b-a)>e 
c = (a+b)/2;
if f(c)*f(a)>0 
b=c;
else 
a=c;
end 
end 
disp(['Ответ: x=' num2str])
0
59 / 59 / 13
Регистрация: 01.03.2016
Сообщений: 142
16.03.2016, 14:22
Напишу первое что бросается в глаза. Объявили функцию с 3мя входными параметрами, но не использовали их.
Matlab M
1
2
3
function y=Metod_polovinnogo_delenia(a,b,e)
y = 2*x.^3 - 3;
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
46
47
48
49
function varargout=MPD(varargin)
%% Точность по умолчанию 1e-4;
% Минимум входных параметров 2, максимум 3
% Первый и второй диапазон поиска, третий точность.
% Примеры использования:
% MPD(-5,5,0.01) результат выведется в консоль Ответ: x=1.1426
% y=MPD(-5,5,0.01) результат будет записан в рабочее пространство y=1.1426
narginchk(2,3)
switch nargin
    case 2
        if ~isnumeric(varargin{1}) || ~isnumeric(varargin{2}) 
                error('Неверные входные параметры') 
        else
                a=varargin{1};
                b=varargin{2};
                e=1e-4;
        end
    case 3
        if ~isnumeric(varargin{1}) || ~isnumeric(varargin{2}) || ~isnumeric(varargin{3}) 
                error('Неверные входные параметры') 
        else
                a=varargin{1};
                b=varargin{2};
                e=varargin{3};
        end
end
f=@(x) 2*x.^3 - 3; 
if abs(b-a)~=0
while abs(b-a)>e 
c=(b+a)/2; 
 if sign(f(c))==sign(f(a)) 
  a=c; 
 else 
  b=c; 
 end 
end 
if nargout >=2 || nargout <0
    error('Выходных параметров больше одного') 
else
if nargout ==1
    varargout{1}=c;
else
disp(['Ответ: x=' ,num2str(c)])
end
end
else
    error('Первый входной аргумент равен второму') 
end
end
1
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 9
19.03.2016, 00:27  [ТС]
Спасибо большое, я разобрался. И пользуясь случаем, хочу спросить, в чем разница команд disp, sprintf, fprintf? И как их вводить правильно? А то я только disp использовал.
0
59 / 59 / 13
Регистрация: 01.03.2016
Сообщений: 142
19.03.2016, 08:25
disp - выводит в консоль входные данные, числа или текст. Но сразу только отдано, для того что бы вывести текст и число сразу, нужно привести все в общий вид.
Кликните здесь для просмотра всего текста

Matlab M
1
2
    primer=['Пример вывода текста с числом и процентами ',num2str(10),'%'];
disp(primer);


fprintf - основная функция сохранения информации в текстовый файл. примеры можно взять из помощи.
Кликните здесь для просмотра всего текста

Matlab M
1
2
3
4
5
6
7
8
9
10
clear all; 
close all;
x = 0:.1:1;
A = [x; exp(x)];
 fileID = fopen('exp.txt','w'); % создание файла для записи, где exp.txt имя файла, w - разрешение на запись
fprintf(fileID,'%6s %12s\n','x','exp(x)'); % запись заголовков столбцов данных
fprintf(fileID,'%6.2f %12.8f\n',A); % запись массива данных 
fclose(fileID); % закрытие файла
type exp.txt % вывод данных в консоль
fclose(fileID);


sprintf - форматирует данные в строку, есть очень много настроек как вывести данные (Formatting Strings).

П.С. вся нужная информация есть в помощи матлаба, её нужно только прочитать и понять.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.03.2016, 08:25
Помогаю со студенческими работами здесь

Метод половинного деления
Создать программу на внутреннем языке среды МatLAB, реализующей метод половинного деления: pow(x,4)-1/pow(x,3) . Я начал её делать. ...

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

Решение уравнения методом половинного деления
Составить программы решения уравнения методом половинного деления -2X^2+6.8X+4 Я составила программы Текст программы функции: ...

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

Безусловный минимум функции. Метод половинного деления
Здравствуйте, облазил весь форум но не нашел нечего по теме. Поэтому решил создать тему нахождения минимума функции. Итак есть код но он...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru