Автор работы: Пользователь скрыл имя, 12 Июня 2013 в 23:21, контрольная работа
Таким образом, в данной лабораторной работе я рассматривал как с помощью языка программирования С++ вычислить таблицу функции U для заданных точек в заштрихованной области. Данная программа определяет значения функции U исходя из ограничений.
Нижегородский Государственный
Технический университет
им. Алексеева
кафедра «Прикладная математика»
Лабораторная работа №1
Тема «РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ
С ОДНОЙ НЕИЗВЕСТНОЙ».
Вариант №9
Выполнил студент
группы 12-Э-4
Николаев Игорь
Проверил
Леканов А.К.
Нижний Новгород 2012г.
Постановка задачи.
Дано уравнение: . Отрезок [1 ; 2].
Решить нелинейное уравнение 3 способами:
1)Шаговый метод;
2)Метод половинного деления;
3)Метод Ньютона;
в 3 программах:
С++
MathCad
Excel
Реализация в среде С++
Код программы:
#include<iostream>
#include<math.h>
using namespace std;
double f(double x)
{
return cos(2/x)-2*(sin(1/x))+1/x;
}
int main()
{
double a=1,b=2,x,h;
h=(b-a)/10;
int i;
for(i=0;i<=10;i++)
if (f(a+i*h)*f(a+(i+1)*h)<0)
cout<<"otrezok "<<a+i*h<<"\t"<<a+(i+1)*h<<
return 0;
}
Скриншоты программы.
Код программы:
#include<iostream>
#include<math.h>
using namespace std;
double f(double x)
{
return cos(2/x)-2*(sin(1/x))+1/x;
}
int main()
{
double a=1,b=2,x=(a+b)/2,E=0.001;
while (fabs (f(x))>E)
{
if (f(a)*f(x)<0)
b=x;
else
a=x;
x=(a+b)/2;
}
cout<<"rezult is "<<x<<endl;
return 0;
}
Скриншоты программы.
Код программы:
#include<iostream>
#include<math.h>
using namespace std;
double f(double x)
{
return cos(2/x)-2*(sin(1/x))+1/x;
}
double g (double x)
{
return sin(2/x)*2/pow(x,2) +2*cos(1/x)*(pow(x,-2))-pow(x,
}
int main()
{
double x=2,E=0.001;
while (fabs (f(x))>E)
{
x=x-(f(x)/g(x));
}
cout<<"rezult is "<<x<<endl;
return 0;
}
Скриншоты программы.
Реализация в среде MathCad
Шаговый метод
Задание диапазона значений х от 1 до 2 с шагом 0.1
Описание функции y=f(x)
Вывод таблицы полученных значений
Построение графика f(x)
Численные методы решения нелинейного уравнения |
|||||||||
Шаговый метод |
|||||||||
Шаг |
x |
F(x) |
| ||||||
0,1 |
1 |
-1,09909 | |||||||
1,1 |
-0,91367 | ||||||||
1,2 |
-0,74274 | ||||||||
1,3 |
-0,58961 | ||||||||
1,4 |
-0,45412 | ||||||||
1,5 |
-0,33484 | ||||||||
1,6 |
-0,22987 | ||||||||
1,7 |
-0,13737 | ||||||||
1,8 |
-0,05561 | ||||||||
1,9 |
0,0169 | ||||||||
2 |
0,081451 | ||||||||
Ответ: |
1,8 |
1,9 | |||||||
Методы уточнения корня |
е= |
0,001 | |||||||
Метод половинного деления |
|||||||||
a |
x |
b |
F(a) |
F(x) |
F(a)*F(x) |
|F(x)|<e |
|||
1,8 |
1,85 |
1,9 |
-0,05561 |
-0,01828 |
0,001017 |
- |
|||
1,85 |
1,875 |
1,9 |
-0,01828 |
-0,00043 |
7,94E-06 |
корень |
|||
Метод Ньютона |
|||||||||
x |
F(x) |
F'(x) |
|F(x)|<e |
||||||
1,8 |
-0,05561 |
0,769012 |
- |
||||||
1,872312 |
-0,00233 |
0,705772 |
- |
||||||
1,875611 |
-4,5E-06 |
0,703048 |
корень |
||||||
Ручной счет.
Вывод.
Таким образом, в данной лабораторной работе я рассматривал как с помощью языка программирования С++ вычислить таблицу функции U для заданных точек в заштрихованной области. Данная программа определяет значения функции U исходя из ограничений.
Информация о работе Решение нелинейных уравнений с одной неизвестной