Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/55: Рейтинг темы: голосов - 55, средняя оценка - 4.84
13 / 17 / 6
Регистрация: 05.09.2012
Сообщений: 210

Метод деления отрезка пополам

11.10.2013, 12:36. Показов 11589. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Я накидал метод деления отрезка пополам, но препод говорит, что он не правильно считает.
Смотрел, смотрел, но не понял почему..., может вы поюзаете исправите если есть ошибки.
Заранее спс.

C#
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
 
class Program
{
    static double c; // центр отрезка
    const double eps = 0.01; // epsilon
    static void Main(string[] args)
    {
        Console.Write("Введите точку а = "); double a = Convert.ToInt32(Console.ReadLine()); // tochka a
        Console.Write("Введите точку b = "); double b = Convert.ToInt32(Console.ReadLine()); // tochka b
 
        // вызваем метод
        Console.WriteLine("Ответ = {0}",Program.BisectionMethod(a,b));
        Console.ReadKey();
    }
 
    static double BisectionMethod(double a, double b)
    {
        c = (a + b) / 2;
        //Console.WriteLine("Данные в начале вызова функции: a = {0}, b = {1}, c = {2}",a,b,c);
 
        //Console.WriteLine("if( ( |{0}| - |{1}| ) > {2}) ", b, a, eps);
        if (Math.Abs(b) - Math.Abs(a) >= eps)
        {
            //Console.WriteLine("da...");
            //Console.Write("if( ( F({0}) - F({1}) ) > 0) ", Program.Function(a), Program.Function(c));
 
            if ((Program.Function(a) - Program.Function(c)) > 0) // F(a) - F(c) > 0
            {
                Console.WriteLine("1 условие");
                a = c;
                //Console.WriteLine("a = {0}", a);
                //Console.WriteLine("Далее вызывается функция...");
                BisectionMethod(a, b);
            }
            else if ((Program.Function(a) - Program.Function(c)) <= 0) // F(a) - F(c) < 0
            {
                //Console.Write("Нет...");
                //Console.WriteLine();
                //Console.Write("if( ( F({0}) - F({1}) ) <= 0) ", Program.Function(a), Program.Function(c));
                //Console.WriteLine("2 условие");
                b = c;
                //Console.WriteLine("b = {0}", b);
                BisectionMethod(a, b);
            }
        }
        else
        {
            c = (a + b) / 2; // вычисление центра
        }
        //Console.WriteLine("В конце функции с = {0}",c);
        return c;
    }
 
    // функция
    static double Function(double x) 
    {
        return (x*x) - 3;
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.10.2013, 12:36
Ответы с готовыми решениями:

Решение нелинейного уравнения методом деления отрезка пополам
Описать класс, представляющий нелинейное уравнение вида ax-cos(x)=0. Описать метод, вычисляющий решение этого уравнения на заданном...

Решение уравнения методом деления пополам
10.Поиск уникальных элементов массива 11.Статистика строки символов 18.Решение уравнения методом деления пополам (указатель на...

Алгоритм решения уравнения методом деления пополам.
Кто может, напишите хотя бы один алгоритм, пожалуйста. Алгоритм решения уравнения методом деления пополам.

3
338 / 327 / 154
Регистрация: 29.10.2012
Сообщений: 949
11.10.2013, 20:49
Скажите для значений a=5; b=10 и для a=10; b=5 результат должен быть одинаковым?
0
13 / 17 / 6
Регистрация: 05.09.2012
Сообщений: 210
12.10.2013, 06:21  [ТС]
Цитата Сообщение от kmaffa Посмотреть сообщение
Скажите для значений a=5; b=10 и для a=10; b=5 результат должен быть одинаковым?
что то я не понял твой вопрос, можешь по конкретней ?
0
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 17
12.10.2013, 08:56
Цитата Сообщение от Maratovich Посмотреть сообщение
что то я не понял твой вопрос, можешь по конкретней ?
b=5; a=10 и b=10; a=5 , это один и тот же отрезок, но переменные заданы в другом порядке, по идее результат должен быть один и тот же.
Не совсем понятно что вы хотите, у вас указан метод, который в результате выдает середину заданного отрезка.
При a=50; b=25, результат должен быть 12,5 или 37,5?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.10.2013, 08:56
Помогаю со студенческими работами здесь

Задача по поиску нуля функции методом деления отрезка на 2
Задача по поиску нуля функции методом деления отрезка на 2. е-это погрешность вычислений, рассчитываемая по (|a|-|b|)/|b|. По идее, цикл...

Не используя операции умножения и деления, найти длину незанятой части отрезка
Даны положительные числа А и В (А &gt; В). На отрезке длины А размещено максимально возможное количество отрезков длины В (без наложений). Не...

Метод деление интервала пополам (одномерная оптимизация)
Вот функция: f(x) = (x*x*x)+8*x*x+x+5 интервал (-2,5) Вот алгоритм: Метод деления интервала пополам Методы поиска,...

Метод половинного деления и метод простой итерации
Ребят, помогите пожалуйста написать программу на С#, решение нелинейного уравнения. Уравнение: x-10·sinx = 0 - Сделать Отделение корней...

Используя операцию взятия остатка от деления нацело, найти длину незанятой части отрезка A
Даны целые положительные числа A и B (A &gt; B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru