АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Численное интегрирование методом Монте-Карло

Читайте также:
  1. G. Все перечисленное
  2. А. промывание полости носа методом перемещения
  3. Бриллианты обесцвечены методом HTHP
  4. Валовий внутрішній продукт: сутність, зміст його елементів за виробничим методом.
  5. Варіанти застосування методу. Порівняння з методом переміщень
  6. Взяття матеріалу методом мазків-відбитків для імунофлюоресцентного дослідження
  7. Визначення осідання грунту за методом пошарового підсумовування.
  8. Визначення осідання фундаменту методом пошарового підсумування.
  9. Визначення показників механічних властивостей гірських порід методом статичного втискування штампа
  10. Вплив держави на економічну рівновагу. Модель економічної рівноваги за методом “витрати-випуск” для змішаної закритої економіки.
  11. Все перечисленное
  12. Графические модели и декодирование методом передачи сообщений

4.1 Теоретический материал:

В этом методе несколько раз берётся значение подынтегральной функции от случайной величины, которая лежит между пределами интегрирования. Затем сумма полученных значений делится на объём выборки, который также называется количеством разыгрываемых точек.

 

4.2 Блок-схема:

Рисунок 7 – Метод Монте-Карло.

4.3 Результат работы:

 

Рисунок 8 – Результат вычисления методом Монте-Карло.

 

Листинг программы:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Threading;

 

namespace nelin_ur

{

public partial class Form1: Form

{

 

public Form1()

{

InitializeComponent();

}

 

private double a = 0.0;

private double b = 1.0;

private double h, x, s;

private int n;

private double fun(double x)

{

double f = (double)(Math.Cos(x * x));

 

 

return (f);

}

private double m1(double a, double b, int n)

{

h = (b - a) / n;

x = a + h / 2;

s = 0;

for (int i = 0; i < n; i++)

{

s = s + fun(x);

x = x + h;

}

s = s * h;

return (s);

}

private double m1_gr(double a, double b, int n)

{

System.Drawing.Graphics g = System.Drawing.Graphics.FromHwnd(tabPage1.Handle);

System.Drawing.Brush brush = System.Drawing.Brushes.Red;

System.Drawing.Brush brush2 = System.Drawing.Brushes.White;

int milSec = hScrollBar1.Maximum + 10 - hScrollBar1.Value;

g.FillEllipse(brush, 201, 21, 99, 18);

g.DrawString("начало", this.Font, Brushes.Black, 230, 22);

Thread.Sleep(milSec);

g.FillEllipse(brush2, 201, 21, 99, 18);

g.DrawString("начало", this.Font, Brushes.Black, 230, 22);

g.FillRectangle(brush, 201, 51, 99, 19);

g.DrawString("ввод a,b,N", this.Font, Brushes.Black, 220, 52);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 51, 99, 19);

g.DrawString("ввод a,b,N", this.Font, Brushes.Black, 220, 52);

g.FillRectangle(brush, 201, 81, 99, 39);

g.DrawString("h=(b-a)/N\nx:=a;s:=0", this.Font, Brushes.Black, 223, 88);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 81, 99, 39);

g.DrawString("h=(b-a)/N\nx:=a;s:=0", this.Font, Brushes.Black, 223, 88);

h = (b - a) / n;

x = a;

s = 0;

 

for (int i = 1; i < n; i++)

{

g.FillRectangle(brush, 201, 131, 99, 19);

g.DrawString("i=1,N,1", this.Font, Brushes.Black, 225, 132);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 131, 99, 19);

g.DrawString("i=1,N,1", this.Font, Brushes.Black, 225, 132);

 

g.FillRectangle(brush, 201, 161, 99, 29);

g.DrawString("s:=s+f(x)\nx:=x+h", this.Font, Brushes.Black, 223, 162);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 161, 99, 29);

g.DrawString("s:=s+f(x)\nx:=x+h", this.Font, Brushes.Black, 223, 162);

x = x + h;

s = s + fun(x);

 

}

g.FillRectangle(brush, 201, 131, 99, 19);

g.DrawString("i=1,N,1", this.Font, Brushes.Black, 225, 132);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 131, 99, 19);

g.DrawString("i=1,N,1", this.Font, Brushes.Black, 225, 132);

 

g.FillRectangle(brush, 316, 131, 99, 19);

g.DrawString("s:=s*h", this.Font, Brushes.Black, 345, 132);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 316, 131, 99, 19);

g.DrawString("s:=s*h", this.Font, Brushes.Black, 345, 132);

s = s * h;

g.FillRectangle(brush, 316, 161, 99, 19);

g.DrawString("вывод s", this.Font, Brushes.Black, 340, 162);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 316, 161, 99, 19);

g.DrawString("вывод s", this.Font, Brushes.Black, 340, 162);

g.FillEllipse(brush, 316, 191, 99, 18);

g.DrawString("конец", this.Font, Brushes.Black, 345, 192);

Thread.Sleep(milSec);

g.FillEllipse(brush2, 316, 191, 99, 18);

g.DrawString("конец", this.Font, Brushes.Black, 345, 192);

return (s);

 

}

private double m2(double a, double b, int n)

{

double f;

h = (b - a) / n;

x = a+h;

s = 0;

s = (fun(a) + fun(b)) / 2;

for (int i = 0; i < n-1; i++)

{

s = s + fun(x);

x = x + h;

}

s = s * h;

return (s);

}

private double m2_gr(double a, double b, int n)

{

System.Drawing.Graphics g = System.Drawing.Graphics.FromHwnd(tabPage2.Handle);

System.Drawing.Brush brush = System.Drawing.Brushes.Red;

System.Drawing.Brush brush2 = System.Drawing.Brushes.White;

int milSec = hScrollBar2.Maximum + 10 - hScrollBar2.Value;

g.FillEllipse(brush, 201, 21, 99, 18);

g.DrawString("начало", this.Font, Brushes.Black, 230, 22);

Thread.Sleep(milSec);

g.FillEllipse(brush2, 201, 21, 99, 18);

g.DrawString("начало", this.Font, Brushes.Black, 230, 22);

g.FillRectangle(brush, 201, 51, 99, 19);

g.DrawString("ввод a,b,N", this.Font, Brushes.Black, 220, 52);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 51, 99, 19);

g.DrawString("ввод a,b,N", this.Font, Brushes.Black, 220, 52);

g.FillRectangle(brush, 201, 81, 99, 39);

g.DrawString("h=(b-a)/N\nx:=a;s:=0\ns:=(f(a)+f(b))/2", this.Font, Brushes.Black, 217, 82);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 81, 99, 39);

g.DrawString("h=(b-a)/N\nx:=a;s:=0\ns:=(f(a)+f(b))/2", this.Font, Brushes.Black, 217, 82);

 

h = (b - a) / n;

x = a;

s = 0;

s = (fun(a) + fun(b)) / 2;

for (int i = 0; i < n; i++)

{

g.FillRectangle(brush, 201, 131, 99, 19);

g.DrawString("i=1,N,1", this.Font, Brushes.Black, 225, 132);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 131, 99, 19);

g.DrawString("i=1,N,1", this.Font, Brushes.Black, 225, 132);

 

g.FillRectangle(brush, 201, 161, 99, 29);

g.DrawString("s:=s+f(x)\nx:=x+h", this.Font, Brushes.Black, 223, 162);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 161, 99, 29);

g.DrawString("s:=s+f(x)\nx:=x+h", this.Font, Brushes.Black, 223, 162);

s = s + fun(x);

x = x + h;

}

g.FillRectangle(brush, 201, 131, 99, 19);

g.DrawString("i=1,N,1", this.Font, Brushes.Black, 225, 132);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 131, 99, 19);

g.DrawString("i=1,N,1", this.Font, Brushes.Black, 225, 132);

 

g.FillRectangle(brush, 316, 131, 99, 19);

g.DrawString("s:=s*h", this.Font, Brushes.Black, 345, 132);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 316, 131, 99, 19);

g.DrawString("s:=s*h", this.Font, Brushes.Black, 345, 132);

s = s * h;

g.FillRectangle(brush, 316, 161, 99, 19);

g.DrawString("вывод s", this.Font, Brushes.Black, 340, 162);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 316, 161, 99, 19);

g.DrawString("вывод s", this.Font, Brushes.Black, 340, 162);

g.FillEllipse(brush, 316, 191, 99, 18);

g.DrawString("конец", this.Font, Brushes.Black, 345, 192);

Thread.Sleep(milSec);

g.FillEllipse(brush2, 316, 191, 99, 18);

g.DrawString("конец", this.Font, Brushes.Black, 345, 192);

return (s);

}

private double m3(double a, double b, int n)

{

double x0;

h = (b - a) / n;

x = a;

s = fun(a);

for (int i = 1; i <= n; i = i + 2)

{

x = x + h;

s = s + 4 * fun(x);

if ((i + 1) == n) break;

x = x + h;

s = s + 2 * fun(x);

};

x = b;

s = s + fun(x);

s = s * h / 3;

return (s);

}

private double m3_gr(double a, double b, int n)

{

System.Drawing.Graphics g = System.Drawing.Graphics.FromHwnd(tabPage3.Handle);

System.Drawing.Brush brush = System.Drawing.Brushes.Red;

System.Drawing.Brush brush2 = System.Drawing.Brushes.White;

int milSec = hScrollBar3.Maximum + 10 - hScrollBar3.Value;

g.FillEllipse(brush, 201, 21, 99, 18);

g.DrawString("начало", this.Font, Brushes.Black, 230, 22);

Thread.Sleep(milSec);

g.FillEllipse(brush2, 201, 21, 99, 18);

g.DrawString("начало", this.Font, Brushes.Black, 230, 22);

g.FillRectangle(brush, 201, 51, 99, 19);

g.DrawString("ввод a,b,N", this.Font, Brushes.Black, 220, 52);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 51, 99, 19);

g.DrawString("ввод a,b,N", this.Font, Brushes.Black, 220, 52);

g.FillRectangle(brush, 201, 81, 99, 39);

g.DrawString("h=(b-a)/N\nx:=a;s:=f(a)", this.Font, Brushes.Black, 217, 88);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 81, 99, 39);

g.DrawString("h=(b-a)/N\nx:=a;s:=f(a)", this.Font, Brushes.Black, 217, 88);

h = (b - a) / n;

x = a;

s = fun(a);

for (int i = 1; i <= n; i = i + 2)

{

g.FillRectangle(brush, 201, 131, 99, 19);

g.DrawString("i=1,N,1", this.Font, Brushes.Black, 225, 132);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 131, 99, 19);

g.DrawString("i=1,N,1", this.Font, Brushes.Black, 225, 132);

g.FillRectangle(brush, 201, 161, 99, 29);

g.DrawString("x:=x+h\ns:=s+4f(x)", this.Font, Brushes.Black, 223, 162);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 161, 99, 29);

g.DrawString("x:=x+h\ns:=s+4f(x)", this.Font, Brushes.Black, 223, 162);

x = x + h;

s = s + 4 * fun(x);

g.FillRectangle(brush, 201, 201, 99, 19);

g.DrawString("(i+1)==N", this.Font, Brushes.Black, 223, 202);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 201, 99, 19);

g.DrawString("(i+1)==N", this.Font, Brushes.Black, 223, 202);

if ((i + 1) == n) break;

g.FillRectangle(brush, 131, 231, 99, 29);

g.DrawString("x:=x+h\ns:=s+2f(x)", this.Font, Brushes.Black, 153, 232);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 131, 231, 99, 29);

g.DrawString("x:=x+h\ns:=s+2f(x)", this.Font, Brushes.Black, 153, 232);

x = x + h;

s = s + 2 * fun(x);

};

g.FillRectangle(brush, 271, 231, 99, 39);

g.DrawString("x:=b\ns:=s+f(x)\ns=s*h/3", this.Font, Brushes.Black, 293, 232);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 271, 231, 99, 39);

g.DrawString("x:=b\ns:=s+f(x)\ns=s*h/3", this.Font, Brushes.Black, 293, 232);

x = b;

s = s + fun(x);

s = s * h / 3;

g.FillRectangle(brush, 271, 281, 99, 19);

g.DrawString("вывод s", this.Font, Brushes.Black, 290, 282);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 271, 281, 99, 19);

g.DrawString("вывод s", this.Font, Brushes.Black, 290, 282);

g.FillEllipse(brush, 271, 311, 99, 18);

g.DrawString("конец", this.Font, Brushes.Black, 305, 312);

Thread.Sleep(milSec);

g.FillEllipse(brush2, 271, 311, 99, 18);

g.DrawString("конец", this.Font, Brushes.Black, 305, 312);

return (s);

}

 

private Random rand = new Random();

private double m4(double a, double b, int n)

{

s = 0;

for (int i = 1; i <= n; i++)

{ s = s + fun(rand.NextDouble() * (b - a) + a); };

s = s / n;

return (s);

}

private double m4_gr(double a, double b, int n)

{

System.Drawing.Graphics g = System.Drawing.Graphics.FromHwnd(tabPage4.Handle);

System.Drawing.Brush brush = System.Drawing.Brushes.Red;

System.Drawing.Brush brush2 = System.Drawing.Brushes.White;

int milSec = hScrollBar4.Maximum + 10 - hScrollBar4.Value;

g.FillEllipse(brush, 201, 21, 99, 18);

g.DrawString("начало", this.Font, Brushes.Black, 230, 22);

Thread.Sleep(milSec);

g.FillEllipse(brush2, 201, 21, 99, 18);

g.DrawString("начало", this.Font, Brushes.Black, 230, 22);

g.FillRectangle(brush, 201, 51, 99, 19);

g.DrawString("ввод a,b,N", this.Font, Brushes.Black, 220, 52);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 51, 99, 19);

g.DrawString("ввод a,b,N", this.Font, Brushes.Black, 220, 52);

s = 0;

for (int i = 1; i <= n; i++)

{

g.FillRectangle(brush, 201, 81, 99, 19);

g.DrawString("i=1,N,1", this.Font, Brushes.Black, 223, 82);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 81, 99, 19);

g.DrawString("i=1,N,1", this.Font, Brushes.Black, 223, 82);

 

g.FillRectangle(brush, 201, 111, 99, 19);

g.DrawString("s:=s+f(random())", this.Font, Brushes.Black, 215, 112);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 111, 99, 19);

g.DrawString("s:=s+f(random())", this.Font, Brushes.Black, 215, 112);

s = s + fun(rand.NextDouble() * (b - a) + a);

};

g.FillRectangle(brush, 201, 81, 99, 19);

g.DrawString("i=1,N,1", this.Font, Brushes.Black, 223, 82);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 201, 81, 99, 19);

g.DrawString("i=1,N,1", this.Font, Brushes.Black, 223, 82);

s = s / n;

g.FillRectangle(brush, 311, 81, 99, 19);

g.DrawString("s:=s/N", this.Font, Brushes.Black, 333, 82);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 311, 81, 99, 19);

g.DrawString("s:=s/N", this.Font, Brushes.Black, 333, 82);

 

g.FillRectangle(brush, 311, 111, 99, 19);

g.DrawString("вывод s", this.Font, Brushes.Black, 330, 112);

Thread.Sleep(milSec);

g.FillRectangle(brush2, 311, 111, 99, 19);

g.DrawString("вывод s", this.Font, Brushes.Black, 330, 112);

 

g.FillEllipse(brush, 311, 141, 99, 18);

g.DrawString("конец", this.Font, Brushes.Black, 340, 142);

Thread.Sleep(milSec);

g.FillEllipse(brush2, 311, 141, 99, 18);

g.DrawString("конец", this.Font, Brushes.Black, 340, 142);

return (s);

}

 

private void Form1_Load(object sender, EventArgs e)

{

 

}

 

private void button1_Click (object sender, EventArgs e)

{

System.Drawing.Pen myPen = System.Drawing.Pens.Black;

System.Drawing.Graphics g = System.Drawing.Graphics.FromHwnd(tabPage1.Handle);

g.DrawEllipse(myPen, 200, 20, 100, 20);

g.DrawString("начало", this.Font, Brushes.Black, 230, 22);

g.DrawLine(myPen, 250, 40, 250, 50);

g.DrawRectangle(myPen, 200, 50, 100, 20);

g.DrawString("ввод a,b,N", this.Font, Brushes.Black, 220, 52);

g.DrawLine(myPen, 250, 70, 250, 80);

g.DrawRectangle(myPen, 200, 80, 100, 40);

g.DrawString("h=(b-a)/N\nx:=a;s:=0", this.Font, Brushes.Black, 223, 88);

g.DrawLine(myPen, 250, 120, 250, 130);

g.DrawRectangle(myPen, 200, 130, 100, 20);

g.DrawString("i=1,N,1", this.Font, Brushes.Black, 225, 132);

g.DrawLine(myPen, 250, 150, 250, 160);

g.DrawRectangle(myPen, 200, 160, 100, 30);

g.DrawString("s:=s+f(x)\nx:=x+h", this.Font, Brushes.Black, 223, 162);

g.DrawLine(myPen, 200, 175, 185, 175);

g.DrawLine(myPen, 185, 175, 185, 140);

g.DrawLine(myPen, 200, 140, 185, 140);

g.DrawLine(myPen, 300, 140, 315, 140);

g.DrawRectangle(myPen, 315, 130, 100, 20);

g.DrawString("s:=s*h", this.Font, Brushes.Black, 345, 132);

g.DrawLine(myPen, 365, 150, 365, 160);

g.DrawRectangle(myPen, 315, 160, 100, 20);

g.DrawString("вывод s", this.Font, Brushes.Black, 340, 162);

g.DrawLine(myPen, 365, 180, 365, 190);

g.DrawEllipse(myPen, 315, 190, 100, 20);

g.DrawString("конец", this.Font, Brushes.Black, 345, 192);

 

label1.Text = "";

n = 4;

s = m1_gr(a, b, n);

label1.Text = label1.Text + s + ", N=4" + "\n";

n = 10;

s = m1(a, b, n);

label1.Text = label1.Text + s + ", N=10" + "\n";

n = 50;

s = m1(a, b, n);

label1.Text = label1.Text + s + ", N=50" + "\n";

n = 500;

s = m1(a, b, n);

label1.Text = label1.Text + s + ", N=500" + "\n";

 

 

}

 

private void button2_Click (object sender, EventArgs e)

{

System.Drawing.Pen myPen = System.Drawing.Pens.Black;

System.Drawing.Graphics g = System.Drawing.Graphics.FromHwnd(tabPage2.Handle);

g.DrawEllipse(myPen, 200, 20, 100, 20);

g.DrawString("начало", this.Font, Brushes.Black, 230, 22);

g.DrawLine(myPen, 250, 40, 250, 50);

g.DrawRectangle(myPen, 200, 50, 100, 20);

g.DrawString("ввод a,b,N", this.Font, Brushes.Black, 220, 52);

g.DrawLine(myPen, 250, 70, 250, 80);

g.DrawRectangle(myPen, 200, 80, 100, 40);

g.DrawString("h=(b-a)/N\nx:=a;s:=0\ns:=(f(a)+f(b))/2", this.Font, Brushes.Black, 217, 82);

g.DrawLine(myPen, 250, 120, 250, 130);

g.DrawRectangle(myPen, 200, 130, 100, 20);

g.DrawString("i=1,N,1", this.Font, Brushes.Black, 225, 132);

g.DrawLine(myPen, 250, 150, 250, 160);

g.DrawRectangle(myPen, 200, 160, 100, 30);

g.DrawString("s:=s+f(x)\nx:=x+h", this.Font, Brushes.Black, 223, 162);

g.DrawLine(myPen, 200, 175, 185, 175);

g.DrawLine(myPen, 185, 175, 185, 140);

g.DrawLine(myPen, 200, 140, 185, 140);

g.DrawLine(myPen, 300, 140, 315, 140);

g.DrawRectangle(myPen, 315, 130, 100, 20);

g.DrawString("s:=s*h", this.Font, Brushes.Black, 345, 132);

g.DrawLine(myPen, 365, 150, 365, 160);

g.DrawRectangle(myPen, 315, 160, 100, 20);

g.DrawString("вывод s", this.Font, Brushes.Black, 340, 162);

g.DrawLine(myPen, 365, 180, 365, 190);

g.DrawEllipse(myPen, 315, 190, 100, 20);

g.DrawString("конец", this.Font, Brushes.Black, 345, 192);

label2.Text = "";

n = 4;

s = m2_gr(a, b, n);

label2.Text = label2.Text + s + ", N=4" + "\n";

n = 10;

s = m2(a, b, n);

label2.Text = label2.Text + s + ", N=10" + "\n";

n = 50;

s = m2(a, b, n);

label2.Text = label2.Text + s + ", N=50" + "\n";

n = 500;

s = m2(a, b, n);

label2.Text = label2.Text + s + ", N=500" + "\n";

 

}

 

private void button3_Click (object sender, EventArgs e)

{

System.Drawing.Pen myPen = System.Drawing.Pens.Black;

System.Drawing.Graphics g = System.Drawing.Graphics.FromHwnd(tabPage3.Handle);

g.DrawEllipse(myPen, 200, 20, 100, 20);

g.DrawString("начало", this.Font, Brushes.Black, 230, 22);

g.DrawLine(myPen, 250, 40, 250, 50);

g.DrawRectangle(myPen, 200, 50, 100, 20);

g.DrawString("ввод a,b,N", this.Font, Brushes.Black, 220, 52);

g.DrawLine(myPen, 250, 70, 250, 80);

g.DrawRectangle(myPen, 200, 80, 100, 40);

g.DrawString("h=(b-a)/N\nx:=a;s:=f(a)", this.Font, Brushes.Black, 217, 88);

g.DrawLine(myPen, 250, 120, 250, 130);

g.DrawRectangle(myPen, 200, 130, 100, 20);

g.DrawString("i=1,N,2", this.Font, Brushes.Black, 225, 132);

g.DrawLine(myPen, 250, 150, 250, 160);

g.DrawRectangle(myPen, 200, 160, 100, 30);

g.DrawString("x:=x+h\ns:=s+4f(x)", this.Font, Brushes.Black, 223, 162);

g.DrawLine(myPen, 250, 190, 250, 200);

g.DrawRectangle(myPen, 200, 200, 100, 20);

g.DrawString("(i+1)==N", this.Font, Brushes.Black, 223, 202);

g.DrawLine(myPen, 200, 210, 180, 210);

g.DrawLine(myPen, 180, 210, 180, 230);

g.DrawRectangle(myPen, 130, 230, 100, 30);

g.DrawString("x:=x+h\ns:=s+2f(x)", this.Font, Brushes.Black, 153, 232);

g.DrawLine(myPen, 130, 245, 125, 245);

g.DrawLine(myPen, 125, 245, 125, 140);

g.DrawLine(myPen, 125, 140, 200, 140);

g.DrawLine(myPen, 300, 140, 320, 140);

g.DrawLine(myPen, 300, 210, 320, 210);

g.DrawLine(myPen, 320, 140, 320, 230);

g.DrawRectangle(myPen, 270, 230, 100, 40);

g.DrawString("x:=b\ns:=s+f(x)\ns=s*h/3", this.Font, Brushes.Black, 293, 232);

g.DrawLine(myPen, 320, 270, 320, 280);

g.DrawRectangle(myPen, 270, 280, 100, 20);

g.DrawString("вывод s", this.Font, Brushes.Black, 290, 282);

g.DrawLine(myPen, 320, 300, 320, 310);

g.DrawEllipse(myPen, 270, 310, 100, 20);

g.DrawString("конец", this.Font, Brushes.Black, 305, 312);

label3.Text = "";

n = 4;

s = m3_gr(a, b, n);

label3.Text = label3.Text + s + ", N=4" + "\n";

n = 10;

s = m3(a, b, n);

label3.Text = label3.Text + s + ", N=10" + "\n";

n = 50;

s = m3(a, b, n);

label3.Text = label3.Text + s + ", N=50" + "\n";

n = 500;

s = m3(a, b, n);

label3.Text = label3.Text + s + ", N=500" + "\n";

 

 

}

 

private void button4_Click (object sender, EventArgs e)

{

System.Drawing.Pen myPen = System.Drawing.Pens.Black;

System.Drawing.Graphics g = System.Drawing.Graphics.FromHwnd(tabPage4.Handle);

g.DrawEllipse(myPen, 200, 20, 100, 20);

g.DrawString("начало", this.Font, Brushes.Black, 230, 22);

g.DrawLine(myPen, 250, 40, 250, 50);

g.DrawRectangle(myPen, 200, 50, 100, 20);

g.DrawString("ввод a,b,N", this.Font, Brushes.Black, 220, 52);

g.DrawLine(myPen, 250, 70, 250, 80);

g.DrawRectangle(myPen, 200, 80, 100, 20);

g.DrawString("i=1,N,1", this.Font, Brushes.Black, 223, 82);

g.DrawLine(myPen, 250, 100, 250, 110);

g.DrawRectangle(myPen, 200, 110, 100, 20);

g.DrawString("s:=s+f(random())", this.Font, Brushes.Black, 215, 112);

g.DrawLine(myPen, 200, 120, 180, 120);

g.DrawLine(myPen, 200, 90, 180, 90);

g.DrawLine(myPen, 180, 90, 180, 120);

g.DrawLine(myPen, 300, 90, 310, 90);

g.DrawRectangle(myPen, 310, 80, 100, 20);

g.DrawString("s:=s/N", this.Font, Brushes.Black, 333, 82);

g.DrawLine(myPen, 360, 100, 360, 110);

g.DrawRectangle(myPen, 310, 110, 100, 20);

g.DrawString("вывод s", this.Font, Brushes.Black, 330, 112);

g.DrawLine(myPen, 360, 130, 360, 140);

g.DrawEllipse(myPen, 310, 140, 100, 20);

g.DrawString("конец", this.Font, Brushes.Black, 340, 142);

 

label4.Text = "";

n = 4;

s = m4_gr(a, b, n);

label4.Text = label4.Text + s + ", N=4" + "\n";

n = 10;

s = m4(a, b, n);

label4.Text = label4.Text + s + ", N=10" + "\n";

n = 50;

s = m4(a, b, n);

label4.Text = label4.Text + s + ", N=50" + "\n";

n = 500;

s = m4(a, b, n);

label4.Text = label4.Text + s + ", N=500" + "\n";

 

}

 

private void tabPage1_Click(object sender, EventArgs e)

{

 

}

 

 

}

}

 

Заключение

 

В ходе выполнения данной лабораторной работы были изучены 4 метода численного интегрирования. Было создано приложение, демонстрирующее изученные методы на примере конкретной функции.

 


1 | 2 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.061 сек.)