Решение уравнения с одним неизвестным
пример: f(x) = 3*sin(2*x)-1.5*x-1=0 f=Inline(‘3*sin(2*x)-1.5*x-1‘) a=input(‘a=‘); b=input(‘b=‘); h=input(‘h=‘); x=a:h:b; plot(x,f(x)); grid xlabel(‘x’); ylabel(‘f(x)’) Уточнение корня на отрезке [a,b], в котором локализован только один корень, осуществляется итерационными методами, в которых последовательно, шаг за шагом, производится уточнение начального приближения корня. Итерацией называется совокупность вычислительных операций, приводящих к новому приближенному значению корня. Если каждое последующее значение x(k) (k=1,2,3,…) находится все ближе к точному значению, говорят, что метод сходится. В противном случае метод расходится. Для реализации итерационного процесса должны быть заданы начальное приближение x(0) и точность ε, с которой найти решение уравнения. Условие окончание имеет вид: |x(k)-x(k-1)| ≤·ε.Все методы можно разделить на две группы: с условной и безусловной сходимостью. Метод половинного деления В этом методе на каждой итерации новое приближение определяется как:
x(k)=(a(k-1)+b(k-1))/2, где к – номер итерации. Алгоритм Задаем функцию f(x), отрезок [a(0),b(0)], точность ε и k=1. Вычисляем приближение x(k)=(a(k-1)+b(k-1))/2 Определяем новый отрезок [a(k),b(k)]. Проверяем, если f(a(k-1))*f(x(k))>0, то a(k)=x(k) и b(k)=b(k-1), иначе a(k)=a(k-1) и b(k)=x(k). Проверяем условие окончания, если |b(k)-a(k)| ≤·2ε, то за ответ принимаем значение равное x=(a(k)+b(k))/2 и переходим на пункт 5, иначе k=k+1 и переходим на пункт 2. выводим x и f(x). Методы с безусловной сходимостью