
- •1. Методы решения систем нелинейных уравнений
- •2. Векторная запись нелинейных систем.
- •3. Метод ньютона, его реализации и модификации
- •3.1. Метод ньютона
- •3.2. Модифицированный метод ньютона
- •3.3. Метод ньютона с последовательной аппроксимацией матриц
- •3.4. Разностный метод ньютона
- •3.5. Обобщение полюсного метода ньютона на многомерный случай
- •4. Другие методы решения систем нелинейных уравнений
- •4.1. Метод простейших секущих
- •4.2. Метод простых итераций
- •4.3. Метод брауна
- •4.4. Метод секущих бройдена
- •4.5. О решении нелинейных систем методами спуска
- •2.Интерполирование математических таблиц
- •3.Приближенное вычисление определенных интегралов
- •4. Численное решение обыкновенных дифференциальных уравнений методом Эйлера-Коши
2.Интерполирование математических таблиц
Задание
Составьте программу, для вычисления приближенного значения функции в заданной точке c помощью интерполяционного многочлена Лагранжа.
Решение
Программная реализация методов на языке С++ представлена в листинге 1.2.
Листинг 1.2 – Интерполяционный многочлена Лагранжа
#include <iostream.h>
//#include <stdio.h>
#include <math.h>
#include <conio.h>
void main()
{
int n;
float x [10];
float y [10];
int i,j,p;
float q,l,a,M,f,q1;
double T;
clrscr();
cout<<"Vvedite kol-vo elementov: ";
cin>>n;
cout<<"Vvedite massiv x:\n";
for (i=1;i<=n;i++)
cin>>x[i];
cout<<"Vvedite massiv y:\n";
for (i=1;i<=n;i++)
cin>>y[i];
cout<<"Vvedite znachenie argumenta: ";
cin>>a;
f=exp(a)-sin(a);
cout<<"Tochnoe znachenie argumenta: "<<f<<endl;
p=1;
cout<<"Vvedite znachnie max proizvodnoy: "<<endl;
cin>>M;
l=0;
for (i=1; i<=n+1;i++)
{q=1;
q1=1;
p=p*i;
q1=q1*(a-x[i]);
T=(M/p)*q1;
for (j=1; j<=n;j++)
if (i!=j) q=q*(a-x[j])/(x[i]-x[j]);
l=l+q*y[i];
}
cout<<"Znachenie funktcii = " <<l<<" tochnost = "<<T<<endl;
getch();
}
Результат работы программы:
3.Приближенное вычисление определенных интегралов
Задание
Вычислить интеграл методом средних прямоугольников.
Решение
Исходные данные:
Программная реализация методов на языке СИ++ представлена в листинге 1.3.
Листинг 1.3 – Метод средних прямоугольников.
#include <iostream.h>
#include <math.h>
#include <conio.h>
float Integr (float x)
{
float F;
F = sin(x*x);
return F;
}
void main()
{
float a, b, n, dx, xb, s, x, E;
cout<<"Vvedite nigniy a\n a = ";
cin>>a;
cout<<"Vvedite verhniy predel b\n b = ";
cin>>b;
cout<<"Vvedite kolichestvo otrezkov n\n n = ";
cin>>n;
dx = (b-a)/n;
xb = a + dx/2;
s = 0;
for(int i = 0; i<=n-1; i++)
{
x = xb + i * dx;
s = s + Integr(x) * dx;
}
cout<<"Integral = "<<s;
getch();
}
Результат работы программы:
4. Численное решение обыкновенных дифференциальных уравнений методом Эйлера-Коши
Задание
Решить дифференциальное уравнение методами Эйлера.
Решение
Исходные данные:
Решение
Программная реализация методов на языке си++ представлена в листинге 1.4
Листинг 1.4 – Метод Эйлера
#include <iostream.h>
#include <stdio.h>
#include <math.h>
#include <conio.h>
void main()
{
float a, b, c;
float x, x1, y, y0, y1, y2, h, xi, yi, x11, y11, y22, h1;
float J,E;
int i,j;
cout<<"Vvedite a\n a = ";
cin>>a;
cout<<"Vvedite b\n b = ";
cin>>b;
cout<<"Vvedite c\n c = ";
cin>>c;
cout<<"Vvedite shag\n h = ";
cin>>h;
cout<<"Vvedite Y0\n Y0 = ";
cin>>y0;
E=0.00005;
h1=h/2;
cout<<"Nowiy shag h1 = "<<h1<<endl;
x=a;
y=y0;
xi=a;
yi=y0;
cout<<"x="<<x<<" "<<"y="<<y<<" "<<"x"<<j<<"="<<xi<<" "<<"y"<< j<<"="<<yi<<endl;
J=yi-y;
cout<<"Pogreshnost J = "<<J<<endl;
do
{
// у' = а(х2 + sin(bx)) + су.
y1=y+h*(a*(pow(x,2) + sin(b*x)) + c*y);
x1=x+h;
y2=y+h/2*(a*(pow(x,2) + sin(b*x)) + c*y) + (a*(pow(x1,2) + sin(b*x1)) + c*y1);
x=x1;
y=y2;
y11=yi+h1*(a*(pow(xi,2) + sin(b*xi)) + c*yi);
x11=xi+h1;
y22=yi+h1/2*((a*(pow(xi,2) + sin(b*xi)) + c*yi)+(a*(pow(x11,2) + sin(b*x11)) + c*y11));
xi=x11;
yi=y22;
cout<<"x="<<x<<" "<<"y="<<y<<" "<<"x"<<"="<<xi<<" "<<"y"<< "="<<yi<<endl;
J = fabs(yi-y);
cout<<"Pogreshnost = "<<J<<endl;
h=h1;
h1=h1/2;
}
while (J<E);
getch();
}
Результат работы программы:
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Савицкий Н.И. Технологии организации, хранения и обработки данных М.: ИНФРА-М, 2001.
Глушаков С. В. Программирование в среде Windows. Учебный курс.– Ростов н/Д: «Феникс», 2000.
Исаков В.Н.«Элементы численных методов».
Лапчик М.П. «Численные методы».
Локуциевский О. В., Гавриков М. Б. Начало численного анализа.