- •Глава 7. Типы определяемые пользователем Структуры
- •Задания
- •Формирование структуры
- •7.2 Массивы структур
- •Глава 8 Файлы.
- •Примеры составления программ на языке с.
- •Задания.
- •Глава 9. Численные методы
- •9.1 Приближенные методы решения уравнений.
- •Метод половинного деления
- •Метод хорд.
- •Метод Ньютона.
- •Метод простой итерации.
- •Задания
- •9.2 Решение систем уравнений
- •9.3 Вычисление интегралов
- •9.4 Вычисление сумм числовых рядов Вычисление конечных сумм
- •Список литературы
- •456776, Г. Снежинск, ул. Комсомольская, 8
Метод простой итерации.
Заменим уравнение f(x) на равносильное ему уравнение x=(x).
x0 -начальное приближение функции (x )
x =(x0) (x1 -новое приближение)
x2 =(x1)
. . .
xn =(xn-1)
Выполнять до тех пор, пока: |xn – xn-1 |<.
1 способ получения равносильного уравнения: каким либо способом выразить из уравнения – x.
2 способ получения равносильного уравнения: к обеим частям уравнения добавить переменную х:
f(x)=0
f(x)+x=x обозначим f(x)+x=(x)
3 способ получения равносильного уравнения: функцию (x) можно найти из соотношения:
(x)=х - f(x)/k, считая, что |k|≥Q/2, где Q=max|f ’(x)|; число к имеет тот же знак, что и f ’(x) на заданном промежутке.
В методе итераций переход от уравнения f(x)=0, к уравнению x=(x) не безразличен. Для метода итераций следует выбирать представление, таким образом чтобы |’(x)|<1.
Пример 9.4
Вычислить корни уравнения f(x)=arcsin(2*x+1)-x2=0 с заданной точностью =10 .
arcsin(2*x+1)-x2=0
arcsin(2*x+1)= x2
2*x+1=sin(x2)
x=0,5*(sin(x2-1))
/************************************************/
/* Приближенные методы решения уравнений */
/* Метод простой итерации */
/************************************************/
#include <stdio.h>
#include <math.h>
#include <conio.h>
void main( )
{
clrscr();
int i, k=50; // k-ограничитель итераций.
float x, y, z, eps;
printf ("\n Начальное приближение:");
scanf ("%f",&x);
printf ("\n Точность:");
scanf ("%f",&eps);
printf ("\n x=%f и eps=%f", x, eps);
i=0; // i-счетчик итераций.
do
{
y=0.5*(sin(x*x)-1);
i++;
if (i>k) break;
z=x; // Сохраним предыдущее приближение.
x=y; // Новое приближение.
}
while (fabs(y-z)>eps);
if (i>=k)
printf ("\n Число итераций больше допустимого");
else
printf ("\n Корень равен=%f",x);
getch();
}
Результаты работы программы.
Начальное приближение:0.2
Точность:0.0001
x=0.200000 и eps=0.000100
Корень равен=-0.414490
Задания
9.1.1 Методом половинного деления найти корень уравнения:
Определить также число итераций, необходимое для нахождения корня.
№ вар. |
Уравнение |
Отрезок |
Абсолютная погрешность |
|
x2 - 10 = 0 |
[2; 4] |
E=10-4 |
|
|
[0,4; 1] |
E=10-4 |
|
tg (x/2) – ctg(x/2) + x = 0 |
[1; 2] |
E=10-4 |
|
|
[0; 0,8] |
E=10-4 |
|
сos (2/x) – 2 sin (1/x) + 1/x = 0 |
[0; 1] |
E=10-4 |
|
sin (ln x) – cos (ln x) + 2 ln x = 0 |
[0; 1] |
E=10-4 |
|
|
[0; 1] |
E=10-4 |
|
x + cos(x0,52 + 2) = 0 |
[0,5; 1] |
E=10-4 |
|
sin x2 + cos x2 – 10x = 0 |
[0; 1] |
E=10-4 |
|
|
[-1; 0] |
E=10-4 |
|
0,6 3x –2,3x - 3 = 0 |
[2; 3] |
E=10-4 |
|
|
[-1; 0] |
E=10-4 |
|
x + ln(x+0,5) – 0,5 = 0 |
[0; 2] |
E=10-4 |
|
x3 – 0,2x2 – 0,2x – 1,2 = 0 |
[1; 1,5] |
E=10-4 |
|
x4 + 2x3 – x – 1 = 0 |
[0; 1] |
E=10-4 |
|
|
[0; 1,57] |
E=10-5 |
|
x4+0,8x3–0,4x2–1,4x–1,2=0 |
[-1,2; -0,5], |
E=10-4 |
|
x4+0,8x3–0,4x2–1,4x–1,2=0 |
[-1,2; -0,5] |
E=10-4 |
|
x4-4,1x3+x2–5,1x+4,1=0 |
[3,7; 5] |
E=10-4 |
9.1.2 Методом итераций найти корень уравнения:
Определить также число итераций, необходимое для нахождения корня.
№ вар. |
Уравнение |
X0 или диапазон |
Абсолютная погрешность |
|
|
x0=1 |
E=10-5 |
|
|
x0=2 |
E=10-5 |
|
|
x0=0,2 |
E=10-5 |
|
|
x0=1 |
E=10-5 |
|
|
x0=1,5 |
E=10-5 |
|
|
x0= -2 |
E=10-5 |
|
|
x0=1 |
E=10-3 |
|
|
x0=1 |
E=10-3 |
|
x3 – x – 1 = 0 |
x0=1,5 |
E=10-3 |
|
1,8x4-sin 10x=0 |
x0=0,22 |
E=10-5 |
|
x - ln(x+45,6)=0 |
x0=0,5 |
E=10-5 |
|
x3+12x-2=0 |
x0=0,95 |
E=10-5 |
|
x3-6x2+20=0 |
x0=2,31 |
E=10-5 |
|
|
x0=0,7 |
E=10-4 |
|
|
x0=0 |
E=10-4 |
|
5x3 +10x2+5x-1 = 0 |
x0=0,6 |
E=10-4 |
|
|
[2; 3] |
E=10-4 |
|
|
[0; 0,85] |
E=10-4 |
|
|
[0; 1] |
E=10-4 |
|
ln x – x + 1,8 = 0 |
[2;3] |
E=10-4 |
|
|
[1; 2] |
E=10-4 |
|
|
[0; 1] |
E=10-4 |
|
|
[1,2; 2] |
E=10-4 |
|
1- x + sin x – ln(1+x) = 0 |
[0; 1,5] |
E=10-4 |
|
x2 – ln(1+x) – 3 = 0 |
[2; 3] |
E=10-4 |
|
|
[1; 2] |
E=10-3 |
|
|
[0; 2] |
E=10-5 |
|
x = ln(x+2) |
[0; 4] |
E=10-4 |
|
x5 – x – 0,2 = 0 |
[1; 1,1] |
E=10-5 |
|
x3 – 2x2 + x – 3 = 0 |
[2,1; 2,2] |
E=10-4 |
|
x4 + 0,5x3 – 4x2 – 3x – 0,5 = 0 |
[-1; 0] |
E=10-4 |
|
x2 – 1,3 ln(x+0,5)–2,8x +1,15= 0 |
[2,1; 2,5] |
E=10-4 |
|
0,25x3 + x – 1,2502 = 0 |
[0; 2] |
E=10-4 |
|
|
[0,4; 1] |
E=10-4 |
|
0,1x2 – xlnx = 0 |
[1; 2] |
E=10-4 |
|
ex + lnx – 10x = 0 |
[3; 4] |
E=10-4 |
|
3x – 14 + ex – e-x =0 |
[1; 3] |
E=10-4 |
|
|
[0; 1] |
E=10-4 |
|
x + cos(x0,52 + 2) = 0 |
[0,5; 1] |
E=10-4 |
|
3ln2x + 6lnx – 5 = 0 |
[1; 3] |
E=10-4 |
|
sin x2 + cos x2 – 10x = 0 |
[0; 1] |
E=10-4 |
|
|
[0,2; 1] |
E=10-4 |
|
tg – ctg + x = 0 |
[1; 2] |
E=10-4 |
|
|
[0; 1] |
E=10-4 |
|
0,6 3x – 2,3x – 3 = 0 |
[2; 3] |
E=10-4 |
|
|
[0; 1] |
E=10-4 |
|
ex(cosx +sinx) – 2=0 |
[0; 1,5] |
E=10-4 |
|
|
[0; 2] |
E=10-4 |
|
|
[1; 3] |
E=10-4 |
|
3x – 2x – 3 = 0 |
[2; 3] |
E=10-4 |
9.1.3 Методом Ньютона найти корень уравнения. Определить также число итераций, необходимое для нахождения корня.
№ вар. |
Уравнение |
X0, диапазон |
Абсолютная погрешность |
|
|
x0=1 |
E=10-5 |
|
|
x0=2 |
E=10-5 |
|
|
x0=1 |
E=10-5 |
|
x3+12x - 2=0 |
x0=0,95 |
E=10-5 |
|
2x3+4x - 1=0 |
x0=0,11 |
E=10-5 |
|
5x-8 ln x=8 |
x0=4,32 |
E=10-5 |
|
x3+x=1000 |
x0=9,42 |
E=10-5 |
|
x - sin x =0,25 |
x0=1,17 |
E=10-4 |
|
0,25x3 + x - 1,2502=0 |
[0; 2] |
E=10-4 |
|
x tg x – 1/3 = 0 |
[0,2; 1] |
E=10-4 |
|
0,1x2 – x ln x = 0 |
[1; 2] |
E=10-4 |
|
3x – 4 ln x -5 = 0 |
[2; 4] |
E=10-4 |
|
|
[0; 1] |
E=10-4 |
|
ex – e -x -2 = 0 |
[0; 1] |
E=10-4 |
|
ex + ln x – 10x = 0 |
[3; 4] |
E=10-4 |
|
3x – 14 + ex – e -x = 0 |
[1; 3] |
E=10-4 |
|
2x sin x – cos x = 0 |
[0,4; 1] |
E=10-4 |
|
3 ln2 x + 6 ln x - 5 = 0 |
[1; 3] |
E=10-3 |
|
sin x – x + 0,15 = 0 |
[0,5; 1] |
E=10-4 |
|
2x x – 1 = 0 |
[0; 1] |
E=10-5 |
|
x2 – sin 5x = 0 |
[0,5; 0,6] |
E=10-5 |
|
(4 + x2) (ex – e-x) = 18 |
[1,2; 1,3] |
E=10-5 |