TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
pomoc w c (c++) , mel2 5/01/04 14:36 sluchajcie mistrzowie - kolezanka dostala takie zadanie:
napisac program znajdujacy z dokladnoscia 0,00000001 rozwiązanie rowniania:
8,4^x=x^77+6,7^8,5
Pomoze ktos ?Don't lose your head,
There can be only one. - Chyba nie trudne , maciusk 5/01/04 14:51
Czy program ma używać jak najoptymalniejszej metody, czy mam poprostu działać?
Proponuję przejrzeć jakąś książke z metod numerycznych, a jeśli nie masz takich to daj znać, może znajdę troszkę czasu i coś wykombinuję, pisałem kiedyś takie programiki tyle, że w pascalu.MSI 683dx - chyba ma poprostu dzialac , mel2 5/01/04 15:01
ja tam z c (c++) nic nie wiem praktycznie - wiec dlatego prosze o pomocDon't lose your head,
There can be only one. - co to znaczy , bor@s 5/01/04 18:31
najoptymalniejsza metoda?- boras , h-doc 5/01/04 18:35
Zapytaj w Chipie - oni bez przerwy używają określeń w stylu "najoptymalniejszy" lub "najbardziej optymalny" ;-)))
Kiedyś chciałem ich nawet za to zbluzgać, ale dałem sobie spokój...
- hmmm , h-doc 5/01/04 18:33
wygląda mi to na na krzywą będącą wypadkową eksponenty i paraboli. W takim przypadku są dwa rozwiązania. Ponieważ jest to równanie nieliniowe trzeba rozwiązań poszukiwać metodami iteracyjnymi. Jest to stosunkowo proste:
1. zadajesz punkt początkowy (seed)
2. posuwasz się o jeden krok w lewo i o jeden w prawo i sprawdzasz który jest bliżej zera
3. podążasz w wybranym kierunku aż do osiągnięcia wartości 0
Cały proces powtarzasz aż do uzyskanaia kompletu rozwiązań (kolejne rozwiązania otrzymujesz w zależności od doboru punktu startowego). Krok dopasowujesz w zależności od wymaganej prędkości działania i pożądanej dokładności wyniku. Możesz stosować adaptację kroku w celu zoptymalizowania działania programu.
Operować tu bęziesz na dość dużych liczbach, więc 64-bitowy typ zmiennoprzecinkowy będzie tu mile widziany.- hmmmm , mel2 5/01/04 18:36
bardzo ladnie mi to wytlumaczyles - tylko jak napisalem nie znam tych jezykow (jakby byl basic to moze bym cos wymyslil :)) - wiec jakbys to w instrukcje ubral to bylbym jeszcze bardziej wdzieczny :).
Dlugi taki program mialby byc?
Bo jak dlugi to chyba rzeczywiscie o za duzo prosze.Don't lose your head,
There can be only one. - wiesz co, , h-doc 5/01/04 18:45
Robiłem kiedyś coś takiego na laborce ale to było chyba w pascalu napisane. Zaraz poszukam i ewentualnie podrzucę.- dzieki - dobry i pascal , mel2 5/01/04 18:48
moze se bedzie umiala przekonwertowac - chyba zeby nie :(Don't lose your head,
There can be only one.
- no dobra, rzucam progsem , h-doc 5/01/04 18:49
przy okazji przypomniałem sobie, że są 4 metody (to znaczy do 4 metod mam programy) - polowienia przedziału, regula-falsi, stycznych i siecznych. Prezentowany program to najprostsza metoda - połowienia. Niestety - Turbo Pascal.
Powodzenia przy tłumaczeniu na C!
program polowienie;
{$N+}
{
Program POLOWIENIE sluzy do odnajdywania pierwiastkow rownania nieliniowego
metoda polowienia przedzialu. Funkcja zadeklarowana jest w funcji
f(x:real):real. Glowna procedura programu oblicz(a,b:real) jest procedura
rekurencyjna.
Program powstal w sobotni poranek 31 X 1998.
Copyright by Michal Wilczak
}
uses crt;
type real=extended;
const
z1=12; { liczba wyswietlanych cyfr }
z2=10; { liczba cyfr po przecinku }
delta=0.0001; { dokladnosc poszukiwan }
var
a,b : real; { poczatkowy przedzial poszukiwan }
q : integer; { numer iteracji }
function f(x:real):real;
begin f:=6.98*sqr(x)+3.55*x-1.34444 end;
procedure wyswietl(pierwiastek,wartosc:real;iteracja:integer);
begin
writeln;writeln;
writeln('Iteracja numer ',iteracja);
writeln('Pierwiastek ',pierwiastek:z1:z2);
writeln('Wartosc f(pierwiastek) ',wartosc:z1:z2);
if abs(wartosc)<=delta then writeln('BLAD < DELTA ');
readln;
end;
procedure oblicz(a,b:real);
var
x : real;
begin
inc(q);
x:=(a+b)/2;
wyswietl(x,f(x),q);
if f(a)*f(x)<0 then oblicz(a,x) else oblicz(x,b)
end;
begin
clrscr;
q:=0;
a:=-10;
b:=10;
oblicz(a,b)
end.- dzieki , mel2 5/01/04 19:07
pomoze ktos dalej?Don't lose your head,
There can be only one.
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|