Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.20;
Скачать: [xml.tar.bz2];

Вниз

Помогите!!! Надо посчитать интеграл!!! Диплом горит!!!   Найти похожие ветки 

 
Phil   (2002-05-05 10:43) [0]

Кто-нибудь!!!
Вдруг у кого-нибудь есть компоненты или библиотеки или исходники или хотя-бы ссылки на них для того, что бы заставить прогу считать интеграл? Поделитесь, плиз. Буду очень рад. Надо срочно, горит диплом!!!!
Заранее благодарен.


 
Nikolay M.   (2002-05-06 14:24) [1]

посмотри http://alglib.chat.ru/, может накопаешь чего полезного...

а функция задана в программе? если есть что вроде
function F(x : double) : double;
то почему не попробовать обычным методом трапеций, уменьшая с каждым разом шаг разбиения отрезка, пока не достигнется нужная точность? уж для диплома-то такое точно должно пройти :)


 
olookin   (2002-05-06 18:35) [2]

procedure AreasCalculation(DataArray: TDoubleArray);
//TDoubleArray = array of double
var i,j,N,nn: integer;
alsq,subv: double;
sqval: double;
begin
nn:=Length(DataArray);
//если выровнять по нулю
if GroupFiles.CheckBox3.Checked then
subv:=(DataArray[nn-1]+DataArray[0])/2 else subv:=0; alsq:=0;
for i:=0 to nn-2 do begin
//метод трапеций без остаточного члена
if TypeMethod=1 then alsq:=alsq+Abs(DataArray[i]-subv)+
(Abs(DataArray[i+1]-subv)-Abs(DataArray[i]-subv))/2;
//метод трапеций с остаточным членом
if TypeMethod=2 then alsq:=alsq+Abs(DataArray[i][0]-subv)+
(Abs(DataArray[i+1]-subv)-
Abs(DataArray[i]-subv))/2-1/(48*Power(0.5,1.5));
//метод квадратов без остаточного члена
if TypeMethod=3 then if (i mod 2)=1 then alsq:=
alsq+2*Abs(DataArray[i]-subv);
//метод квадратов с остаточным членом
if TypeMethod=4 then if (i mod 2)=1 then alsq:=
alsq+2*Abs(DataArray[i]-subv)-1/(96*Power(0.5,1.5)); end;
sqval:=alsq;
end;


 
poisn   (2002-05-07 05:38) [3]

program Poisn;
{$APPTYPE CONSOLE}
uses
SysUtils;

var s:array[0..3,0..2] of array of extended;
n,x,y,t,i,j,it:integer;st:array[0..2]of string;
function f(n:integer;x:extended):extended;
begin
st[0]:="F(x)=2*x+1";
st[1]:="F(x)=x*x+8*x-7";
st[2]:="F(x)=x*x*x-4*x*x+1";
case n of
0:begin result:=2*x+1; end;
1:begin result:=x*x+8*x-7; end;
2:begin result:=x*x*x-4*x*x+1;end;
end;
end;
procedure finds(t,n:integer;l,r,e:extended);
var i,j,max:integer;
a,h:extended;
begin
i:=-1;
h:=(r-l);
repeat
i:=i+1;
setlength(s[t,n],100{i+1});
j:=0;
h:=h/2;
repeat
a:=l+h*j;
case t of
0: s[t,n][i]:=abs(h*f(n,a))+s[t,n][i];
1,3:begin
s[t,n][i]:=abs(h*(f(n,a)+f(n,a-h))/2)+s[t,n][i];
end;
2: begin
if (j=0) or ((l+h*j)>=r-h )then s[t,n][i]:=abs(h/3*f(n,a))+s[t,n][i] else
case j mod 2 of
0:s[t,n][i]:=abs(2*h/3*f(n,a))+s[t,n][i];
1:s[t,n][i]:=abs(4*h/3*f(n,a))+s[t,n][i];
end;
end;
end;
j:=j+1;
until (l+h*j)>=r;
if (t=3) and (i>1) then
begin
s[t,n][i-1]:=s[t,n][i]+(s[t,n][i]-s[t,n][i-1])/(1/4-1)
end;
until (abs(s[t,n][i]-s[t,n][i-1])<=e)and(i>=1);
s[t,n][i]:=-s[t,n][i];
end;
begin
f(0,0);
for j:=0 to 2 do
begin
writeln("loading ...");
for i:=0 to 3 do
begin
finds(i,j,1,4,0.001);
end;
for it:=0 to 24 do
writeln;
writeln(st[j]);
writeln;
writeln("metod: Primoug Trap Richerd Simps");
it:=0;
repeat
inc(it);
if (s[0,j][it]=0) and (s[1,j][it]=0) AND (s[2,j][it]=0) AND(s[3,j][it]=0) then break;
writeln("iter:",it:2," dx: ",(1/2/it):1:3," S: ",abs(s[0,j][it]):4:4," ",abs(s[1,j][it]):4:4," ",abs(s[3,j][it]):4:4," ",abs(s[2,j][it]):4:4);
until 1=2;
writeln;
writeln("please press Enrer");
readln;
end;

end.

Хех а здесь тебе еще 2 новых :)
Все 4 основаны на методе итерации путем уменьшения радиуса разбиения отрезка функции до тех пор пока площадь двух последовательных вычислении не будет < некоторой точности E( 0.001 в примере - это 5 входящии параметр finds )


 
poisn   (2002-05-07 05:40) [4]

да забыл сказать, что если тебе надо искать неопределенные интегралы, то ты пОпАл :)


 
Phil   (2002-05-07 20:27) [5]

Сам знаю, что пОпАл.
А что делать? Кому сейчас легко? Ладно, буду извращаться дальше. А так надеялся....
:-(((((


 
Andrey007   (2002-05-08 10:02) [6]

Ну, по-моему, для взятия неопределённого интеграла надо задать набор интегрируемых функций, интегралов для них, общие правила интегрирования, написать преобразование подинтегральной функции в набор функций из стандартного набора и, наверное, всё. Ну и интерфейс, естественно.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.05.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.006 c
1-64663
Демон
2002-05-04 17:42
2002.05.20
Как отключить кнопку Windows?!?!?!?


3-64528
Vasilii
2002-04-22 15:44
2002.05.20
проблемы с IBEvents?


3-64478
weak
2002-04-22 16:20
2002.05.20
Как сделать не главную форму MDI-формой?


14-64799
Vovik
2002-04-10 15:37
2002.05.20
народ, помогите с ISQ


1-64699
mike.dld
2002-05-06 14:20
2002.05.20
Delphi 3





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский