Находим корень уравнения f(x)=0 на отрезке. Алгоритм дают в условии — твоя задача переписать его в программу.
f(x) непрерывна на [a,b] и f(a)·f(b) < 0 (на концах разные знаки → внутри есть корень).
c = (a+b)/2.f(c)=0 — корень найден. Иначе: если f(a)·f(c) > 0 → a = c; иначе b = c.|b−a| < ε). Ответ ≈ (a+b)/2.#include <iostream> #include <math.h> using namespace std; double a, b, c; int i, n; double f(double x){ return pow(x,4)+2*x*pow(x,2)-x-1; } int main(){ a=0; b=1; n=16; for(i=1;i<=n;i++){ c=(b+a)/2; if(f(c)==0) break; else if(f(c)*f(a)>0) a=c; else b=c; } cout << c; // ответ ≈ 0.8668 return 0; }
На экзамене меняешь только: тело f(), значения a, b, n и что выводишь.
• Метод хорд — соединяешь концы отрезка хордой, корень хорды → новая граница.
• Метод Ньютона (касательных) — итерация x = x − f(x)/f′(x) (нужна производная). 2020: вписать for(i=1;i<=n;i++) x = x - f(x)/f1(x);
• Метод прямоугольников — для интеграла: S = Σ h·f(xᵢ), где h=(b−a)/n.
c = a − f(a)·(b−a) / (f(b)−f(a)), затем сужаем отрезок как в бисекции.f′(x):
x = x − f(x) / f′(x) — повторять n раз.h и высотой f(xᵢ):
h = (b−a)/n; S = Σ h·f(a+i·h), i = 0…n−1.2025 в.2 — бисекция (дрон): вычислить абсциссу приземления груза.
► решение2024 в.1 — бисекция (диск), отрезок [5;14], n=20.
► решение2024 в.2 — a) метод хорд (нарисовать 2 хорды); b) интеграл методом левых прямоугольников, [2;5], n=50.
► решение2022 — посадка зонда: вычислить абсциссу x и вывести разницу |px − x|.
► решение2020 в.1 — a) сопоставить графики методам; b) вписать метод Ньютона в программу P7.
► решение2020 в.2 — пшеница для посева: вычислить количество (функция + формула + цикл).
► решение