Суть задания: Найти методом хорд корни уравнения f(x)=g(x). Где f -полином, а g- набор точек(которая интерполируется полиномами лагранжа). Проблема: Нужно применить метод хорд для f(x) - g(x)=0. То есть, чтобы результат был - корень на пересечении 2-х графиков.
Как пробовал решать: 1.
package in.general;
public class AbstractFunctionFG {
private ArrayFFunction F;
private ArrayGFunction G;
private double root;
public AbstractFunctionFG() {}
public AbstractFunctionFG(ArrayFFunction f, ArrayGFunction g) {
this.F = f;
this.G = g;
}
public double getRoot() {
return root;
}
public void setRoot(double root) {
this.root = root;
}
public ExtendedFunc getF() {
return F;
}
public ExtendedFunc getG() {
return G;
}
public void setF(ArrayFFunction f) {
this.F = f;
}
public void setG(ArrayGFunction g) {
this.G = g;
}
public class EqualBordersException extends Exception {}
public double secant(double a, double b, double eps) {
double x1 = a;
double x2 = b;
double x3;
if (a > b || eps <= 0) {
throw new IllegalArgumentException("Error!");
}
do {
x3 = (x1 * fg(F,G,x2) - x2 * fg(F,G,x1)) / (fg(F,G,x2) - fg(F,G,x1)); // Ошибку выбивает здесь
x1 = x2;
x2 = x3;
}
while (Math.abs(x2 - x1) > eps);
root = x3;
return root;
}
public static double fg(ArrayFFunction F, ArrayGFunction G, double x){
double result;
result = F.extend(x) - G.extend(x); // И здесь тоже ошибка
return result;
}
}
2.
package koorsach;
public abstract class AbstractSecant{
abstract double f(double x);
public double solveDich(double a, double b, double eps, FunctionF f, FunctionG g) throws IntervalException{
double x1 = a;
double x2 = b;
double x3;
do {
x3 = (x1 * f.f(x2) - x2 * f.f(x1)) / (f.f(x2) - f.f(x1));
x1 = x2;
x2 = x3;
}
while (Math.abs(x2 - x1) > eps);
return x3;
}
}
Второй способ решает только для f или для g. И корни находятся только на пересечении с Ох, Оу. Помогите решить проблему, пожалуйста.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости