Дипломы, курсовые, рефераты, контрольные...
Срочная помощь в учёбе

Численные методы решения уравнений и систем уравнений

Лабораторная работаПомощь в написанииУзнать стоимостьмоей работы

Лабораторная работа по дисциплине «Вычислительные методы». Double a ={{0.20, 0.44, 0.81, 0.74},{0.58, — 0.29, 0.05, 0.02},{0.05, 0.34, 0.10, 0.32}}; Найти значения функции в точках, а и х: F (a) и F ©. Численный метод уравнение программа. Краткое описание метода выполнения. Краткое описание метода выполнения. Кафедра «Программное обеспечение». Двумерный массив дробных чисел. Const int n=3… Читать ещё >

Численные методы решения уравнений и систем уравнений (реферат, курсовая, диплом, контрольная)

МИНОБРНАУКИ РОССИИ Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования

" ИЖЕВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Им. М.Т. Калашникова"

Кафедра «Программное обеспечение»

Лабораторная работа по дисциплине «Вычислительные методы»

на тему «Численные методы решения уравнений и систем уравнений»

Выполнил: Кузнецов А.В.

ст. гр. Б03−191−1

Принял: Коробейников А.В.

доцент, к. т. н.

Ижевск 2012

  • 1. Метод половинного деления
  • 1.1 Постановки задачи
  • 1.2 Краткое описание метода выполнения
  • 1.3 Алгоритм решения задачи
  • 1.4 Описание программы
  • 1.4.1 Структура входных данных
  • 1.4.2 Структура выходных данных
  • 1.5 Листинг текста программы
  • 1.6. Контрольные примеры
  • 1.7 Выводы
  • 2. Метод ГАУСА
  • 2.1 Постановка задачи
  • 2.2 Алгоритм решения задачи
  • 2.3 Описание программы
  • 2.3.1 Структура входных данных
  • 2.3.2 Структура выходных данных
  • 2.4 Листинг текста прораммы
  • 2.5 Контрольные примеры
  • 2.6 Выводы

1. Метод половинного деления

1.1 Постановки задачи

Запрограммировать метод половинного деления и вычислить один корень уравнения xsinx-1=0 (рисунок 1.1) с точностью до 0,001.

Рисунок 1.1

1.2 Краткое описание метода выполнения

Метод половинного деления один из методов решения нелинейных уравнений и основан на последовательном сужении интервала, содержащего единственный корень уравнения F (x) =0 до того времени, пока не будет достигнута заданная точность Е. Метод используется при решении квадратных уравнений и уравнений высших степеней.

1.3 Алгоритм решения задачи

Пусть задан отрезок [а, b], содержащий один корень уравнения. Этот отрезок может быть предварительно найден с помощью шагового метода.

численный метод уравнение программа

1. Определить новое приближение корня х в середине отрезка [а, b]: c= (а+b) /2.

2. Найти значения функции в точках, а и х: F (a) и F ©.

3. Проверить условие F (a) *F © < 0. Если условие выполнено, то корень расположен на отрезке [а, c]. В этом случае необходимо точку b переместить в точку х (b=c). Если условие не выполнено, то корень расположен на отрезке [c, b]. В этом случае необходимо точку, а переместить в точку c (а=c).

4. Перейти к пункту 1 и вновь поделить отрезок пополам. Алгоритм продолжить до того времени, пока не будет выполнено условие |F (x) | < e.

1.4 Описание программы

1.4.1 Структура входных данных

Имя переменной

Тип

Какую функцию выполняет

A

Дробное число

Начало отрезка

B

Дробное число

Конец отрезка

E

Дробное число

Заданная точность

1.4.2 Структура выходных данных

Имя переменной

Тип

Какую функцию выполняет

c

Дробное число

Приближенный корень

1.5 Листинг текста программы

#include

#include

#include

using namespace std;

double function (double x)

{

return (x*sin (x) — 1);

}

int main ()

{

double a, a2, b, b2, c, e;

cout<<" Enter a: «;

cin>>a;

cout<<" Enter b: «;

cin>>b;

cout<<" Enter e: «;

cin>>e;

c= (a+b) /2;

while ((fabs (b-a) >e) && (function ©! =0))

{

if (function (a) *function © <0) b=c;

else a=c;

c= (a+b) /2;

}

cout<<" nC="<

return 0;

}

1.6. Контрольные примеры

1.7 Выводы

Корни, найденные с помощью программы, сходятся с корнями, полученными аналитически, значит, программа работает корректно.

2. Метод ГАУСА

2.1 Постановка задачи

Запрограммировать метод Гауса и вычислить корни для матрицы вида:

=

2.2 Алгоритм решения задачи

Суть метода Гауса заключается в последовательном исключении неизвестных. Пусть в системе уравнений (рисунок 2.1) первый элемент a11 (0) не равен 0.

Рисунок 2.1

Назовем его ведущим элементом первой строки. Поделим все элементы этой строки на a11 (0) и исключим x1 из всех последующих строк, начиная со второй, путем вычитания первой (преобразованной), умноженной на коэффициент при x1 в соответствующей строке. Получим следующий вид (рисунок 2.2).

Рисунок 2.2

Если a22 (1), то, продолжая аналогичное исключение, приходим к системе уравнений с верхней треугольной матрицей (рисунок 2.3).

Рисунок 2.3

Из нее в обратном порядке находим все значения xi (рисунок 2.4)

Рисунок 2.4

Процесс приведения к системе с треугольной матрицей называется прямым ходом, а нахождения неизвестных — обратным.

2.3 Описание программы

2.3.1 Структура входных данных

Имя переменной

Тип

Какую функцию выполняет

a

Двумерный массив дробных чисел

Элементы матрицы

2.3.2 Структура выходных данных

Имя переменной

Тип

Какую функцию выполняет

x

Массив дробных чисел

Корни системы уравнений

2.4 Листинг текста прораммы

#include

#include

using namespace std;

void main ()

{

const int n=3; // Размерность системы

double a [4] ={{0.20, 0.44, 0.81, 0.74},{0.58, — 0.29, 0.05, 0.02},{0.05, 0.34, 0.10, 0.32}};

int i, j, k;

double buf, x [n];

for (i=0; i

{

for (j=0; j

{

printf («%6.2f», a [i] [j]);

}

printf («n»);

}

// Прямой ход метода Гаусса

for (i=0; i

for (j=i+1; j

{

buf=a [i] [i] /a [j] [i];

for (k=0; k<=n; k++)

a [j] [k] =a [j] [k] *buf-a [i] [k];

}

// Обратный ход метода Гаусса

x [n-1] =a [n-1] [n] /a [n-1] [n-1];

for (i=n-2; i>=0; i—)

{

buf=0;

for (j=i+1; j

buf+=a [i] [j] *x [j];

x [i] = (a [i] [n] - buf) /a [i] [i];

}

cout << endl << «Reshenie: «<< endl;

for (i=0; i

printf («%5.2f n», x [i]);

}

2.5 Контрольные примеры

2.6 Выводы

Корни, найденные с помощью программы, сходятся с корнями, полученными аналитически, значит, программа работает корректно.

Показать весь текст
Заполнить форму текущей работой