Obliczanie calki roznych funkcji...

0

Witam, czy molgby mi ktos pomoc w jaki sposob mam pobrac funkcje (np xx+2x+1) kwadratowa, albo np x+1 DO CALKOWANIA, zeby nie byla zadana na sztywno w kodzie tylko mozna ją mogł kazdy sobie napisac i scałkowac, z jakiego komponentu skorzystac ?

Za wszelkie sugestie bede wdzieczny do konca zycia :)

0

Zaraz zaraz.. funkcja ma zwracać wartość typu string postaci wzoru analitycznego jako całka nieoznaczona, czy też konkretną wartość całki oznaczonej o zadanych przedziałach typu Integer. Myślę, że drugą opcję łatwo byłoby napisać, nie koniecznie obliczając samą całkę...

0

Dokładnie. Pierwszy wariant jest co najmniej trudny do zrealizowania..

Drugi wymaga tylko poczytania trochę o ONP (odwrotna notacja polska) i drzewach oraz znajomości przybliżonego całkowania na przykład trapezami.

0

Myslę, że pierwszy jest nawet wręcz niemożliwy do zrealizowania, gdyż całkowanie nie jest "ściśle okreslone" to znaczy - nie jest podany jawny jeden wzór z którego trzeba korzystać a dobrana metoda nie zawsze może dojść do rozwiązania. No chyba, że kolega się ograniczy do całkowania wielomianu n-tego stopnia, to wtedy może da się coś zdziałać ale wymagałoby to dość skomplikowanych operacji na łańcuchach.

0

Wiec, opisze ten problem dokladniej.
Mam program ktory liczy całke z funkcji podanej w kodzie zrodlowym, liczy ją 2 metodami : met. trapezów i met. simpsona, wszystko działa, tylko teraz trzeba zrobic taki bajer zeby kazdy kto uruchomi ten program mogl sobie wpisac funkcje (np x2+2x+1, albo 2x+3, albo x2) do jakiegos komponetu (nie wiem jakiego - EDIT ) a program pobierze tą wpisana przez uzytkownika funkcje i policzy całke, cały problem jest w tym jak pobrac tą funkcje i z czego.

0

To już są podstawy .. sprawdź sobie w tym swoim kodzie gdzie jest podany wzór funkcji ... zamiast niego użyj zmienną jakąś typu string, którą weź z Edita .. to wszystko..

0

dalej nie wiem co robic (tempy jestem) oto kawałki kodu:

[code]
function f(x:real):real;
begin
f:=xx+2x+1;
end;

procedure simson(a,b,n:real; var s2:real);
var
h,x1,x2
h:=(b-a)/n;
s2:=0;
x1:=a;
x2:=x1+h;
repeat
s1:=h*(f(x1)+4*f((x1+x2)/2)+f(x2))/6;
s2:=s2+s1;
x1:=x2;
x2:=x1+h;
until
x2>b;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
a,b,n,s2:real;
begin
a:=strtofloat(edit1.text);
b:=strtofloat(edit2.text);
n:=strtofloat(edit3.text);
simson(a,b,n,s2);
edit5.text:=floattostr(s2);
end;
[/code]

a to jest dolna granica, b gorna granic, n to krok, jak to pozmieniac ?

0

To już są podstawy .. sprawdź sobie w tym swoim kodzie gdzie jest podany wzór funkcji ... zamiast niego użyj zmienną jakąś typu string, którą weź z Edita .. to wszystko..

Wybacz, ale co piłeś? Przeczytaj to co napisałeś jeszcze raz i się wstydź.

Ja za to jeszcze raz powtórzę: przyda się znajomość rozbijania wyrażeń przy pomocy ONP (jest to bardzo proste, wystarczy w googlach odwrotna notacja polska wpisać i voila).

[ dopisane ]
ale i tak się wstydź..

0

<font color="green">To już są podstawy .. sprawdź sobie w tym swoim kodzie gdzie jest podany wzór funkcji ... zamiast niego użyj zmienną jakąś typu string, którą weź z Edita .. to wszystko..

Wybacz, ale co piłeś? Przeczytaj to co napisałeś jeszcze raz i się wstydź.

Ja za to jeszcze raz powtórzę: przyda się znajomość rozbijania wyrażeń przy pomocy ONP (jest to bardzo proste, wystarczy w googlach odwrotna notacja polska wpisać i voila).</span>

Myślałem, że autor ma już gotową funkcję rozbicia jak kto tam woli i o0bliczania dla swojego typu funkcji .. tyle tylko, że na przykładzie.. ale jak widać nie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1