Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class LogisticMap {
- static double logistic(double c, double x) {
- return (c*x - c*x*x);
- }
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- System.out.print("Введите параметр C: ");
- double c = in.nextDouble();
- System.out.print("Введите начальное значение X0: ");
- double x0 = in.nextDouble();
- System.out.print("Введите число итераций n: ");
- int n = in.nextInt();
- int N = 2000; // число шагов на графике
- StdDraw.setXscale(-0.3, 4.2);
- StdDraw.setYscale(-0.1, 1.1);
- StdDraw.line(0.0,0.0,4.1,0.0);
- StdDraw.line(4.1,-0.025,4.1,0.025);
- StdDraw.line(4.1,0.025,4.2,0.0);
- StdDraw.line(4.1,-0.025,4.2,0.0);
- StdDraw.line(0.0,0.0,0.0,1.0);
- StdDraw.line(-0.1,1.0,0.1,1.0);
- StdDraw.line(-0.1,1.0,0.0,1.05);
- StdDraw.line(0.1,1.0,0.0,1.05);
- StdDraw.line(1.0,0.0,1.0,-0.025);
- StdDraw.line(2.0,0.0,2.0,-0.025);
- StdDraw.line(3.0,0.0,3.0,-0.025);
- StdDraw.line(4.0,0.0,4.0,-0.025);
- StdDraw.text(1.0,-0.05,"1");
- StdDraw.text(2.0,-0.05,"2");
- StdDraw.text(3.0,-0.05,"3");
- StdDraw.text(4.0,-0.05,"4");
- StdDraw.text(4.07,0.05,"С");
- StdDraw.line(0.0,0.2,-0.1,0.2);
- StdDraw.line(0.0,0.4,-0.1,0.4);
- StdDraw.line(0.0,0.6,-0.1,0.6);
- StdDraw.line(0.0,0.8,-0.1,0.8);
- StdDraw.text(-0.15,1.05,"X");
- StdDraw.text(-0.2,0.2,"0.2");
- StdDraw.text(-0.2,0.4,"0.4");
- StdDraw.text(-0.2,0.6,"0.6");
- StdDraw.text(-0.2,0.8,"0.8");
- StdDraw.enableDoubleBuffering();
- for (;c <= 4.0; c += 4.0 / N) {
- double x = logistic(c, x0);
- // пропуск первых n - 10 точек
- for (int i = 0; i < n - 10; i++)
- x = logistic(c, x);
- // последние 10 точек
- for (int i = 0; i < 10; i++) {
- x = logistic(c, x);
- StdDraw.point(c, x);
- }
- StdDraw.show();
- StdDraw.pause(2);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement