Форум программистов, компьютерный форум, киберфорум
Наши страницы
Free Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/12: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Merhaba
3 / 3 / 5
Регистрация: 05.03.2011
Сообщений: 270
1

Система нелинейных уравнений

05.01.2012, 10:30. Просмотров 2387. Ответов 3
Метки нет (Все метки)

Добрый День!!! Помогите Пожалуйста используя метод Ньютона, решить систему нелинейных уравнений с точностью до 0.001.

http://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\begin{cases}\sin (y+1)-x=1.2\\\\2y+\cos x=2 \end{cases}<br />
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2012, 10:30
Ответы с готовыми решениями:

Система нелинейных уравнений (метод Ньютона)
Добрый вечер! Помогите Пожалуйста используя метод Ньютона, решить систему нелинейных уравнений с...

Система нелинейных уравнений
Помогите, пожалуйста, написать программу.Решить систему нелинейных уравнений F(X) = 0, где F =...

Решение нелинейных уравнений
Помогите решить линейное уравнение методом половинного деления. На паскале.

Решение нелинейных уравнений.
найти с точностью 0,001 корни уравнении на указанных отрезках: x5(в пятой степени) - 0,3|x-1| = 0

Решение нелинейных уравнений.
дана такая формула корень из 1 - 0,4х - arcsin х = 0 точность 10 в -3 степени. Что то ни как не...

3
Kover
2 / 2 / 3
Регистрация: 28.12.2011
Сообщений: 18
10.01.2012, 19:21 2
Метод Ньютона решения систем нелинейных уравнений состоит в линеаризации исходных уравнений, когда их решение сводится к итерационному процессу решения системы линейных уравнений. В данном случае задача сводится к решению системы двух линейных уравнений. Запишем исходную систему в виде
F(X,Y) = sin(Y+1) - X - 1,2 = 0, (1)
G(X,Y) = 2Y + cos(X) - 2 = 0. (2)
Найдем первые (линеаризация) частные производные от функций F(X,Y) и G(X,Y) по X и Y:
F'x(X,Y) = -1, F'y(X,Y) = cos(Y+1),
G'x(X,Y) = -sin(X), G'y(X,Y) = 2.
Система линейных уравнений для итерационного процесса имеет вид
F'x(Xk,Yk) Xk+1 + F'y(Xk,Yk)Yk+1 + F(Xk,Yk) - F'x(Xk,Yk) Xk - F'y(Xk,Yk)Yk = 0,
G'x(Xk,Yk) Xk+1 + G'y(Xk,Yk)Yk+1 + G(Xk,Yk) - G'x(Xk,Yk) Xk - G'y(Xk,Yk)Yk = 0.
Здесь Xk,Yk - решение системы на предыдущем шаге, а Xk+1,Yk+1 - очередное приближение.
Многое зависит от выбора нулевого приближения, а еще надо обеспечить сходимость. Из (1) и (2) видно, что неизвестная X находится в пределах отрезка [-2,2; -0,2], а неизвестная Y - в пределах отрезка [0,5; 1,5]. В качестве нулевого приближения можно взять середины этих отрезков. Ну а дальше сама программа:

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
32
33
Uses ………..;
Const  eps = 0.001;        // Требуемая точность
Var x0, x1, y0, y1, F, G, dFdx, dFdy, dGdx, dGdy, b1, b2 : Real;
Begin
  y1:=( 0.5 + 1.5)/2;       // Нулевые приближения
  x1:=sin(y1+1)-1.2;
  dFdx:= -1.0;               // Неизменяемые первые частные
  dGdy:= 2.0;               // производные
 
// Итерационный цикл
  Repeat
    x0:=x1; y0:=y1;              // Предыдущее приближение
    dFdy:= cos(y0+1);         // Изменяемые первые частные
    dGdx:=-sin(x0);             // производные
    F:=sin(y0+1) - x0 - 1.2;
    G:=2*y0 + cos(x0) - 2;
    b1:=F - dFdx*x0 - dFdy*y0;
    b2:=G - dGdx*x0 - dGdy*y0;
    //Вычисление следующего приближения (решение системы двух линейных уравнений)
    x1:=(b2*dFdy-b1*dGdy)/(dGdy*dFdx - dFdy*dGdx);
    y1:=-(b1+dFdx*x1)/dFdy;
  // Итерации заканчиваются, когда следующие приближения отличаются
  // по модулю от предыдущих не более, чем на заданную точность
  Until (Abs(x0-x1)<=eps) and (Abs(y0-y1)<=eps);
 
  WriteLn('  X= ',x1:6:4,'; Y= ',y1:6:4);
  WriteLn('  Проверка: ');
  b1:=sin(y1+1) - x1;
  b2:=2*y1 + cos(x1);
  WriteLn('  sin(Y+1) - X =',b1:6:4);
  WriteLn('  2Y + cos(x) =',b2:6:4);
 
End.
1
enotik273
0 / 0 / 0
Регистрация: 29.04.2016
Сообщений: 16
17.06.2019, 22:23 3
Будь добр, скинь программу файлом
Не могу скомпилировать
0
Cyborg Drone
Модератор
6790 / 3553 / 2583
Регистрация: 17.08.2012
Сообщений: 11,367
24.06.2019, 00:24 4
enotik273, вряд ли Kover Вам что-то пришлёт. Последний раз он был на форуме в январе 2012 года.

И почему не можете скомпилировать, не постигаю. Уберите ненужную первую строчку, которая содержит синтаксическую ошибку, и компилируйте на здоровье.

Очевидно, что Kover имел ввиду, что, если нужен какие-либо подключаемые модули, укажите их вместо многоточия. Собственно, ничего и не требуется, поэтому uses нужно просто удалить.

В предпоследнюю (пустую) строку допишите readln
0
24.06.2019, 00:24
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2019, 00:24

Решение нелинейных уравнений.
Условие задачи: Найти одним из методов с точностью е=0,0001 действительные корни уравнения ( метод...

Приближенное решение нелинейных уравнений
На заданном отрезке найти все корни уравнения f(x)=0 с точность ε {e}^{-x}-3 sin x-0,4=0

Приближенное решение нелинейных уравнений
Построить график функции 𝑓(𝑥). Отделить все корни, лежащие на данном отрезке.Вычислить наибольший...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.