Суть алгоритма в вычислении определенного интеграла квадратурным методом Гаусса. g10c1, ..., g10x5 - константы, используемые в 10ти точечном методе
public class GaussMath {
double aaa, bbb, kkk;
final double g10c1=0.9739065285/6.2012983932;
final double g10c2=0.8650633667/6.2012983932;
final double g10c3=0.6794095683/6.2012983932;
final double g10c4=0.4333953941/6.2012983932;
final double g10c5=0.1488743390/6.2012983932;
final double g10x1=0.0666713443/6.2012983932;
final double g10x2=0.1494513492/6.2012983932;
final double g10x3=0.2190863625/6.2012983932;
final double g10x4=0.2692667193/6.2012983932;
final double g10x5=0.2955242247/6.2012983932;
double F(double x)//интегрируемая функция
{
return kkk*(exp(-aaa * x) - exp(-bbb * x));
}
private int exp(double d) {
return 0;
}
double gauss_calc(double a, double b)//сам десятиточечный метод Гаусса
{
double n,m,s,s1,s2,s3,s4,s5;
m =(b + a) /2;
n =(b - a) /2;
s1 = g10c1 * (F(m + n * g10x1) + F(m - n * g10x1));
s2 = g10c2 * (F(m + n * g10x2) + F(m - n * g10x2));
s3 = g10c3 * (F(m + n * g10x3) + F(m - n * g10x3));
s4 = g10c4 * (F(m + n * g10x4) + F(m - n * g10x4));
s5 = g10c5 * (F(m + n * g10x5) + F(m - n * g10x5));
s = s1 + s2 + s3 + s4 + s5;
return s * (b - a);
}
//рекурсивная ф-ция подсчета с заданной точностью
// gc - ранее посчитаный интеграл на интервале (a,b)
double gauss(double a, double b, double eps, double gc)
{
double t, ga, gb;
t = (a + b) /2; //разбиваем интервал на две половинки
ga = gauss_calc(a, t); //в каждой половинке считаем интеграл
gb = gauss_calc(t, b);
if (abs(ga + gb - gc) > eps) //проверяем точность вычислений
{
ga = gauss(a, t, eps/2, ga); //рекурсия для первой половинки
gb = gauss(t, b, eps/2, gb); //рекурсия для второй половинки
} //при этом точность повышаем, чтобы
//при сложении ошибка не накапливалась
return ga + gb; //интеграл = сумме интегралов половинок
}
private double abs(double d) {
return 0;
}
void equateit(double a, double b, double eps) //процедура подсчета значения интеграла и вывода графика на экран
{
double integral;
Scanner in = new Scanner(System.in);
System.out.print("Введите начало интервала интегрирования a=");
Double a = in.nextDouble();
System.out.print("Введите конец интервала интегрирования b=");
Double b = in.nextDouble();
System.out.print("Введите точность интегрирования eps=");
Double eps = in.nextDouble();
integral = gauss(a, b, eps, gauss_calc(a, b));
System.out.println("Интеграл = %5.7lf\n", integral);
getClass();
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Решил попробовать пописать под Android, соответственно появилось очень большое количество вопросовКому не трудно ответьте пожалуйста
имеется XML файл matchxml, через curl легко отправить POST и добавить в базу
Хотелось бы узнать: какую строку возвращает substring(0, 0), если вызывающая строка состоит только из одного символа?