Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ҚАЗАҚСТАН ҒЫЛЫМ ЖӘНЕ БІЛІМ МИНИСТРЛІГІ.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.32 Mб
Скачать

Осы процестерді қайталау арқылы

x1+C12x2+ . . . +C1nxn=y1

x2+C23x3+…+C2nxn=y2 (4.11)

----------------------

xn=yn

теңдеулер жүйесін аламыз.

Қорыта келгенде (4.11) теңдеулер жүйесінің коэффициенттері мен оң жағы мына формулалар арқылы табылатының көреміз:

akj(0)=akj (k,j=1,2,…,n),

( j=k+1,k+2,…,n; k=1,…,n).

аіj(k)=aіj(k-1)- aіk(k-1)Ckj ( і,j=k+1,k+2,…,n; k=1,…,n),

fk(0)=fk , , (k=1,…,n),

fі(k)=fі(k-1)-aіk(k-1) yk (і=k+1,k+2,…,n.),

Ал (4.11) теңдеулер жүйесінің шешуі -х1,х2,…,хn мына формула арқылы табылады:

хn=yn , (і=n-1,n-2,…,1). (4.13)

Гаусс әдісімен теңдеулер жүйесін есептеу кезінде қолданылған арифметикалық амалдар саны -

N=m(m2+3m-1)/3 екенің есептеу онша қиын емес.

Гаусс әдісімен теңдеулер жүйесін шешкен кезде (4.12) формуласындағы бас элемент -акк(к-1) өте аз шама болған жағдайда дөңгелектеу қателері өсіп, есептеу дәлдігі төмендеп кетуі мүмкін. Сондықтан, кейбір жағдайда, бас элемент ретінде max|aіk(k-1)| (і=k,n) коэфициентін алады, яғни іk| коэфициенті ең үлкен теңдеуді к-шы теңдеумен орын ауыстыру арқылы есептеуді жалғастырады. Бұл әдіс Гаусстың тік жол боынша бас элементті таңдау әдісі деп аталады.

Егер akk -ны max|aіk(k-1)| (і=k+1,n) коэфициентімен алмастырсақ, яғни хк белгісізін хі белгісізімен орын алмастыру арқылы есептесе , онда бұл әдісті - Гаусстың жатық жол бойынша бас элементті таңдау әдісі дейді.

С++ тілінде есепті жүзеге асыру:

#include <iostream.h>

#include <math.h>

#include<stdlib.h>

int main()

{ double a[10][10],x[10], c[10][10];

int m,n,i,j,k,d,t;

cout<<"n=";

cin>>n;

cout<<"vvedite matrix A/B:"<<endl;

for(i=1; i<=n; i++)

{ for(j=1; j<=n+1; j++)

cin>>a[i][j];

}for (j=1; j<=n+1; j++)

{c[1][j]=a[1][j];}

for (k=1; k<=n-1; k++)

{ for (i=k+1; i<=n; i++)

{for (j=k; j<=n+1; j++)

{c[i][j]=a[i][j]-a[k][j]*(a[i][k]/a[k][k]);}

for (j=1; j<=n+1; j++)

a[i][j]=c[i][j];}

for (j=1; j<=n; j++)

{if (a[i][j]!=0) {d=i;}

}

if (a[i][i]==0) {

for (j=i; j<=n+1; j++)

t=a[i][j];

a[i][j]=a[d][j];

a[d][j]=t;}

} for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

{a[i][j]=c[i][j];}

for(k=n-1;k>=1;k--)

{for(i=n;i>=k+1;i--)

{if (a[k][i]!=0) {

for(j=n+1;j>=1;j--)

{c[k][j]=a[k][j]-a[i][j]*(a[k][i]/a[i][i]);}

a[k][j]=c[k][j];}

else for (j=n+1;n>=1;n--)

{c[k][j]=a[k][j];}

for(j=1;j<=n+1;j++)

a[k][j]=c[k][j];}}

for(i=1; i<=n; i++)

{for(j=1; j<=n+1; j++)

cout<<c[i][j]<<" ";

cout<<endl;}

for(i=1;i<=n;i++)

{x[i]=c[i][n+1]/c[i][i]; }

for(i=1;i<=n;i++)

cout<<"x["<<i<<"]="<<x[i]<<endl;}

Задачник по програмированию (Абрамов С.A)

#include<iostream.h>

#include<math.h>

void main ()

{

int i,n;

int t0[100];

int tf;

cin >> n;

for(i=0;i<=n;i++)

{cin >> t0[i];

tf=9/5*t0[i]+32;

cout <<i<< "tf= " << tf << endl;}}

#include<iostream.h>

#include<math.h>

void main()

{

int i,n;

double a,b,x[100],y[100],k=0;

cin >> a>> b >> n;

for( i=a;i<=n;i++)

{cin >> x[i];}

for( i=b;i<=n;i++)

{cin>> y[i];}

for(i=0;i<=n;i++)

{

k+=pow(x[i],2)+pow(y[i],2);

cout <<i<<"k= " << k << endl;

}}

#include<iostream.h>

#include<math.h>

#include<fstream.h>

void main()

{ofstream write_file("mk.dat");

int h,x[100],y,a,b,n;

cin >> a >> b >>n;

for(int i=a;i<=b;i++)

h=(b-a)/n;

{if(x[i]= a+i*h)

{y=sqrt(pow(x[i],4)+1);}

cout << "y= " <<y << endl;

write_file << " y=" << y <<endl;}

#include<iostream.h>

#include<math.h>

void main()

{

int i;

int a1,a2,a3,a4,x[100],b[100];

cin >> a1 >> a2 >> a3 >> a4;

for(i=1;i<50;i++)

{x[i]=i;

b[i]=((pow(x[i],2)-x[i]-a1)/(x[i]-a1))*((pow(x[i],3)-x[i]-a2)/(x[i]-a2)*(x[i]-a3))-((pow(x[i],4)-x[i]-a4)/(x[i]))+x[i]*(x[i]+a3);

cout << i <<"b[i] " << b[i] << endl;

}}