Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.29 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class LogisticMap {
  4.  
  5.     static double logistic(double c, double x) {
  6.         return (c*x  - c*x*x);
  7.     }
  8.  
  9.     public static void main(String[] args) {
  10.  
  11.         Scanner in = new Scanner(System.in);
  12.         System.out.print("Введите параметр C: ");
  13.         double c = in.nextDouble();
  14.         System.out.print("Введите начальное значение X0: ");
  15.         double x0 = in.nextDouble();
  16.         System.out.print("Введите число итераций n: ");
  17.         int n = in.nextInt();
  18.  
  19.         int N = 2000; // число шагов на графике
  20.         StdDraw.setXscale(-0.3, 4.2);
  21.         StdDraw.setYscale(-0.1, 1.1);
  22.  
  23.         StdDraw.line(0.0,0.0,4.1,0.0);
  24.  
  25.         StdDraw.line(4.1,-0.025,4.1,0.025);
  26.         StdDraw.line(4.1,0.025,4.2,0.0);
  27.         StdDraw.line(4.1,-0.025,4.2,0.0);
  28.  
  29.  
  30.         StdDraw.line(0.0,0.0,0.0,1.0);
  31.  
  32.         StdDraw.line(-0.1,1.0,0.1,1.0);
  33.         StdDraw.line(-0.1,1.0,0.0,1.05);
  34.         StdDraw.line(0.1,1.0,0.0,1.05);
  35.  
  36.         StdDraw.line(1.0,0.0,1.0,-0.025);
  37.         StdDraw.line(2.0,0.0,2.0,-0.025);
  38.         StdDraw.line(3.0,0.0,3.0,-0.025);
  39.         StdDraw.line(4.0,0.0,4.0,-0.025);
  40.  
  41.         StdDraw.text(1.0,-0.05,"1");
  42.         StdDraw.text(2.0,-0.05,"2");
  43.         StdDraw.text(3.0,-0.05,"3");
  44.         StdDraw.text(4.0,-0.05,"4");
  45.         StdDraw.text(4.07,0.05,"С");
  46.  
  47.         StdDraw.line(0.0,0.2,-0.1,0.2);
  48.         StdDraw.line(0.0,0.4,-0.1,0.4);
  49.         StdDraw.line(0.0,0.6,-0.1,0.6);
  50.         StdDraw.line(0.0,0.8,-0.1,0.8);
  51.  
  52.         StdDraw.text(-0.15,1.05,"X");
  53.         StdDraw.text(-0.2,0.2,"0.2");
  54.         StdDraw.text(-0.2,0.4,"0.4");
  55.         StdDraw.text(-0.2,0.6,"0.6");
  56.         StdDraw.text(-0.2,0.8,"0.8");
  57.  
  58.         StdDraw.enableDoubleBuffering();
  59.  
  60.         for (;c <= 4.0; c += 4.0 / N) {
  61.  
  62.             double x = logistic(c, x0);
  63.  
  64.             // пропуск первых n - 10 точек
  65.             for (int i = 0; i < n - 10; i++)
  66.                 x = logistic(c, x);
  67.  
  68.             // последние 10 точек
  69.             for (int i = 0; i < 10; i++) {
  70.                 x = logistic(c, x);
  71.                 StdDraw.point(c, x);
  72.             }
  73.             StdDraw.show();
  74.             StdDraw.pause(2);
  75.         }
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement