formula bilan hisoblanadi. Bu yerda n yaqinlashishlar tartib soni, xn – ildizga n – yaqinlashish. Boshlang’ich, ya’ni nolinchi yaqinlashish f(a) f’"(a)>0 shartni bajaradigan qilib olinadi. Agar shart bajarilsa x0=a, aksincha x0=b qilib olinadi. Urinmalar usuli bilan tenglama ildizlarini aniqlash ikki bosqichda amalga oshiriladi. Birinchi bosqichda x0 tanlab olinadi. Buning uchun f(x) funksiyaning ikkinchi tartibli hosilasi topiladi va uning x=a nuqtadagi qiymati hisoblanadi hamda yuqoridagi shartga asosan x0 tanlab olinadi. Ikkinchi bosqichda f(x), f(x) qiymatlarini hisoblash uchun funksiyalar tuziladi, x0, qiymatlari EHMga kiritiladi va dastur yordamida hisoblashlar bajariladi. #include - #include
- #include
- using namespace std;
- float fnf(float x){
- return exp(x)-10*x-2;
- }
- float fna(float x){
- return exp(x)-10;
- }
- float fnb(float x){
- return exp(x);
- }
- int main(){
- float a,b,h,eps,x1,x2,x; int i;
- cout<<"Ildiz yotgan kesma [a,b]"<
- cout<<"a="; cin>>a;
- cout<<"b="; cin>>b;
- cout<<"h="; cin>>h;
i=1;eps=0.001; x1=a; - i=1;eps=0.001; x1=a;
- L1: x2=x1+h;
- x=x1; a=x2;
- if(x2>b) goto L4;
- if(fnf(x1)*fnf(x2)>0) goto L3;
- if(fnf(x1)*fnb(x1)>0) goto L2;
- x=x2; a=x1;
- L2: x=x-fnf(x)*(a-x)/(fnf(a)-fnf(x));
- if (fabs(fnf(x))>eps) goto L2;
- cout.precision(4);
- cout<Download 1.92 Mb.
Do'stlaringiz bilan baham: |