| Autor |
Wiadomość |
designer ~user
Dołączył: 12 Mar 2010 Posty: 1
|
|
Witam ! mam taki problem z wyżej wymienionym tematem... Dopiero uczę się programować to nie wiem czy dobrze napisałem kod, czy w ogóle o to chodziło ? Bo mam zrobić coś takiego żeby w jakimś tam przedziale np <1,3> szukać pierwiastka. Proszę o pomoc. Z góry dzięki!!!
| c: |
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define wspolczynnik 1
#define przedzial 2
#define licz 3
#define wyjscie 4
double f (double x ){ // funkcja x^2 - x -3
return x*x - x - 3;
}
double fp (double x ){ // pochodna funkcji x^2 - x - 3
return 2*x - 1;
}
int main (int argc, char *argv [])
{
int opcja= 0,h;
double a=- 3, b= 3,p0= 3, p1,k;
const double EPS = 0. 000001;
while (opcja != 4){
printf("++++++++++METODA NEWTONA (STYCZNYCH)++++++++++\n");
printf("++ I.Funkcja startowa: x^2 - x -3 \n");
printf("++ II.Pochodna funkcji: 2*x - 1 \n");
printf("++ III.Przedzial: <%lg,%lg> \n", a,b );
printf("++ IV.Wspolczynnik wynosi = %lg \n", p0 );
printf("++ V.Przyblizenie epsilon = %lg \n", EPS );
printf("++ \n");
printf("++ \n");
printf("++++++++++++++++++++++++++++++++++++++++++++++\n\n");
printf("Wybierz opcje, ktora chcesz wykonac!\n");
printf(" 1: Podaj wspolczynnik\n");
printf(" 2: Podaj przedzial, w ktorym ma byc liczony pierwiastek\n");
printf(" 3: Licz pierwiastek\n");
printf(" 4: Wyjscie\n\n");
scanf ("%d", &opcja );
switch (opcja ){
case wspolczynnik: {
printf("Podaj wspolczynnik x: ");
scanf ("%lg", &p0 );
printf("\n\n\n\n");
};break;
case przedzial: {
printf("Podaj poczatek przedzialu 'a' i koniec przedzialu 'b'\n");
scanf ("%lg%lg", &a, &b );
system ("cls");
};break;
case licz: {
do{
p1 = p0 - (f (p0 )/fp (p0 ));
p0 = p1;
k++;
printf("Przyblizenie wynosi = %.6lf\n\n", p1 );
}while (p1 < EPS );
if (p1>a && p1<b ){
p0 = p1;
printf("Przyblizenie p1 = %.6lf nalezy do przedzialu <%lg,%lg>!\n\n", p1,a,b );
}else{
printf("Przyblizenie p1 = %.6lf nie nalezy do przedzialu <%lg,%lg>!\n\n", p1,a,b );
}
};break;
case wyjscie: {
exit (0);
};break;
}
}
system ("PAUSE");
return 0;
}
|
Aha i jeszcze szukałem na tym forum metody Newtona i znalazłem tylko metodę bisekcji, a chodzi o METODE NEWTONA (STYCZNYCH) ! To tak jak by co 
|
|
| Powrót do góry |
|
|
kortyg ~user
Dołączył: 12 Lut 2010 Posty: 9
Pomógł: 2
|
|
Wpisz w Google metoda newtona siecznych.
| Cytat: |
p1 = p0 - (f(p0)/fp(p0));
|
w mianowniku powinna być pochodna fcji fp
|
|
| Powrót do góry |
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
MapaPowered by phpBB © 2001, 2005 phpBB Group
|
|