Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемЛев Недоквасов
1 НЕКОТОРЫЕ АЛГОРИТМЫ ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ
2 Табулирование функции одной переменной Составить алгоритм и программу вычисления таблицы значений функции f(x) для N значений аргумента X, равномерно распределенных на отрезке [A,B].
3 Состав данных
4 + начало ввод A,B,N h =(B-A)/(N-1) x=A i=1 i N y=f(x) вывод i,x,y x=x+h i=i+1 конец # include void main() { int N, i; float A,B, x,y; coutA>>B>>N; cout
5 Пример. Отделение корней уравнения с помощью построения таблиц и графиков. х х 4 +96х х х = 0
6 Приближенное вычисление корня на отрезке - метод подбора параметра (Excel)
7 Приближенное решение уравнения на отрезке Известно, что уравнение F(x)=0 (*) на отрезке [A,B] имеет ровно один корень. Требуется найти приближенное значение корня с точностью : |x*-x пр |
8 Приближенное решение уравнения на отрезке AB x y=F(x) x* Если уравнение (*) имеет на отрезке [A,B] ровно один корень, то F(A)*F(B) 0.
9 Метод деления отрезка пополам (дихотомии) Если F(x)*F(B) 0, то x* [x,B] корень надо искать на правой половине отрезка: A=x; иначе x* [A,x] корень надо искать на левой половине отрезка: B=x. Далее деление пополам нового отрезка. AB x=(a+b)/2 x y=F(x) x* x1x1 x2x2 x3x3
10 Метод деления отрезка пополам (дихотомии) i-ая итерация (цикл): вычисление x i - середины i-го отрезка и выбор его левой или правой половины. {x i } x* при i. Условие продолжения цикла: B-A>.
11 Метод деления отрезка пополам (дихотомии) начало ввод A,B, x=(A+B)/2 F(x)*F(B) 0 A=xB=x B-A> вывод x конец Алгоритм для идеального случая: на [A,B] ровно один корень. Более надежный алгоритм учитывает ограничение на число итераций: если число итераций больше некоторого предельного значения, то цикл завершается с выводом сообщения о некорректной постановке задачи.
12 Состав данных
13 конец B-A< начало ввод A,B,,Np вывод x N=0 x=(A+B)/2 F(x)*F(B) 0 A=xB=x + - Fl=1 Fl N=N+1 Fl=0 + N>Np Fl=0 вывод N>Np #include void main() { float A,B,E,x,c; int Np,N,Fl; coutA>>B>>E>>Np; Fl=1; N=0; while (Fl) { N=N+1; x=(A+B)/2; if (F(B)*F(x)
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.