Автор Тема: Определить количество действительных корней уравнения  (Прочитано 9545 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн nika1092

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Определить количество действительных корней уравнения `x^3+x-4=0`, и, применяя метод хорд и касательных , найти их приближенное значение с точностью 0.001.
« Последнее редактирование: 23 Ноября 2010, 00:32:25 от Asix »

Оффлайн Dlacier

  • Глобальный модератор
  • *****
  • Сообщений: 3656
    • Просмотр профиля
что делали? что не получается?

решать нужно вручную или в каком-нибудь пакете?
« Последнее редактирование: 23 Ноября 2010, 00:32:32 от Asix »
Чтобы правильно задать вопрос, нужно знать большую часть ответа. (с)
Формулы пишите в LaTex.

Оффлайн nika1092

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Решать надо вручную.

Я начала делать так: нашла первую производную y'=3x^2+1, он оказалась всегда больше нуля, следовательно функция всегда возрастает и корень будет всего один.
Как я понимаю, дальше нужно выбрать отрезок на котором определен корень [-3, 3], а, что дальше делать не знаю

Оффлайн testtest

  • Старожил
  • ****
  • Сообщений: 376
    • Просмотр профиля
А дальше прикидываешь, что при x = 1 функция отрицательна, а при x = 2 - положительна. Берешь полтора за \( x_0 \) и шагаешь \( x_{n+1} = x_n - \frac{y(x_n)}{y'(x_n)} \)

Оффлайн testtest

  • Старожил
  • ****
  • Сообщений: 376
    • Просмотр профиля
А дальше прикидываешь, что при x = 1 функция отрицательна, а при x = 2 - положительна. Берешь полтора за \( x_0 \) и шагаешь \( x_{n+1} = x_n - \frac{y(x_n)}{y'(x_n)} \)

Оффлайн nika1092

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
это метод касательных. а как выполнить методом хорд?

Оффлайн Dlacier

  • Глобальный модератор
  • *****
  • Сообщений: 3656
    • Просмотр профиля
В чем заключается метод хорд?
Чтобы правильно задать вопрос, нужно знать большую часть ответа. (с)
Формулы пишите в LaTex.

Оффлайн tig81

  • Глобальный модератор
  • *****
  • Сообщений: 15181
    • Просмотр профиля
Определить количество действительных корней уравнения `x^3+x-4=0`
Можно определить при помощи метода Штурма.

Оффлайн testtest

  • Старожил
  • ****
  • Сообщений: 376
    • Просмотр профиля
В чем заключается метод хорд?
в замене производной на отношение приращения функции к приращению аргумента

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
В качестве развития могу предложить свой метод, основанный на методе Монте-Карло. Это частный случай аппроксимации с любым количеством неизвестных параметров. В данном случае имеем 1 неизвестный параметр x.
Вот распечатка проги и результат счета:

z=.1
s=1000
n=20000
x0=1
for i=1 to n
x=x0*(1+z*(ran()-.5))
f=abs(x^3+x-4)
if f<=s then print x using "##.########",s
s=f
x0=x
fi
next i

 0.9501739555 1000
 0.9867214498 2.19198
 1.0349162294 2.05259
 1.0781248584 1.85664
 1.1277109685 1.66871
 1.1341829082 1.43814
 1.1448490803 1.40684
 1.1829134692 1.35462
 1.2186044816 1.16185
 1.2384509210 0.971772
 1.2967337435 0.862062
 1.3156443614 0.522785
 1.3448124222 0.40708
 1.3898536036 0.223067
 1.3807277452 0.0746241
 1.3791454726 0.0129597
 1.3787898166 0.00233841
 1.3787919206 4.61416e-005
 1.3787982324 3.20386e-005
 1.3787961284 1.02709e-005

Решение: x=1.37880 с точностью  0,00001
« Последнее редактирование: 26 Ноября 2010, 12:28:57 от renuar911 »
За жизнью надо тщательно следить, все время избегая с ней разлуки.

Оффлайн testtest

  • Старожил
  • ****
  • Сообщений: 376
    • Просмотр профиля
for i=1 to n
x=x0*(1+z*(ran()-.5))

думаю, так будет лучше:
for i=1 to n
if s < z then
  z = s
fi
x=x0*(1+z*(ran()-.5))

на фортране:
    function func(x)
        double precision x, v, func
        func = x**3 + x - 4.
    endfunction

    program mkarlo
    implicit none
    double precision :: z, s, x0, x, f, r
    integer :: i, n
    DOUBLE PRECISION func

    z = .1
    s = 1000.
    n = 150
    x0 = 1.

    call RANDOM_SEED()
    do i = 1, n
        call RANDOM_NUMBER(r)
        if (s .LT. z) then
            z = s
        endif
        x = x0 * (1 + z * (r - .5))
        f = abs(func(x))
        if (f .LE. s) then
            write(unit=*, fmt='(2F25.15)'), x, s
            s = f
            x0 = x
        endif
    enddo
   
    endprogram

 

Найти x, найти корень уравнения

Автор Астасья

Ответов: 3
Просмотров: 6848
Последний ответ 09 Декабря 2010, 00:03:40
от tig81
Резольвента уравнения четвертой степени(кубическая резольвента)

Автор Al4

Ответов: 6
Просмотров: 7564
Последний ответ 21 Марта 2011, 23:32:49
от Al4
"дифференциальные уравнения с разделяющимися переменными."

Автор Eduard7777

Ответов: 3
Просмотров: 4547
Последний ответ 24 Ноября 2011, 22:07:55
от Dimka1
Найти общее решение линейного неоднор. диф. уравнения 2-го порядка с пост. коэф.

Автор Z-Creed

Ответов: 13
Просмотров: 5415
Последний ответ 15 Марта 2012, 20:22:20
от tig81
Помогите пожалуйста решить дифф. уравнения второго и первого порядка!

Автор APuEC

Ответов: 3
Просмотров: 5299
Последний ответ 28 Декабря 2009, 14:12:18
от Semen_K