Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Интеграл Добавлено: 25.09.06 18:27  

Автор вопроса:  DJ EFFECT
Составить программу для вычисления определенного интеграла методом прямоугольников, трапеции и методом Симпсона...

интеграл (exp(x)*(1+sin(x)))/(1+cos(x)) [0, 1.5]

Ответить

  Ответы Всего ответов: 14  

Номер ответа: 1
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #1
Добавлено: 26.09.06 02:07
print (exp(x)*(1+sin(x)))/(1+cos(x)) [0, 1.5]


результат
4.1751256724969823525

Ответить

Номер ответа: 2
Автор ответа:
 Viper



ICQ: 249094859 

Вопросов: 0
Ответов: 310
 Профиль | | #2 Добавлено: 26.09.06 10:22
Интересно как соотносится ответ с вопросом?
И что подразумевает вопрос? Что надо бы сделать прогу за ... скоко то чего? Или как то помочь? Если второе, то какие были предприняты усилия?

Ответить

Номер ответа: 3
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #3
Добавлено: 26.09.06 14:31
Viper

Все вместе.

Ответить

Номер ответа: 4
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #4
Добавлено: 26.09.06 14:51
результат
4.1751256724969823525
В MathCAD'е посчитал?

Ответить

Номер ответа: 5
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #5
Добавлено: 26.09.06 15:28
 -АлександР-
Ну не прогу же писал.:)

Ответить

Номер ответа: 6
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #6
Добавлено: 26.09.06 23:08
Я вот как раз недавно сделал чтобы домашку проверять:


Option Explicit
Const Infinity = 3000000
Dim n As Long
Dim i As Long
Dim Area As Double
Dim b As Double
Dim a As Double
Dim DeltaX As Double
Const pi As Double = 3.14159265358979

Function F(x As Double) As Double
F = (Exp(x) * (1 + Sin(x))) / (1 + Cos(x))
End Function

Private Sub Form_Load()
Show

'AREA
n = Infinity
a = 0
b = 1.5
DeltaX = (b - a) / n
Area = 0

pb.Min = 1
pb.Max = n + 1
pb.Value = 1

For i = 1 To n

Area = Area + F(a + i * DeltaX) * DeltaX
If i Mod 50000 = 0 Then
    pb.Value = i
    DoEvents
End If

Next i

MsgBox Round(Area, 4)
End Sub




Выдаёт 4.1751

Ответить

Номер ответа: 7
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #7
Добавлено: 26.09.06 23:37
Теперь я уже ничего не понимаю.:)

Morpheus пишет прогу чтобы домашку проверять.
А кто -то домашнее задание не делает.:)
//-----
Кстати Morpheus, а не проще домашку в MathCAD'е проверять?

Ответить

Номер ответа: 8
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #8
Добавлено: 27.09.06 00:14
а нафик... я ж не юзер... да и нету маткада.. а, есть и маткад и автокад тока чёто ставить влом

Ответить

Номер ответа: 9
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #9
Добавлено: 27.09.06 00:23
а нафик...

А завтра по линейной алгебре домашка будет?

я ж не юзер...

А кто????? :)

есть и маткад и автокад тока чёто ставить влом


Хм...:)

Ответить

Номер ответа: 10
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #10
Добавлено: 27.09.06 01:41
я ж не юзер...

ламер :)

А завтра по линейной алгебре домашка будет?

пересяду на паскаль в делфях да и всё

Ответить

Номер ответа: 11
Автор ответа:
 DJ EFFECT



Вопросов: 10
Ответов: 18
 Профиль | | #11 Добавлено: 27.09.06 21:12
ДА, вроде сам сделал.Кому интересно, выкладываю на Паскале
program integeral;
uses crt;
const a=0;b=1.5;
var
  eps,r,r2:real;  { Предыдущее и текущее приближенные значения интеграла}
  n:integer;

function f(x:real):real;
begin
  f:=(exp(x)*(1+sin(x))/(1+cos(x)));
end;
{------------------------------------------------------------------------------}
{ Метод трапеций }
function trap(a,b:real;n:integer):real;
var
  s:real;
  h:real;
  i:integer;
begin
  h:=(b-a)/(n-1);
  s:=(f(a)+f(b))/2;                 { Начальное значение суммы }
  for i:=1 to n-2 do
   s:=s+f(a+i*h); { Суммиование остальных элементов}
  trap:=s*h;
end;
{------------------------------------------------------------------------------}
{ Метод Симпсона }
function simpson(a,b:real;n:integer):real;
var
  s:real;
  dx:real;
  i:integer;
  mn:integer;  { Очередной множитель }
begin
  dx:=(b-a)/(n-1);
  s:=f(a)+f(b);                     { Начальное значение шага }
  mn:=4;                            { Первый мнодитель - 4 }
{ Суммирование остальных элементов }
  for i:=1 to n-2 do begin
    s:=s+mn*f(a+dx*i);
    if (mn=4) then mn:=2 else mn:=4;{ Именение мноителя 2<>4 }
  end;
  simpson:=s*dx/3;
end;
{------------------------------------------------------------------------------}
function lev(a,b:real;n:integer):real;
var
  s,x:real;
  dx:real;
  xb:real;
  i:integer;
 begin
 dx:=(b-a)/n; s:=0; xb:=a;
   for i:=1 to n do
     begin
       x:=xb+i*dx;
       s:=s+f(x)*dx;
     end;
  lev:=s;
 end;

{------------------------------------------------------------------------------}
function sred(a,b:real;n:integer):real;
var
  s,x:real;
  dx:real;
  xb:real;
  i:integer;
 begin
 dx:=(b-a)/n; s:=0;
 xb:=a+dx/2;
 for i:=0 to n-1 do
  begin
    x:=xb+i*dx;
    s:=s+f(x)*dx;
  end;
  sred:=s;
 end;
 {------------------------------------------------------------------------------}
function prav(a,b:real;n:integer):real;
var
  s,x:real;
  dx:real;
  xb:real;
  i:integer;
 begin
dx:=(b-a)/n; s:=0; xb:=b;
   for i:=1 to n do
     begin
       x:=xb-i*dx;
       s:=s+f(x)*dx;
     end;
  prav:=s;
 end;
{------------------------------------------------------------------------------}

{ Основная программа }
begin
clrscr;
write('Vvedite to4nost eps > 0: ');readln(eps);
{ Вычисляется интеграл по методу трапеций }
  n:=10;
  r:=trap(a,b,n);
  repeat
    r2:=r;
    n:=n+2;
    r:=trap(a,b,n);
  until (abs(r-r2)<eps);
writeln(' Резльтат по методу трапеций равен: ',r:6:5);
writeln(' для получения необходимой точности интервал был разбит на');
writeln(n,' отрезков');
{------------------------------------------------------------------------------}

{ Вычисляется интеграл по методу Симпсона }
  n:=10;
  r:=simpson(a,b,n);
  repeat
    r2:=r;
    n:=n+2;
    r:=simpson(a,b,n);
until (abs(r-r2)<eps);
  writeln;
  writeln(' Резльтат по методу Симпсона равен: ',r:6:5);
  writeln(' для получения необходимой точности интервал был разбит на ');
  writeln(n,' отрезков');

{------------------------------------------------------------------------------}

{ Вычисляется интеграл по методу левых прямоугольников }
  n:=10;
  r:=lev(a,b,n);
  repeat
    r2:=r;
    n:=n+2;
    r:=lev(a,b,n);
until (abs(r-r2)<eps);
  writeln;
  writeln(' Резльтат по методу левых прямоугольников равен: ',r:6:5);
  writeln(' для получения необходимой точности интервал был разбит на ');
  writeln(n,' отрезков');
{------------------------------------------------------------------------------}

{ Вычисляется интеграл по методу средних прямоугольников }
  n:=10;
  r:=sred(a,b,n);
  repeat
    r2:=r;
    n:=n+2;
    r:=sred(a,b,n);
until (abs(r-r2)<eps);
  writeln;
  writeln(' Резльтат по методу средних прямоугольников равен: ',r:6:5);
  writeln(' для получения необходимой точности интервал был разбит на ');
  writeln(n,' отрезков');
  
{------------------------------------------------------------------------------}

{ Вычисляется интеграл по методу правых прямоугольников }
  n:=10;
  r:=prav(a,b,n);
  repeat
    r2:=r;
    n:=n+2;
    r:=prav(a,b,n);
until (abs(r-r2)<eps);
  writeln;
  writeln(' Резльтат по методу правых прямоугольников равен: ',r:6:5);
  writeln(' для получения необходимой точности интервал был разбит на ');
  writeln(n,' отрезков');
end.

Ответить

Номер ответа: 12
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #12
Добавлено: 28.09.06 00:11
DJ EFFECT

Вот это другое дело.
Так держать!

Ответить

Номер ответа: 13
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #13
Добавлено: 29.09.06 00:37
[sorry]
vito, тебе бы медаь за флуд, имхо :)
[/sorry]

Ответить

Номер ответа: 14
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #14
Добавлено: 29.09.06 01:44
sne

Иногда и пофлудить охота.
Хотя как ты заметил, я особо этим не отличаюсь.:)
//----------
А вообще говоря это не флуд. Сделал же сам? Отлично сделал? Ну и какой же это флуд?
Я если бы я просто код выложил... Толку?
Еще 10 подобных постов появилось - решите за меня?

Впрочем я не откажусь от медали.:) Только это Павел или UU решат.


Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам