Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class EasyIter {
- public static double x; //неизвастная в уравнении
- public static double xn; //предыдущее значение неизвестной
- public static double E = 0.01; //условие останова
- public static int i = 0; //число итераций
- public static double L1 = -0.625; // лямбда для отрезка от 0 до 1
- public static double L2 = 1.395; // лямбда для отрезка от -1.1 до -0.4
- public EasyIter (){ }
- public static void b(double a, double b, double L){ //здесь мы представляем функцию через арккосинус
- x = (a+b)/2;//по условию задания
- xn = 20; //присваиваем это просто чтобы запустить цикл далее
- while ((Math.abs(x-xn) > E) & (Math.abs(EasyIter.f(x)) > E) ){
- xn=x;
- x = xn + L*EasyIter.f(x);
- i++;
- System.out.println("x[" + i + "] = " + x);
- }
- System.out.println("Корень уравнения: x = " + x);
- System.out.println("Количество итераций: i = " + i);
- i=0; //обнуляем число итераций
- }
- public static double f(double c){
- return Math.sqrt(4*c+7)-3*Math.cos(c);
- }
- public static void main(String[] args){
- EasyIter abc = new EasyIter();
- EasyIter.b(0,1, L1);
- EasyIter.b(-1.1,-0.4, L2);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement