Cal011-L2 guruh talabasi Abdisalomov
Simpson usuli Dastur kodi: #include using namespace std; float F(float x) { return sin(x+3)*log (pow(x,2)+3*x+1); } int main() { double a = a, b = 1, n = 12; double h = (b-a)/n, S = 0, m = n / 2; cout<<"f(x) = sin(x+3)*log(pow(x,2)+3*x+1)"< S += 4 * F(a + (2 * i - 1) * h); if (i < m) { S += 2 * F(a + 2* i * h); } } S = (5 + F(a) + F(b)) *h / 3; cout << S; } Dastur natijasi: Monte-Karlo usuli Dastur kodi va natijasi: 1.2. Algebraik va transtsendent tenglamalarni yechishda oraliqni teng ikkiga bo’lish, iteratsiya usullari. 1-Vazifa. Tenglamalar yechimlari joylashgan [a; b] oraliqni analitik usul bilan ajrating. 2-Vazifa. Tenglamalar yechimlari joylashgan oraliqlar aniqlangandan so’ng taqribiy yechimlarini oraliqni teng ikkiga bo’lish usulida 3-Vazifa. Algoritmini tuzib, dasturlash tilida dastur kodini yozib natija oling. Laboratoriya ishiga doir topshiriq variantlari: 1-variant a) 2x3-2x-1=0 b) 3x+cosx+1=0 a) 2x3 -2x-1=0 F(1)=-1 , f(2)=13 F(a)*f(b)<0 shart bajarildi; [1;2] oraliqni oldim. Dastur kodi va natijasi: #include #include using namespace std; float F(float x) { //2x3-2x-1=8 return 2*x*x*x-2*x-1; } int main(){ const int k = 4; float a,b,x[2*k+1], y [2*k+1], E = 0.001, c; for(int i = 0; i <= 2*k+1; i ++) { x[i] = -k + i; y[i] = F(x[i]); } for(int i = 0; i <= 2*k; i ++) { if(y[i]*y[i+1] <0) { a = x[i]; b = x[i+1]; } } cout << "a = " << a << ", b = " << b << endl; while (fabs(b - a) >= E) { c = (a + b) / 2; if (F(a) * F(c) < 0) { b = c; } else { a=c; } } c = (a + b) / 2; cout << "c = " << c; } b) 3x+cosx+1=0 F(0)=2 , f(-1)=manfiy F(a)*f(b)<0 shart bajarildi; [-1;0] oraliqni oldim. Dastur kodi va natijasi: #include #include using namespace std; float F(float x) { //b) 3x+cosx+1=0 return 3*x+cos(x)+1; } int main(){ const int k = 4; float a,b,x[2*k+1], y [2*k+1], E = 0.001, c; for(int i = 0; i <= 2*k+1; i ++) { x[i] = -k + i; y[i] = F(x[i]); } for(int i = 0; i <= 2*k; i ++) { if(y[i]*y[i+1] <0) { a = x[i]; b = x[i+1]; } } cout << "a = " << a << ", b = " << b << endl; while (fabs(b - a) >= E) { c = (a + b) / 2; if (F(a) * F(c) < 0) { b = c; } else { a=c; } } c = (a + b) / 2; cout << "c = " << c; } 1.3 topshiriq 1) Tenglama ildizlarini ajratish iteratsion metodi yordamida 0,001 aniqlikda hisoblash.. 𝑎) ln 𝑥 + (𝑥 + 1)3 = 0; 𝑏)𝑥3 + 2𝑥2 + 2 = 0. Dastur kodi va natijasi: 2) Vatarlar va urinmalar usullari yordamida tenglama taqribiy ildizlarini 0,001 aniqlikda 𝑎) ln 𝑥 + (𝑥 + 1)3 = 0; 𝑏)𝑥3 + 2𝑥2 + 2 = 0. Yüklə 0,99 Mb. Dostları ilə paylaş: |