Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/46: Рейтинг темы: голосов - 46, средняя оценка - 4.85
3 / 3 / 0
Регистрация: 24.10.2009
Сообщений: 17

Обычный метод перевести в метод Ньютона

10.11.2009, 00:25. Показов 9437. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, дорогие форумчане.

Имеется код программы, считающей корень функции 0,3arctgx-x-1 обычным школьным методом.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <math.h>
#include <conio.h>
 
int main()
{
        float x;
        printf("Enter argument (x) function 0.3*arctg(x)-x-1: ");
        scanf("%f",&x);
        float y = 0.3*atan(x)-x-1;
 
        printf("Function value = %f", y);
        getch();
        return 0;
}
Нужно переделать ее для подсчета того же уравнения, но методом Ньютона.

Программа на С. Никак не разберусь с методом Ньютона.
Прошу вашей помощи. Заранее спасибо.
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.11.2009, 00:25
Ответы с готовыми решениями:

Метод итерации и метод Ньютона (метод касательных)
Помогите решить методом итерации и методом Ньютона выражение привиденное ниже: e(в степени Х) - e(в степени (-x)) - 2 = 0

Mathcad. Локализировать корни уравнения f(x) = 0. Метод простой итерации и метод Ньютона.
Помогите пожалуста реализировать на маткаде следующий алгоритмы: 1) Локализировать корни уровнения f(x) = 0. Найти их з точностью 10^-8,...

Вычислить корни уравнения, используя метод простой итерации, метод Ньютона
2 1) Вычислить корни уравнения 2*(e^x)-5*x-2 с точностью 0.000001, используя метод простой итерации 2) Решить это же уравнение методом...

4
 Аватар для denver
1612 / 282 / 5
Регистрация: 19.09.2009
Сообщений: 700
10.11.2009, 01:04
Формула для вычисления корня методом Ньютона имеет вид: `x_{n+1}` = `x_n-{f(x_n)}/{f'(x_n)}
1
14 / 14 / 0
Регистрация: 08.07.2009
Сообщений: 61
10.11.2009, 12:26
Здесь нарушено кое-что, корень функции - это такой(-ие) X, при котором Y = 0 , т.е. X не надо считывать с клавиатуры, его надо найти. Судя из формулы Ньютона, для нахождения надо знать производную, так как для этого нет задания, то производную надо найти ручками, но тут это просто:
y = f(x) = 0.3*arctg(x)-x-1
y' = f'(x) = 0.3/(1+x^2) - 1
создаем цикл, для подсчета корня, имею два значения - текущее xt и предыдущее xp, а также точность вычисления, например, eps = 0.0001, и считаем цикл с условием пока abs(xt-xp)>eps
1
3 / 3 / 0
Регистрация: 24.10.2009
Сообщений: 17
18.11.2009, 23:31  [ТС]
denver,blackswan, спасибо за вашу помощь, пытался по Вашей
схеме
создаем цикл, для подсчета корня, имею два значения - текущее xt и предыдущее xp, а также точность вычисления, например, eps = 0.0001, и считаем цикл с условием пока abs(xt-xp)>eps
сообразить програмку..но никак не добился результата..

Опять же прошу помощи у форумчан. Помогите составить код в С (Си).
1
3 / 3 / 0
Регистрация: 24.10.2009
Сообщений: 17
07.12.2009, 16:38  [ТС]
Здравствуйте. Руководствуясь методичкой препода, написал код программы, считающей корень функции 0,3arctgx-x-1 методом Ньютона. Проблема в том, что при любом уравнении, любых интервалах программа выдает один и тот же ответ, и как я подозреваю - неверный.

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
#include <stdio.h>
#include <math.h>
#include <conio.h>
 
float f(float x)
{ return 0.3*atan(x)-x-1; }
float f1(float x)
{ return 0.3/(1+x*x)-1; }
float f2(float x)
{ return 0.6*x/((1+x*x)*(1+x*x)); }
 
float Newt(float a,float b,float (*f)(float),float (*f1)(float),float (*f2)(float),float eps, int (*k))
{
      float x,t,m=0;
      if(f(a)*f2(a)>0) t=a;
         else  t=b;
      do
        {
               x=t;
               t=x-f(x)/f1(x);
        }
        while(fabs(x-t)>eps);
        { m++; }
        *k=m;
        return t;
        }
 
main ()
 
{
     int k;
     float x,y,a,b,eps;
     printf("Enter a, b, eps: ");
     scanf("%f%f%f", &a, &b, &eps);
     
     x=Newt(a,b,f,f1,f2,eps,&k);
     printf("Koren: x=%1.3f\nIteraciy: %d" ,x,k);
     getch();
     }
Программа выдает
Koren:-1.271
Iteraciy: 1
Так же программа должна выдать кол-во итераций, для чего я и применял переменные k и m.

Кто знаком с этим методом, подскажите где ошибка? Может я что-то упустил, а то методичка уж слишком немногословной оказалась.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.12.2009, 16:38
Помогаю со студенческими работами здесь

Метод Ньютона или метод простых итераций для нелинейных уравнений
нужно выбрать один из методов и с помощью этого метода реализовать решение нелинейных уравнений, в конце необходима оценка погрешности

Метод Ньютона (Метод касательных) для решения нелинейных уравнений
Преподаватель дал задание: Реализовать метод ньютона для решения нелинейных уравнений. Пробежался по литературе, реализовал метод. НО...

Решение систем нелинейных уравнений, Метод Ньютона и Метод Зейделя
Ребята пожалуйста помогите с решением Слау Методом Ньютона и Зейделя. Ньютона я пытался набросать, ну что-то делаю не правильно,...

Решение нелинейных уравнений: модифицированый метод Ньютона (метод секущих)
имеется исходник программы для решения методом Ньютона (метод касательных), требуется видоизменить для получения исходника под...

Численные методы: метод секущих и метод Ньютона (касательных)
Пусть известны функции спроса D(p) и предложения S(p) для некоторого товара Т. Найти равновесную цену p и равновесный объем V. В среде...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru