Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/34: Рейтинг темы: голосов - 34, средняя оценка - 4.91
4 / 4 / 0
Регистрация: 04.09.2018
Сообщений: 13
1

Метод секущих-хорд (метод касательных-хорд)

14.09.2018, 08:47. Показов 6550. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно найти все корни уравнения F(x)=0 в заданном интервале методом секущих-хорд.
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.09.2018, 08:47
Ответы с готовыми решениями:

Метод секущих плоскостей (Келли)
Здравствуйте! Возможно, у кого-то есть реализация метода Келли(метода секущих плоскостей)? Или...

Обработка случая когда функция не существует в итерационных методах (метод секущих)
написал программу, которая должна находить корень уравнения методом секущих для функции:...

Реализовать метод касательных для уравнения (x^4-1)/x^3=0
Реализовать метод касательных для уравнения func= (x^4-1)/x^3=0 на промежутке при точности 0,01.В...

Мой код - метод бисекции, метод секущих (метод хорд)
Всем привет!!! Изучаем в институте С++. Сделал код, и там, и там одна и та же проблема - при любых...

7
Модератор
Эксперт .NET
15468 / 10713 / 2787
Регистрация: 21.04.2018
Сообщений: 31,539
Записей в блоге: 2
14.09.2018, 11:23 2
Цитата Сообщение от красныймакасин Посмотреть сообщение
Нужно найти...
красныймакасин, а что Вы сами сделали и что у Вас не получилось?
1
4 / 4 / 0
Регистрация: 04.09.2018
Сообщений: 13
14.09.2018, 11:37  [ТС] 3
Цитата Сообщение от Элд Хасп Посмотреть сообщение
а что Вы сами сделали и что у Вас не получилось
ничего не сделал, ничего не получилось.
1
Модератор
Эксперт .NET
15468 / 10713 / 2787
Регистрация: 21.04.2018
Сообщений: 31,539
Записей в блоге: 2
14.09.2018, 12:19 4
Цитата Сообщение от красныймакасин Посмотреть сообщение
ничего не сделал, ничего не получилось.
Математическую часть поняли?
1
4 / 4 / 0
Регистрация: 04.09.2018
Сообщений: 13
14.09.2018, 12:20  [ТС] 5
ну как решить в тетрадке я понял, проблема запрограммировать.
1
Модератор
Эксперт .NET
15468 / 10713 / 2787
Регистрация: 21.04.2018
Сообщений: 31,539
Записей в блоге: 2
14.09.2018, 12:35 6
Просто мне, допустим, лень разбираться в математической части. Набросайте алгоритм здесь. И шаблон (какой по силам) начальной программы: ввод/выод данных.

Добавлено через 4 минуты
А Вы ссылку на метод правильно привели?
Не перепутали с этим Метод хорд (метод секущих)
1
170 / 91 / 71
Регистрация: 10.05.2014
Сообщений: 432
14.09.2018, 20:53 7
Цитата Сообщение от красныймакасин Посмотреть сообщение
ну как решить в тетрадке я понял, проблема запрограммировать.
красныймакасин, Ну попробуйте описать метод, который вы смогли сделать у себя в "тетрадке"
1
Модератор
Эксперт .NET
15468 / 10713 / 2787
Регистрация: 21.04.2018
Сообщений: 31,539
Записей в блоге: 2
14.09.2018, 21:38 8
красныймакасин, ловите
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
66
67
68
69
70
71
72
73
74
75
        static void Main(string[] args)
        {
 
            Console.WriteLine(CuttingChords(Funct));
 
       }
 
        #region Метод решения уравнения методом секущих хорд
        ///https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D1%85%D0%BE%D1%80%D0%B4
 
        ///Объявление делегата для функции 
        public delegate double Function(double X);
 
        /// <summary>Метод решения уровнения методом секущих хорд</summary>
        /// <param name="Func">Делегат функции Y=Func(X)</param>
        /// <param name="X0">Начальное значение X</param>
        /// <param name="Accuracy">Точность решения</param>
        /// <returns></returns>
        static public double CuttingChords(Function Func, double X = 0, double Accuracy = 1e-10)
        {
            Point X1, X0; Nullable<Double> X2;
            X0 = new Point(X, Func(X)); // Начальная точка итерации
            if (X0.Y == 0) return X0.X;
            X1 = new Point(X * .5 + 1, 0); // Начальная точка смещения итерации
            do
            {
                X1.Y = Func(X1.X); // Значение функции в точка смещения
                if (X1.Y == 0) return X1.X; // Проверка на случайно найденное решение
                X2 = Suppression(X0, X1); // Следующая точка смещения - пересечение оси Х прямой, проходящей через последнии две точки
                if (X2 == null) throw new Exception("Нет пересечения хордой!"); // Проверка на ошибку, если нет пересечения
                X0.Y = X1.Y; X0.X = X1.X; // Смещение данных для следующего шага итерации
                X1.X = (Double)X2;
            } while (Math.Abs(X0.X - X1.X) >= Accuracy); // Проверка на найденное решение
            return X1.X;
 
        }
        #region Метод Suppression(Point A, Double K) определяющий пересечение оси X прямой
        /// <summary>Метод определяющий пересечение оси X прямой, проходящей через точку</summary>
        /// <param name="A">Координаты точки A</param>
        /// <param name="K">Коэфициент X</param>
        /// <returns>Возвращает точку пересечения оси X</returns>
        static Nullable<Double> Suppression(Point A, Double K)
        {
            if (K == 0) return null;
            ///  За основу взята формула прямой проходящей через точку
            ///                                          A.Y - Y
            ///  Y = K * (X - A.X) + A.Y  <=> X = A.X - --------- 
            ///                                              K       
            return A.X - A.Y / K;
        }
        #endregion
        #region Метод Suppression(Point A, Point B) определяющий пересечение оси X прямой
        /// <summary>Метод определяющий пересечение оси X прямой, проходящей через две точки</summary>
        /// <param name="A">Координаты точки A</param>
        /// <param name="B">Координаты точки B</param>
        /// <returns>Возвращает точку пересечения оси X</returns>
        static Nullable<Double> Suppression(Point A, Point B)
        {
            if (A.Y == B.Y) return null;
            if (A.X == B.X) return A.X;
            ///http://www.math.by/geometry/eqline.html
            ///  За основу взята формула прямой проходящей через 2 точки
            ///   Y - A.Y       X - A.X           Y - A.Y
            ///  ---------  = ---------- <=> X = ---------- * (B.X - A.X) + A.X
            ///  B.Y - A.Y     B.X - A.X         B.Y - A.Y
            return -A.Y * (B.X - A.X) / (B.Y - A.Y) + A.X;
        }
        #endregion
        #region Функция для вычисления X - произвольная, для делегата
        /// <summary>Функция для вычисления X - произвольная </summary>
        /// <param name="X">Значение X</param>
        /// <returns>Возвращает значение Y</returns>
        static double Funct(Double X) => ((30 * (X + 4) - 5) * X + 7) * X - 11;
        #endregion
        #endregion
1
14.09.2018, 21:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.09.2018, 21:38
Помогаю со студенческими работами здесь

Метод хорд, метод касательных, метод половинного деления
Ребят помогите пожалуйста. Задали тему курсовой &quot;Решение нелинейных уравнений (метод хорд, метод...

Метод хорд и касательных
Господа программисты, очень нужна ваша помощь. Нужно написать программу на C++, в ней решить любое...

Метод хорд и касательных
Здравствуйте! помогите пожалуйста решить задачу: Составить на Паскале программу метода хорд и...

Метод хорд и касательных
как посчитать этими методами нелинейное уравнение ln(x/(1-x)=0


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru