Главная страница
    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-64596
Феликс
2002-05-07 18:09
2002.05.20
Как прочитать из реестра все парметры?


14-64800
perov
2002-04-10 13:57
2002.05.20
что случилось с сайтом www.delphiplus.org?


1-64654
Soo
2002-05-02 16:46
2002.05.20
Перемещение текста в отдельном контейнере


3-64549
ao1973
2002-04-23 21:25
2002.05.20
BDE не хочет юзать MSACESS


1-64622
tovSuhov
2002-05-08 10:46
2002.05.20
ProcessMessages





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский