close

Вход

Забыли?

вход по аккаунту

?

отчет по 3 лабе

код для вставкиСкачать
Министерство образования и науки РФ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
Владимирский государственный университет
имени Александра Григорьевича и Николая Григорьевича Столетовых
Кафедра физики и прикладной математики
Лабораторная работа № 3
«Решение нелинейного уравнения методом простой итерации»
По дисциплине «Вычислительная математика»
Вариант № 2
Выполнила:
Ст. гр. ИТуб-110
Вахромова Е.
Проверил:
Горлов В.Н.
Владимир 2012 г.
Цель работы:
Научиться решать нелинейное уравнение методом простой итерации.
Задание:
Написать программу на языке Си++ для решения нижеследующих
уравнений методом простой итерации. Результат выполнения программы
записать в текстовый файл.
1) tg(0,58x  0,1)  x 2
2) x3  6x  8  0
Теоретическая часть
В ряде случаев весьма удобным приемом уточнения корня уравнения
является метод последовательных приближений (метод итераций).
Для применения метода простой итерации следует исходное уравнение
преобразовать к виду, удобному для итерации
. Это
преобразование можно выполнить различными способами. Функция
называется итерационной функцией. Расчетная формула метода простой
итерации имеет вид:
.
Теорема о сходимости метода простой итерации. Пусть в некоторой
окрестности корня
неравенству
функция
, где
-
дифференцируема и удовлетворяет
- постоянная. Тогда независимо от
выбора начального приближения из указанной
- окрестности итерационная
последовательность не выходит из этой окрестности, метод сходится со
скоростью геометрической последовательности и справедлива оценка
погрешности:
Критерий окончания итерационного процесса. При заданной точности
>0
вычисления следует вести до тех пор, пока не окажется выполненным
неравенство
.
Если
величина
использовать более простой критерий окончания итераций:
то
можно
.
Ключевой момент в применении метода простой итерации состоит в
эквивалентном преобразовании уравнения. Способ, при котором выполнено
условие сходимости метода простой итерации, состоит в следующем:
исходное уравнение приводится к виду
дополнительно, что производная
знакопостоянна и
[a,b]. Тогда при выборе итерационного параметра
и значение
.
Практическая часть.
1) tg(0,58x  0,1)  x 2
Листинг программы:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<locale.h>
float FUNCF(float x);
float FUNC(float x);
void main()
{
setlocale(LC_ALL,"Russian");
float a,b,eps,x,x1,u,v;
int n=0;
printf("A=");
scanf("%f",&a);
printf("B=");
scanf("%f",&b);
printf("EPS=");
scanf("%f",&eps);
v=FUNCF(a);
u=FUNC(b);
if (u*v>0)
{
printf("Ошибка!Неверные данные!\n");
return;
}
FILE*fout;
fout=fopen("document.txt","wt");
x=a;
. Предположим
на отрезке
метод сходится
x1=FUNC(x);
while (abs(x1-x)>eps)
{
x=x1;
fprintf(fout,"%3d%10.4f%10.4f\n",n,x1,abs(x1-x));
x=x1;
x1=FUNC(x);
n++;
}
printf("Корень=%8.4f\n",x1);
fprintf(fout,"Корень=%8.4f\n",x1);
fclose(fout);
}
float FUNCF(float x)
{
return(tan(0.58*x+0.1)-x*x);
}
float FUNC(float x)
{
return(tan(0.58*x+0.1)/2);
}
Результат выполнения программы приведен в соответствии с рисунком 1
Рисунок 1
Результат программы, записанный в текстовый файл приведен в соответствии
с рисунком 2
Рисунок 2
2) x3  6x  8  0
Листинг программы:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<locale.h>
float FUNCF(float x);
float FUNC(float x);
void main()
{
setlocale(LC_ALL,"Russian");
float a,b,eps,x,x1,u,v;
int n=0;
printf("A=");
scanf("%f",&a);
printf("B=");
scanf("%f",&b);
printf("EPS=");
scanf("%f",&eps);
v=FUNCF(a);
u=FUNCF(b);
if (u*v>0)
{
printf("Ошибка!Неверные данные!\n");
return;
}
FILE*fout;
fout=fopen("document.txt","wt");
x=a;
x1=FUNC(x);
while (abs(x1-x)>eps)
{
fprintf(fout,"%3d%10.4f%10.4f\n",n,x1,abs(x1-x));
printf("%3d%10.4f%10.4f\n",n,x1,abs(x1-x));
x=x1;
x1=FUNC(x);
n++;
}
printf("Корень=%18.10f\n",x1);
fprintf(fout,"Корень=%8.4f\n",x1);
fclose(fout);
}
float FUNCF(float x)
{
return(x*x*x-6*x-8);
}
float FUNC(float x)
{
return ((-(x*x*x)+8)/6);
}
Результат выполнения программы приведен в соответствии с рисунком 3
Рисунок 3
Результат программы, записанный в текстовый файл приведен в соответствии
с рисунком 4
Рисунок 4
Вывод: в результате выполнения лабораторной работы я научилась создавать
программу на Си++ для решения нелинейных уравнений методом простой
итерации.
Документ
Категория
Математика
Просмотров
5
Размер файла
230 Кб
Теги
отчет, лабе
1/--страниц
Пожаловаться на содержимое документа