Форум программистов, компьютерный форум, киберфорум
Численные методы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/27: Рейтинг темы: голосов - 27, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 06.09.2010
Сообщений: 3

Нахождение корней уравнения

06.09.2010, 20:41. Показов 5553. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
х^4+2.4x^3-6.81x^2-15.98x-7.6=0

напишите пожалуйста программу для нахождения 4 корней этого уравнения...
я смогла построить его график в exсel и даже нашла 4 интервала для корней, а вот дальше что делать совсем не знаю(
и вроде нужно их найти методом половинного деления...если конечно так можно)

помогите, пожалуйста))))))))))))))
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.09.2010, 20:41
Ответы с готовыми решениями:

Нахождение корней равенства
Уважаемые участники форума. Прошу помочь решить следующую задачу. Имеется равенство ...

Количество корней уравнения
Количество корней уравнения 5 - cos^{2}3x - 5 sin 3x = 0 на промежутке равно ? ...

Произведение корней уравнения
Произведение корней уравнения (2x-5)\sqrt{x-3} = 2x-5 (2x-5)^{2}(x-3) = (2x-5)^{2} (x-3) = \frac{(2x-5)^{2}}{(2x-5)^{2}} ...

12
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
06.09.2010, 20:59

Не по теме:

и какой садюга вам это задал???


тему надо было бы перевести в раздел по математике, по моемму..
0
0 / 0 / 0
Регистрация: 06.09.2010
Сообщений: 3
06.09.2010, 22:51  [ТС]
Препод по ужасному предмету-численные методы...
я с трудом запомнила как он называется, а задания для меня вообще запредельные(

помогите бедной, глупой, но красивой девушке не вылететь из универа)
0
Шаровик затейник
 Аватар для Crudelis
696 / 445 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
06.09.2010, 22:59
хм... ну и уравнение, если бы вы смогли написать как это решать в математике, то можно было бы подумать над кодом программы
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
06.09.2010, 23:09
Цитата Сообщение от nikkka Посмотреть сообщение
тему надо было бы перевести в раздел по математике, по моемму..
vip dancer, прав nikkka, перенесу туда, где больше шансов, что расскажут, как такое решается. А когда что-нибудь умное насоветуют, решим, как из этого програмку сделать...
0
48 / 48 / 10
Регистрация: 12.01.2010
Сообщений: 183
06.09.2010, 23:11
Цитата Сообщение от vip dancer Посмотреть сообщение
но красивой девушке
где доказательства то интим фоточки, видео
1
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
06.09.2010, 23:21
Цитата Сообщение от vip dancer Посмотреть сообщение
и вроде нужно их найти методом половинного деления...если конечно так можно)
метод половинного деления, он же дихотомии - 100500 раз был написан на форуме, так что удачи в поисках
0
7 / 7 / 0
Регистрация: 13.04.2010
Сообщений: 35
07.09.2010, 02:01
В принципе я такие задачи не один раз решал. Это даже не проганье, а знание метода решения. Я могу посоветовать метод Ньютона и код на Си (покопался, и нашёл у себя). Код как раз не идеален (давно делал), но преп почти наверняка примет. Или же, переделают на форуме как лучше (тогда ещё я Си только осваивал).
Перед тем, как выложить, краткое пояснение. В методе Ньютона нужно начальное приближение. А если 4 корня у уравнения, то для нахождения каждого их них нужно начальное приближение. Так что, чертим график, смотрим корни, примерно подбираем то, что надо для начального приближения, и решаем 4 раза с разными начальными приближениями, получаем точный ответ. Например, самый маленький корень -3.199462, начальное приближение берём -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
//х^4+2.4x^3-6.81x^2-15.98x-7.6=0
#include <stdio.h>
#include <math.h>
 
double x = 0.0;
double x_old = 3.0; //x_old - отвечает за начальное приближение и последующие приближения
                             //значения начальных приближений: -3.0, -1.0, -0.5, 3.0
double function1(double x)
{
  return pow(x,4) + 2.4*pow(x,3) - 6.81*pow(x,2) - 15.98*x - 7.6;
}
 
double function2(double x)
{
  return 4*pow(x,3) + 7.2*pow(x,2) - 13.62*x - 15.98;
}
 
double newton(double x)
{
  x -= function1(x) / function2(x);
  return x;
}
 
int solving(void)
{
  double error = 0.0001; //ошибка решения, можно и меньше ставить - дело вкуса
  int max_iters = 100;   
  int i;
  
  for (i = 0; i < max_iters; ++i) {
    x = newton(x_old);
    
    if (fabs(x_old - x) <= error) {
      printf("x = %f, number_of_iterations = %i\n", x, i);
      return 0;
    }
    
    x_old = x;
  }
  return 0;
}
 
int main (void)
{
  
  function1(x_old);
  function2(x_old);
  newton(x_old);
  solving();
  
  return 0;
}
Сам метод Ньютона можно и на Википедии, например, посмотреть. Он прост.

Добавлено через 12 минут
Вот начал смотреть внимательнее. 46-48 строки убрать. Они не нужны. Я не знаю, зачем я их нагородил ).

Добавлено через 22 минуты
Полазил, поискал у себя метод половинного деления (если нужен только он, и ничего больше). Увы, нет его у меня. Но такое на форуме и правда должно было много раз обсуждаться, как я думаю. Да и сделать это не особо сложно и не особо долго...
Но вообще, странновато как-то , что такие вещи половинным делением решать заставляют ).
2
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
07.09.2010, 10:28
Значит так, я нашёл тут полезную инфу, а код скину как только напишу
Цитата Сообщение от лендер Посмотреть сообщение
где доказательства то
так и быть, поверим на слово

Добавлено через 2 минуты

Не по теме:

А вообще, любителям (и не только) математики стоит ознакомится с прогой GeoGebra. Очень мощная штучка! Бесплатная.



Добавлено через 29 минут
Но учтите, моя прога производные вычислять не умеет, так что интервалы придётся вводить вручную, не через консоль, а через код.
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;
double ar;
double br;
const double eps=0.00000001;
double abs(double x)
{
    return sqrt(x*x);
}
double f(double x)
{
    return x*x*x*x+2.4*x*x*x-6.81*x*x-15.98*x-7.6;
}
int main()
{
    double t,f1,f2,x;
    ar=-4;
    br=-3;
    while(abs(br-ar)>eps)
    {
        f1=f(ar);
        t=(ar+br)/2;
        f2=f(t);
        if(f1*f2<=0)
            br=t;
        else
        {
            ar=t;
            f1=f2;
        }
    }
    x=(ar+br)/2;
    cout<<x<<"\n";
    ar=-3;
    br=-1;
    while(abs(br-ar)>eps)
    {
        f1=f(ar);
        t=(ar+br)/2;
        f2=f(t);
        if(f1*f2<=0)
            br=t;
        else
        {
            ar=t;
            f1=f2;
        }
    }
    x=(ar+br)/2;
    cout<<x<<"\n";
    ar=-1;
    br=0;
    while(abs(br-ar)>eps)
    {
        f1=f(ar);
        t=(ar+br)/2;
        f2=f(t);
        if(f1*f2<=0)
            br=t;
        else
        {
            ar=t;
            f1=f2;
        }
    }
    x=(ar+br)/2;
    cout<<x<<"\n";
    ar=0;
    br=3;
    while(abs(br-ar)>eps)
    {
        f1=f(ar);
        t=(ar+br)/2;
        f2=f(t);
        if(f1*f2<=0)
            br=t;
        else
        {
            ar=t;
            f1=f2;
        }
    }
    x=(ar+br)/2;
    cout<<x<<"\n";;
    getch();
    return 0;
}
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.09.2010, 11:52
Вот простой алгоритм нахождения N корней.
Писано на Паскале.

Pascal
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
const e=0.0001;//точность вычисления корней
function F(x:real):real;
begin
F:=x*x*x*x+2.4*x*x*x-6.81*x*x-15.98*x-7.6;
end;
Var xn,xk,xi,y1,y2:real;
    n,i:byte;
    x:array[1..4] of real;//массив корней
begin
xn:=-4;//границы интервала с графика
xk:=3;
y1:=F(xn);//значение функции в точке
y2:=F(xn+e);//в точке+е
xi:=xn;//начали
n:=0;
while n<4 do
 begin
  if y1*y2<0 then//если разный знак
   begin
    n:=n+1;//считаем
    x[n]:=xi;//в массив корень
   end;
  y1:=y2;//запмним новое начало
  xi:=xi+e;//наращиваем х
  if abs(xi)>e then y2:=F(xi);//не фиксируем точки внутри интервала
 end;
writeln('Корни:');
for i:=1 to 4 do
writeln(x[i]:0:5);
readln
end.
0
0 / 0 / 0
Регистрация: 06.09.2010
Сообщений: 3
07.09.2010, 12:09  [ТС]
nikkka огромное спасибо)))

только скажи, плиз, что такое "не через консоль а через год"...для меня это страшные слова((((
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.09.2010, 12:15
не через консоль, а через код
.
Это значит интервалы прописывают в коде программы, например как у него
ar=-4;//первый интервал
br=-3;
......
ar=-3;//второй интервал
br=-1;
и так далее, а не по запросу программы "Введите интервал"
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
07.09.2010, 12:57
Puporev, точно.
извиняюсь, там не "год" а "код" должно было быть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.09.2010, 12:57
Помогаю со студенческими работами здесь

Найти произведение корней уравнения
27. Произведение корней уравнения {\log_{\frac{1}{2}}}^{2} \frac{x}{9} + {\log_{\frac{1}{2}}}^{2} \frac{x}{3} = 1 равно.

Оценка корней одного уравнения
Дано уравнение x-lnx=C Можно ли каким-то образом оценить сверху его максимальный корень? С- заданное число, больше 1. В оценке...

Найдите сумму корней уравнения
Помогите, пожалуйста, с задачкой. У меня получилось x=\log 2 (2/4031), но чую, что ответ неверный.

Найти выражение из корней уравнения
Задача 1. Квадратное уравнение, с корнями в 4 раза больше корней уравнения {x}^{2}+x-3=0 имеет вид {x}^{2}-bx+c=0. Найти -c+5b.

Найти сумму квадратов корней уравнения
24. Сумма квадратов уравнения {5}^{{x}^{2}} + {7}^{{x}^{2}-1} = {7}^{{x}^{2}} - 17 * {5}^{x-2} равна


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru