|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.06.2018, 23:25 | #1 |
Регистрация: 13.03.2018
Сообщений: 3
|
Решение уравнения f(x)=0 на заданном отрезке
Помогите составить программу, которая определяет решение уравнения f(x)=0 на заданном отрезке (a,b) с точностью E с использованием рекурсивного метода деления отрезка пополам. Вид функции должен осуществляться с использованием компонента ComboBox, содержащего три различных варианта. Предусмотрите, чтобы в качестве входного параметра в используемую подпрограмму передавался вид выбранной из компонента ComboBox функции
|
04.06.2018, 23:32 | #2 |
Участник клуба
Регистрация: 12.09.2012
Сообщений: 1,030
|
И куда вы это будете выводить? По факту комбобокса придётся составить три отдельные функции, для каждого варианта уравнения. Метод же переводится в алгоритм и получается массив значений переменной (х) на промежутке. Остается только задать шаг, который задается точностью(обычно это количество знаков после запятой).
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби. |
04.06.2018, 23:48 | #3 |
Регистрация: 13.03.2018
Сообщений: 3
|
Значение корня буду выводить в эдит
Я придумала несколько функций и вставила в комбобокс. Я буду использовать метод дихотомии Алгоритм метода я знаю. И как получить рекурсивный цикл с ним. Проблема заключается в том, как перебрать все эти функции и вставить в метод..... Вот начало кода: procedure TForm1.FormCreate(Sender: TObject); begin cbb1.Items.Add('sin(x)'); cbb1.Items.Add('x*x-1'); cbb1.Items.Add('x*x+4x+4'); end; function recurs(eps:real; var a, b:Real):Real; function F(x:Real):Real; begin if Form1.cbb1.ItemIndex=0 then F:=Sin(x); if Form1.cbb1.ItemIndex=1 then F:= x*x-1; if Form1.cbb1.ItemIndex=2 then F:=x*x+4*x+4; end; var c:Real; begin c:=(a+b)/2; if abs(F(c))<=eps then recurs:=c else if F(a)*F(c)<0 then recurs:=recurs(a,c) else recurs:=recurs(c,b); end; |
05.06.2018, 10:47 | #4 |
Участник клуба
Регистрация: 12.09.2012
Сообщений: 1,030
|
Рекурсию можно получить через циклы Repeat Until или While Do, или даже For to do для переборки списков. Просто киньте туда функцию и всё. Вот только в окончание первого условия, я ещё записывал бы результат функции. Как я понял из кода идёт постоянное уточнение параметра функции, при котором её точность не будет меньше заданного значения. Никогда не понимал это, по мне лучше количество цифр после запятой - понятней, удобней и при всех инженерных расчётов обычно хватает 3-4 цифр после запятой, а при более сложных хватает и 10 знаков после запятой.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби. |
05.06.2018, 10:54 | #5 | |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Цитата:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
|
05.06.2018, 10:57 | #6 | |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Цитата:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
|
05.06.2018, 18:13 | #7 | |
Участник клуба
Регистрация: 12.09.2012
Сообщений: 1,030
|
Цитата:
Бывает и функция в функции, но это уже к больше алгоритмам из теории рядов.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби. |
|
07.06.2018, 00:21 | #8 | ||
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
Цитата:
Код:
Последний раз редактировалось Человек_Борща; 07.06.2018 в 00:25. |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
На заданном отрезке найти все корни уравнения f(x)=0 с точностью ε . Free Pascal | avatar54 | Помощь студентам | 2 | 05.06.2017 20:48 |
на заданном отрезке найти все корни уравнения f(x)=0 с точностью e | ZigaBr0 | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 19.09.2016 12:03 |
Найти произведение результатов заданной функции на заданном отрезке с шагом. [C++] проверьте, пожалуйста, решение | Alexan-Dwer | Помощь студентам | 4 | 19.11.2014 13:33 |
Вычислить значения интеграла на заданном отрезке [a,b] | lolwto | Помощь студентам | 5 | 31.01.2013 00:35 |
Найти все целочисленные решения уравнения 3x+4y=2z на заданном отрезке [L,R] | Zmey_by_Nojabrsk | Помощь студентам | 3 | 18.10.2007 22:08 |