Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Численые методы язык программирования СИ

Содержание

Основные понятияТипы решения:аналитическое (точное, в виде формулы)приближенное (неточное)Задача: решить уравнениечисленные методыначальное приближениепри N  
Численные методы (язык Си) Основные понятияТипы решения:аналитическое (точное, в виде формулы)приближенное (неточное)Задача: решить уравнениечисленные методыначальное приближениепри N   Численные методыИдея: последовательное уточнение решения с помощью некоторого алгоритма.Область применения: когда найти Есть ли решение на [a, b]?есть решениенет решениянет решения Метод дихотомии (деление пополам)Найти середину отрезка [a,b]:    c = Метод дихотомии (деления пополам)простотаможно получить решение с заданной точностью (в пределах точности Метод деления отрезка пополам//----------------------------------------------// BinSolve находит решение на [a,b]// Как подсчитать число шагов?float BinSolve ( float a, float b, Метод итераций (повторений)Задача:Эквивалентные преобразования:имеет те же решения приИдея решения:– начальное приближение (например, Сходимость итерацийСходящийся итерационный процесс: последовательность Расходимость итерацийРасходящийся итерационный процесс: последовательность От чего зависит сходимость?сходитсярасходитсяВыводы:сходимость итераций зависит от производнойитерации сходятся при Как выбрать b?наугад, пробовать разные вариантыдля начального приближения x0 пересчитывать на каждом шаге, например: Метод итераций (программа)//----------------------------------------------// Iter решение уравнения методом итераций// Вход: x – начальное Метод Ньютона (метод касательных) Метод Ньютона (программа)//----------------------------------------------// Newton решение уравнения методом Ньютона// Вход: x – начальное Метод Ньютонабыстрая (квадратичная) сходимость – ошибка на k-ом шаге обратно пропорциональна k2не Площадь криволинейной трапеции Метод (левых) прямоугольниковy = f1 (x)y = f2 (x)S1S2S3S4float Area(){ float x, Метод (правых) прямоугольниковxyx2x1y = f1 (x)y = f2 (x)S1S2S3S4float Area(){ float x, Метод (средних) прямоугольниковxyx2x1y = f1 (x)y = f2 (x)S1S2S3S4float Area(){ float x, Метод трапецийxyx2x1y = f1 (x)y = f2 (x)for ( x = x1; Метод Монте-КарлоПрименение: вычисление площадей сложных фигур (трудно применить другие методы).Требования: необходимо уметь Метод Монте-КарлоВписываем сложную фигуру в другую фигуру, для которой легко вычислить площадь
Слайды презентации

Слайд 2 Основные понятия
Типы решения:
аналитическое (точное, в виде формулы)

приближенное (неточное)
Задача:

Основные понятияТипы решения:аналитическое (точное, в виде формулы)приближенное (неточное)Задача: решить уравнениечисленные методыначальное приближениепри N  

решить уравнение
численные методы
начальное приближение
при N  


Слайд 3 Численные методы
Идея: последовательное уточнение решения с помощью некоторого

Численные методыИдея: последовательное уточнение решения с помощью некоторого алгоритма.Область применения: когда

алгоритма.
Область применения: когда найти точное решение невозможно или крайне

сложно.

можно найти хоть какое-то решение
во многих случаях можно оценить ошибку (то есть можно найти решение с заданной точностью)

нельзя найти точное решение


невозможно исследовать решение при изменении параметров
большой объем вычислений
иногда сложно оценить ошибку
нет универсальных методов


Слайд 4 Есть ли решение на [a, b]?
есть решение
нет решения
нет

Есть ли решение на [a, b]?есть решениенет решениянет решения

решения


Слайд 5 Метод дихотомии (деление пополам)
Найти середину отрезка [a,b]:

Метод дихотомии (деление пополам)Найти середину отрезка [a,b]:  c = (a + b) / 2;Если f(c)*f(a)

c = (a + b) / 2;
Если f(c)*f(a)

сдвинуть правую границу интервала b = c;
Если f(c)*f(a)≥ 0, сдвинуть левую границу интервала a = c;
Повторять шаги 1-3, пока не будет b – a ≤ .

Слайд 6 Метод дихотомии (деления пополам)
простота
можно получить решение с заданной

Метод дихотомии (деления пополам)простотаможно получить решение с заданной точностью (в пределах

точностью (в пределах точности машинных вычислений)
нужно знать интервал [a,

b]
на интервале [a, b] должно быть только одно решение
большое число шагов для достижения высокой точности
только для функций одной переменной

Слайд 7 Метод деления отрезка пополам
//----------------------------------------------
// BinSolve находит решение на

Метод деления отрезка пополам//----------------------------------------------// BinSolve находит решение на [a,b]//

[a,b]
// методом деления отрезка пополам


// Вход: a, b – границы интервала, a < b
// eps - точность решения
// Выход: x – решение уравнения f(x)=0
//----------------------------------------------
float BinSolve ( float a, float b, float eps )
{
float c;
while ( b - a > eps )
{
c = (a + b) / 2;
if ( f(a)*f(c) < 0 )
b = c;
else a = c;
}
return (a + b) / 2;
}

float f ( float x )
{
return x*x – 5;
}


Слайд 8 Как подсчитать число шагов?
float BinSolve ( float a,

Как подсчитать число шагов?float BinSolve ( float a, float b,

float b,

float eps, int &n )
{
float c;
n = 0;
while ( b - a > eps )
{
c = (a + b) / 2;
if ( f(a)*f(c) < 0 )
b = c;
else a = c;
n ++;
}
return (a + b) / 2;
}

int &n

n = 0;

n ++;

значение переменной меняется внутри функции


Слайд 9 Метод итераций (повторений)
Задача:
Эквивалентные преобразования:
имеет те же решения при
Идея

Метод итераций (повторений)Задача:Эквивалентные преобразования:имеет те же решения приИдея решения:– начальное приближение

решения:
– начальное приближение (например, с графика)
Проблемы:
как лучше выбрать

?
всегда ли так можно найти решение?

Слайд 10 Сходимость итераций
Сходящийся итерационный процесс: последовательность

Сходимость итерацийСходящийся итерационный процесс: последовательность     приближается (сходится) к точному решению.односторонняя сходимостьдвусторонняя сходимость

приближается (сходится) к

точному решению.

односторонняя сходимость

двусторонняя сходимость


Слайд 11 Расходимость итераций
Расходящийся итерационный процесс: последовательность

Расходимость итерацийРасходящийся итерационный процесс: последовательность     неограниченно возрастает

неограниченно возрастает или

убывает, не приближается к решению.

односторонняя расходимость

двусторонняя расходимость


Слайд 12 От чего зависит сходимость?
сходится
расходится
Выводы:
сходимость итераций зависит от производной
итерации

От чего зависит сходимость?сходитсярасходитсяВыводы:сходимость итераций зависит от производнойитерации сходятся при

сходятся при

и расходятся при
сходимость определяется выбором параметра b


Слайд 13 Как выбрать b?
наугад, пробовать разные варианты
для начального приближения

Как выбрать b?наугад, пробовать разные вариантыдля начального приближения x0 пересчитывать на каждом шаге, например:

x0






пересчитывать на каждом шаге, например:


Слайд 14 Метод итераций (программа)
//----------------------------------------------
// Iter решение уравнения методом итераций
//

Метод итераций (программа)//----------------------------------------------// Iter решение уравнения методом итераций// Вход: x –

Вход: x – начальное приближение
// b

- параметр
// eps - точность решения
// Выход: решение уравнения f(x)=0
// n - число шагов
////----------------------------------------------
float Iter ( float x, float b, float eps, int &n)
{
float dx;
n = 0;
while ( 1 ) {
dx = b*f(x);
x = x + dx;
if ( fabs(dx) < eps ) break;
n ++;
if ( n > 100 ) break;
}
return x;
}

аварийный выход (итерации расходятся)

нормальный выход


Слайд 15 Метод Ньютона (метод касательных)

Метод Ньютона (метод касательных)

Слайд 16 Метод Ньютона (программа)
//----------------------------------------------
// Newton решение уравнения методом Ньютона
//

Метод Ньютона (программа)//----------------------------------------------// Newton решение уравнения методом Ньютона// Вход: x –

Вход: x – начальное приближение
// eps

- точность решения
// Выход: решение уравнения f(x)=0
// n - число шагов
//----------------------------------------------
float Newton ( float x, float eps, int &n)
{
float dx;
n = 0;
while ( 1 ) {
dx = f(x) / df(x);
x = x - dx;
if ( fabs(dx) < eps ) break;
n ++;
if ( n > 100 ) break;
}
return x;
}

float f ( float x ) {
return 3*x*x*x+2*x+5;
}
float df ( float x ) {
return 9*x*x + 2;
}


Слайд 17 Метод Ньютона
быстрая (квадратичная) сходимость – ошибка на k-ом

Метод Ньютонабыстрая (квадратичная) сходимость – ошибка на k-ом шаге обратно пропорциональна

шаге обратно пропорциональна k2
не нужно знать интервал, только начальное

приближение
применим для функция нескольких переменных

нужно уметь вычислять производную (по формуле или численно)
производная не должна быть равна нулю

может зацикливаться


Слайд 18 Площадь криволинейной трапеции

Площадь криволинейной трапеции

Слайд 19 Метод (левых) прямоугольников
y = f1 (x)
y = f2

Метод (левых) прямоугольниковy = f1 (x)y = f2 (x)S1S2S3S4float Area(){ float

(x)
S1
S2
S3
S4
float Area()
{
float x, S = 0, h=0.001;
for

( x = x1; x < x2; x += h)
S += h*(f1(x) – f2(x));
return S;
}

for ( x = x1; x < x2; x += h )
S += f1(x) – f2(x);
S *= h;


Слайд 20 Метод (правых) прямоугольников
x
y
x2
x1
y = f1 (x)
y = f2

Метод (правых) прямоугольниковxyx2x1y = f1 (x)y = f2 (x)S1S2S3S4float Area(){ float

(x)
S1
S2
S3
S4
float Area()
{
float x, S = 0, h=0.001;
for

( x = x1; x < x2; x += h)
S += h*(f1(x+h) – f2(x+h));

return S;
}

for ( x = x1; x < x2; x += h )
S += f1(x+h) – f2(x+h);
S *= h;


Слайд 21 Метод (средних) прямоугольников
x
y
x2
x1
y = f1 (x)
y = f2

Метод (средних) прямоугольниковxyx2x1y = f1 (x)y = f2 (x)S1S2S3S4float Area(){ float

(x)
S1
S2
S3
S4
float Area()
{
float x, S = 0, h=0.001;
for

( x = x1; x < x2; x += h)
S += h*(f1(x+h) – f2(x+h));

return S;
}

for ( x = x1; x < x2; x += h )
S += f1(x+h/2) – f2(x+h/2);
S *= h;

левые (правые):

средние


Слайд 22 Метод трапеций
x
y
x2
x1
y = f1 (x)
y = f2 (x)
for

Метод трапецийxyx2x1y = f1 (x)y = f2 (x)for ( x =

( x = x1; x < x2; x +=

h )
S += f1(x) – f2(x) +
f1(x+h) – f2(x+h);
S *= h/2;

S =( f1(x1) - f2(x1)
+ f1(x2) - f2(x2) )/2.;
for ( x = x1+h; x < x2; x += h )
S += f1(x) – f2(x);
S *= h;


Слайд 23 Метод Монте-Карло
Применение: вычисление площадей сложных фигур (трудно применить

Метод Монте-КарлоПрименение: вычисление площадей сложных фигур (трудно применить другие методы).Требования: необходимо

другие методы).
Требования: необходимо уметь достаточно просто определять, попала ли

точка (x, y) внутрь фигуры.
Пример: заданы 100 кругов (координаты центра, радиусы), которые могу пересекаться. Найти площадь области, перекрытой кругами.

  • Имя файла: chislenye-metody-yazyk-programmirovaniya-si.pptx
  • Количество просмотров: 158
  • Количество скачиваний: 0