30-08-2006, 16:37
|
|
|
|
חבר מתאריך: 15.08.06
הודעות: 465
|
|
זה אשכול שני שאתה פותח באותו נושא. כתבתי לך כבר...אני אכתוב שוב.
הנוסחא שכתבת היא נוסחאת Hero's, מקרה פרטי של נוסחאת Newton במקרה ש d=2 ו A_1 = x לחישוב מקורב לשורש.
קוד:
A_n+1 = ((d-1)*A_n+x/(A_n^(d-1)))/d
קל להוכיח אותה, אם תרצה אני אצרף פה את ההוכחה.
כתבתי לך תוכנית, הנה:
קוד:
#include <stdio.h>
#include <conio.h>
float ShoreshRibuy(float A, float E){
float ROOT=A, Memlock, Accuracy=E;
do {
Memlock=ROOT;
ROOT = (ROOT*ROOT+A)/(2*ROOT);
}while ((Memlock-ROOT>Accuracy) || (Memlock-ROOT<-1*Accuracy));
return ROOT;
}
int main(){
float num;
printf("Enter a freaking number to root: ");
scanf("%f", &num);
printf("\n %f",ShoreshRibuy(num,0.001));
getch();
}
_____________________________________
Any sufficiently advanced bug is indistinguishable from a feature
|