Заменим уравнение f(x) (*) на равносильное ему уравнение x=j(x)
x-начальное приближение: j(x)
x=j(x) (x-новое приближение)
x=j(x)
. . .
x=j(x)
Выполнять до тех пор, пока: |x- x|<e.
1 способ получения равносильного уравнения: каким либо способом выразить из уравнения – x.
2 способ получения равносильного уравнения: f(x)=0
f(x)+x=x обозначим f(x)+x=j(x)
В методе итераций в переходе от уравнения f(x)=0, к уравнению x=j(x) не безразличен. Для метода итераций следует выбирать представление, таким образом чтобы |j’(x)|<1.
Пример: Вычислить корни уравнения f(x)=arcsin(2*x+1)-x=0 с заданной точностью e=10.
arcsin(2*x+1)-x=0
arcsin(2*x+1)= x
2*x+1=sin(x)
x=0.5*(sin(x-1))
#include <stdio.h>
#include <math.h>
void main( )
{ int i, k=50; // k-ограничитель итераций.
foat 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 Число итераций %d \t ограничение: %d”, i, k);
else
printf (“\n Корень уравнения: %f”,x);
}
Массив – это одна из наиболее простых и известных структур данных.
Под массивом в языке “С” понимают набор данных одного и того же типа. Каждый элемент массива определяется именем массива и порядковым номером элемента (индексом). Индекс массива всегда целое число.
Синтаксис массива:
Тип <имя_массива> [размер_1] [размер_2] … [размер_n]
Тип – базовый тип элементов массива (char, float, int и т.д). Размер – количество элементов массива.
Пример: Описание одномерных массивов.
int a[20]; b[50];
float x[100];
char str[80];
Размер массива задается константой или константным выражением. Нельзя задавать массив переменного размера (int c[n]),но можно #define size 50 int d[size], g[size].
В языке “С” индекс начинается с нуля. В языке “С” не проверяется выход индекса за пределы массива. Сообщения об ошибке не будет, но возможны сбои в программе.
Под массив всегда выделяется непрерывное место в оперативной памяти.
Объявление массивов:
Примеры объявлений массивов:
int iarray[12]; /* массив из 12 целых чисел */
charcarray[20]; /* массив из 20 символов */
Объявление массива начинается с указания его типа, затем следуют его имя и пара квадратных скобок, в которые заключено выражение типа константа, определяющее размер массива. В квадратных скобках допускается использование имени переменной. В этом случае нужно обязательно указать размер массива до начала выполнения программы. Выражение должно преобразовываться в значение константы для того, чтобы компилятор точно знал объем памяти, занимаемый массивом.
Для указания размера массива лучше всего использовать константы, определенные посредством #define:
#define iARRAY_MAX 20
#define fARRAY_MAX 15
int iarray[iARRAY_MAX];
float farray[fARRAY_MAX];
В этом случае при последующих обращениях к массиву не будет превышен его указанный размер. Например, для обращения к элементам массива очень часто используется цикл for: