Advertisement
Guest User

Untitled

a guest
Sep 25th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.01 KB | None | 0 0
  1. private void button5_Click(object sender, EventArgs e)
  2.         {
  3.             ClearForm(); // išvalomi programos duomenys
  4.             PreparareForm(-8, 8, -300, 300);
  5.              x1 = -33.5; // izoliacijos intervalo pradžia
  6.             x2 = 6.7; // izoliacijos intervalo galas
  7.             Fx = chart1.Series.Add("F(x)");
  8.             Fx.ChartType = SeriesChartType.Line;
  9.             double l = -10;
  10.             for (int i = 0; i < 100000; i++)
  11.             {
  12.                 Fx.Points.AddXY(l, F(l)); l = l + (2 * Math.PI) / 50;
  13.             }
  14.             Fx.BorderWidth = 3;
  15.  
  16.             X1X2 = chart1.Series.Add("Rėžiai");
  17.             X1X2.MarkerStyle = MarkerStyle.Circle;
  18.             X1X2.MarkerSize = 8;
  19.             X1X2.ChartType = SeriesChartType.Point;
  20.             X1X2.ChartType = SeriesChartType.Line;
  21.  
  22.  
  23.             XMid = chart1.Series.Add("Tiksliausias taškas");
  24.             XMid.MarkerStyle = MarkerStyle.Circle;
  25.             X1X2.ChartType = SeriesChartType.Point;
  26.             X1X2.ChartType = SeriesChartType.Line;
  27.             XMid.MarkerSize = 8;
  28.  
  29.             timer3.Enabled = true;
  30.             timer3.Interval = 500; // timer3 intervalas milisekundemis
  31.             timer3.Start();
  32.  
  33.         }
  34.  
  35.  
  36.         private void timer3_Tick(object sender, EventArgs e)
  37.         {
  38.             X1X2.Points.Clear();
  39.             float dx = (float)(0.5);
  40.             if ((x1 + dx) < x2)
  41.             {
  42.                 X1X2.Points.AddXY(x1, 0);
  43.                 X1X2.Points.AddXY(x1 + dx, 0);
  44.                 if (Math.Sign(F(x1)) != Math.Sign(F(x1 + dx)))
  45.                 {
  46.                    
  47.                     richTextBox1.AppendText("\n----------------------------------------------------------------");
  48.                     richTextBox1.AppendText(String.Format("\nFunkcijos g(x) Intervalas kur yra šaknis : [{0}; {1}] ", x1, x1 + dx));
  49.  
  50.                     //paprastos iteracijos
  51.  
  52.                     //Alfa radimas
  53.                     float alpha = 0;
  54.                     alpha = (float)(DF(x1) * (-1.5));
  55.                     int i1 = 0;
  56.                     while (Math.Abs(F(x1)) > 0.001 && i1 < 1000)
  57.                     {
  58.                         X1X2.Points.Clear();
  59.                         X1X2.Points.AddXY(x1, 0);
  60.                         i1++;
  61.                         x1 = (float)(x1 + (1.0 / alpha) * F(x1));
  62.                     }
  63.                     XMid.Points.AddXY(x1, 0);
  64.                     X1X2.Points.Clear();
  65.                     richTextBox1.AppendText(String.Format("\n Paprastos iteracijos metodas : [{0}] - iteracija {1}", x1, i1+1));
  66.                     richTextBox1.AppendText(String.Format("\n F({0}) = {1}", x1, F(x1)));
  67.                     richTextBox1.AppendText("\n----------------------------------------------------------------");
  68.                 }
  69.                 x1 = x1 + dx;
  70.                 richTextBox1.AppendText(String.Format("\n Ieškomas intervalas: [{0}; {1}] ", x1, x1 + dx));
  71.                 return;
  72.             }
  73.             timer3.Stop();
  74.            
  75.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement