Математика в программировании
ВЫПОЛНИЛА
СТУДЕНТКА ГРУППЫ ПК-3
ИСАКОВА О.И.
НАУЧНЫЙ РУКОВОДИТЕЛЬ
ХАРИТОНОВА Н.С.
Содержание
- Математика и ее значимость
- Применение математики в программировании
- Самостоятельное решение математической задачи
- Примеры решения математических задач с помощью программирования
- Заключение
Математика
Математика является основой, базисом для всех остальных естественных и многих гуманитарных наук. Можно сказать, что именно благодаря развитию этой науки человечество сделало впечатляющий технологический рывок последних столетий. Без математики невозможно развитие физики, химии, инженерного дела, программирования, архитектуры и многих других дисциплин.
Математика в программировании
Программист - это человек, который создает новые и улучшает старые программы для компьютерной техники.
Программы – это инструкции для работы ЭВМ. Но пишутся они с использованием довольно сложных математических алгоритмов на специфических языках программирования.
Решение математической задачи
- Цель задачи:
- Решить систему линейных уравнений методом итераций с точностью до 0,001.
Введите значения переменных:
a11= 0.37
a12= 0.18
а13= 0.28
b1= 0.45
a21= -0.66
a22= 0.08
a23= -0.19
b2= 0.06
a31= -0.21
a32= 0.27
a33= 0.2
b3= 0.54
- x0.1=0.45
- x0.2=-0.21
- x0.3=0.54
Решение математической задачи с помощью программирования
- х1.1= 0.45
- х1.2= 0.06
- х1.3= 0.54
- х2.1= 0.778
- х2.2= -0.335
- х2.3= 0.57
- х3.1= 0.837
- х3.2= -0.589
- х3.3= 0.4
- х4.1= 0.766
- х4.2= -0.616
- х4.3= 0.285
- х5.1= 0.702
- х5.2= -0.549
- х5.3= 0.27
х6.1= 0.687
- х6.2= -0.499
- х6.3= 0.298
- х7.1= 0.698
- х7.2= -0.49
- х7.3= 0.321
- х8.1= 0.71
- х8.2= -0.501
- х8.3= 0.325
- х9.1= 0.714
- х9.2= -0.51
- х9.3= 0.321
- х10.1= 0.712
- х10.2= -0.513
- х10.3= 0.317
- х11.1= 0.71
- х11.2= -0.511
- х11.3= 0.315
- х12.1= 0.709
- х12.2= -0.509
- х12.3= 0.316
- х13.1= 0.709
- х13.2= -0.509
- х13.3= 0.317
- х14.1= 0.71
- х14.2= -0.509
- х14.3= 0.317
- Решение системы линейных уравнений методом итераций
- Сколько всего имеется уравнений? :
- 3
- С какой степенью точности ее необходимо решить? :
- 0.001
- Система имеет вид:
- x1=a11*x1+a12*x2+a13*x3+b1,
- x2=a21*x1+a22*x2+a23*x3+b2,
- x3=a31*x1+a32*x2+a33*x3+b3.
Решение системы линейных уравнений методом итераций
Ваша система имеет вид:
x1=0.37*x1+0.18*x2+0.28*x3+0.45
x2=-0.66*x1+0.08*x2-0.19*x3+0.06
x3=-0.21*x1+0.27*x2+0.2*x3+0.54
х15.1= 0.71
х15.2= -0.509
х15.3= 0.317
- х12.1= 0.70891
- х12.2= -0.50924
- х12.3= 0.31602
- x0.1=0.45
- x0.2=-0.21
- x0.3=0.54
- х13.1= 0.70912
- х13.2= -0.50866
- х13.3= 0.31684
- х1.1= 0.45
- х1.2= 0.06
- х1.3= 0.54
- х14.1= 0.70953
- х14.2= -0.50891
- х14.3= 0.31711
- х2.1= 0.7785
- х2.2= -0.3348
- х2.3= 0.5697
- х3.1= 0.8373
- х3.2= -0.58884
- х3.3= 0.40006
- х15.1= 0.70971
- х15.2= -0.50925
- х15.3= 0.31702
- х4.1= 0.76583
- х4.2= -0.61573
- х4.3= 0.28519
- х16.1= 0.70969
- х16.2= -0.50938
- х16.3= 0.31686
- х17.1= 0.70962
- х17.2= -0.50935
- х17.3= 0.3168
- х5.1= 0.70238
- х5.2= -0.54889
- х5.3= 0.26997
- х18.1= 0.70958
- х18.2= -0.50929
- х18.3= 0.31682
- х6.1= 0.68667
- х6.2= -0.49877
- х6.3= 0.29829
- х7.1= 0.69781
- х7.2= -0.48978
- х7.3= 0.32079
- х19.1= 0.70958
- х19.2= -0.50926
- х19.3= 0.31684
- х8.1= 0.70985
- х8.2= -0.50069
- х8.3= 0.32538
- х20.1= 0.70959
- х20.2= -0.50926
- х20.3= 0.31686
- х9.1= 0.71363
- х9.2= -0.51038
- х9.3= 0.32082
- х21.1= 0.7096
- х21.2= -0.50928
- х21.3= 0.31686
- х22.1= 0.7096
- х22.2= -0.50928
- х22.3= 0.31685
- х10.1= 0.712
- х10.2= -0.51278
- х10.3= 0.3165
- х11.1= 0.70976
- х11.2= -0.51108
- х11.3= 0.31533
- х23.1= 0.7096
- х23.2= -0.50928
- х23.3= 0.31685
- Увеличим степень точности до 0,00001
x1=0.37*x1+0.18*x2+0.28*x3+0.45
x2=-0.66*x1+0.08*x2-0.19*x3+0.06
x3=-0.21*x1+0.27*x2+0.2*x3+0.54
- writeln('х',i,'.1= ', b[1]);
- writeln('х',i,'.2= ', b[2]);
- writeln('х',i,'.3= ', b[3]);
- writeln('х',i,'.4= ', b[4]);
- exit
- end
- else
- begin
- writeln('х',i,'.1= ', b[1]);
- writeln('х',i,'.2= ', b[2]);
- writeln('х',i,'.3= ', b[3]);
- writeln('х',i,'.4= ', b[4]);
- e[1]:=b[1];
- e[2]:=b[2];
- e[3]:=b[3];
- e[4]:=b[4];
- end ;
- end ;
- end ;
- end .
- begin
- write('a',k,'',kk,'=');
- readln(c[i]);
- kk:=kk+1;
- end
- else
- begin
- write('b',k,'=');
- readln(c[i]);
- kk:=1;
- k:=k+1;
- end ;
- end ;
- writeln;
- if n=3 then
- begin
- writeln('Решение системы линейных уравнений методом итераций с точностью ',nn);
- writeln('Ваша система имеет вид:');
- writeln;
- write('x1=',c[1],'*x1');
- if c[2]=0 then write('') else if c[2]0 then write('+',c[2],'*x2') else write(c[2],'*x2');
- if c[3]=0 then write('') else if c[3]0 then write('+',c[3],'*x3') else write(c[3],'*x3');
- if c[4]0 then writeln('+',c[4]) else writeln(c[4]);
- write('x2=',c[5],'*x1');
- if c[6]=0 then write('') else if c[6]0 then write('+',c[6],'*x2') else write(c[6],'*x2');
- if c[7]=0 then write('') else if c[7]0 then write('+',c[7],'*x3') else write(c[7],'*x3');
- if c[8]0 then writeln('+',c[8]) else writeln(c[8]);
- write('x3=',c[9],'*x1');;
- if c[10]=0 then write('') else if c[10]0 then write('+',c[10],'*x2') else write(c[10],'*x2');
- if c[11]=0 then write('') else if c[11]0 then write('+',c[11],'*x3') else write(c[11],'*x3');
- if c[12]0 then writeln('+',c[12]) else writeln(c[12]);
- writeln;
- writeln('x0.1=',c[4]);
- writeln('x0.2=',c[9]);
- writeln('x0.3=',c[12]);
- a[1]:=d[1];
- a[2]:=d[2];
- a[3]:=d[3];
- for i:=1 to 50 do
- begin
- b[1]:=c[1]*a[1]+c[2]*a[2]+c[3]*a[3]+c[4];
- b[2]:=c[5]*a[1]+c[6]*a[2]+c[7]*a[3]+c[8];
- b[3]:=c[9]*a[1]+c[10]*a[2]+c[11]*a[3]+c[12];
- a[1]:=b[1];
- a[2]:=b[2];
- a[3]:=b[3];
- writeln;
- ee:=0;
- b[1]:= round(b[1]*nn)/nn;
- b[2]:= round(b[2]*nn)/nn;
- b[3]:= round(b[3]*nn)/nn;
- if e[1]=b[1] then
- ee:=ee+1;
- if e[2]=b[2] then
- ee:=ee+1;
- if e[3]=b[3] then
- ee:=ee+1;
- if ee=3 then
- begin
- writeln('х',i,'.1= ', b[1]);
- writeln('х',i,'.2= ', b[2]);
- writeln('х',i,'.3= ', b[3]);
- exit
- end
- else
- begin
- writeln('х',i,'.1= ', b[1]);
- writeln('х',i,'.2= ', b[2]);
- writeln('х',i,'.3= ', b[3]);
- writeln('х',i,'.1= ', b[1]);
- writeln('х',i,'.2= ', b[2]);
- writeln('х',i,'.3= ', b[3]);
- e[1]:=b[1];
- e[2]:=b[2];
- e[3]:=b[3];
- end ;
- end ;
- end ;
- if n=4 then
- begin
- writeln('Ваша система имеет вид:');
- writeln;
- write('x1=',c[1],'*x1');
- if c[2]=0 then write('') else if c[2]0 then write('+',c[2],'*x2') else write(c[2],'*x2');
- if c[3]=0 then write('') else if c[3]0 then write('+',c[3],'*x3') else write(c[3],'*x3');
- if c[4]=0 then write('') else if c[4]0 then write('+',c[4],'*x4') else write(c[4],'*x4');
- if c[5]0 then writeln('+',c[5]) else writeln(c[5]);
- write('x2=',c[6],'*x1');
- if c[7]=0 then write('') else if c[7]0 then write('+',c[7],'*x2') else write(c[7],'*x2');
- if c[8]=0 then write('') else if c[8]0 then write('+',c[8],'*x3') else write(c[8],'*x3');
- if c[9]=0 then write('') else if c[9]0 then write('+',c[9],'*x4') else write(c[9],'*x4');
- if c[10]0 then writeln('+',c[10]) else writeln(c[10]);
- write('x3=',c[11],'*x1');;
- if c[12]=0 then write('') else if c[12]0 then write('+',c[12],'*x2') else write(c[12],'*x2');
- if c[13]=0 then write('') else if c[13]0 then write('+',c[13],'*x3') else write(c[13],'*x3');
- if c[14]=0 then write('') else if c[14]0 then write('+',c[14],'*x4') else write(c[14],'*x4');
- if c[15]0 then writeln('+',c[15]) else writeln(c[15]);
- write('x4=',c[16],'*x1');
- if c[17]=0 then write('') else if c[17]0 then write('+',c[17],'*x2') else write(c[17],'*x2');
- if c[18]=0 then write('') else if c[18]0 then write('+',c[18],'*x3') else write(c[18],'*x3');
- if c[19]=0 then write('') else if c[19]0 then write('+',c[19],'*x4') else write(c[19],'*x');
- if c[20]0 then writeln('+',c[20]) else writeln(c[20]);
- writeln;
- writeln('x0.1=',c[5]);
- writeln('x0.2=',c[10]);
- writeln('x0.3=',c[15]);
- writeln('x0.4=',c[20]);
- a[1]:=d[1];
- a[2]:=d[2];
- a[3]:=d[3];
- a[4]:=d[4];
- for i:=1 to 50 do
- begin
- b[1]:=c[1]*a[1]+c[2]*a[2]+c[3]*a[3]+c[4]*a[4]+c[5];
- b[2]:=c[6]*a[1]+c[7]*a[2]+c[8]*a[3]+c[9]*a[4]+c[10];
- b[3]:=c[11]*a[1]+c[12]*a[2]+c[13]*a[3]+c[14]*a[4]+c[15];
- b[4]:=c[16]*a[1]+c[17]*a[2]+c[18]*a[3]+c[19]*a[4]+c[20];
- a[1]:=b[1];
- a[2]:=b[2];
- a[3]:=b[3];
- a[4]:=b[4];
- writeln('---');
- ee:=0;
- b[1]:= round(b[1]*nn)/nn;
- b[2]:= round(b[2]*nn)/nn;
- b[3]:= round(b[3]*nn)/nn;
- b[4]:= round(b[4]*nn)/nn;
- if e[1]=b[1] then
- ee:=ee+1;
- if e[2]=b[2] then
- ee:=ee+1;
- if e[3]=b[3] then
- ee:=ee+1;
- if e[4]=b[4] then
- ee:=ee+1;
- if ee=4 then
- begin
- program u_2;
- var
- a: array [1..4] of real;
- b: array [1..4] of real;
- c: array [1..20] of real;
- d: array [1..4] of real;
- e: array [1..4] of real;
- i, k, kk, ee, n: integer;
- nn: real;
- begin
- writeln('Решение системы линейных уравнений методом итераций');
- writeln('Сколько всего имеется уравнений? :');
- readln(n);
- writeln('С какой степенью точности ее необходимо решить? :');
- readln(nn);
- if nn=0.1 then
- nn:=10;
- if nn=0.01 then
- nn:=100;
- if nn=0.001 then
- nn:=1000;
- if nn=0.0001 then
- nn:=10000;
- if nn=0.00001 then
- nn:=1
- writeln;
- writeln('Система имеет вид: ');
- if n=3 then
- begin
- writeln('x1=a11*x1+a12*x2+a13*x3+b1,');
- writeln('x2=a21*x1+a22*x2+a23*x3+b2,');
- writeln('x2=a31*x1+a32*x2+a33*x3+b3.');
- end
- else
- begin
- writeln('x1=a11*x1+a12*x2+a13*x3+b1,');
- writeln('x2=a21*x1+a22*x2+a23*x3+b2,');
- writeln('x2=a31*x1+a32*x2+a33*x3+b3.');
- end
- else
- begin
- writeln('x1=a11*x1+a12*x2+a13*x3+a14*x4+b1,');
- writeln('x2=a21*x1+a22*x2+a23*x3+a24*x4+b2,');
- writeln('x2=a31*x1+a32*x2+a33*x3+a34*x4+b3,');
- writeln('x2=a41*x1+a42*x2+a43*x3+a44*x4+b4.');
- end ;
- writeln('Введите значения переменных');
- kk:=1;
- if n=3 then
- begin
- k:=k+1;
- for i:=1 to 12 do
- if kk4 then
- begin
- write('a',k,'',kk,'=');
- readln(c[i]);
- kk:=kk+1;
- end
- else
- begin
- write('b',k,'=');
- readln(c[i]);
- kk:=1;
- k:=k+1;
- end ;
- end ;
- if n=4 then
- begin
- k:=k+1;
- for i:=1 to 20 do
- if kk5 then
Листинг
заключение
Программирование упрощает жизнь математика, ровно так же, как и математика делает жизнь проще программисту.
Спасибо за внимание!!!