Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Работа с математическими пакетами - файл 1.doc


Работа с математическими пакетами
скачать (585 kb.)

Доступные файлы (1):

1.doc585kb.16.11.2011 11:28скачать

содержание

1.doc

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
ГОСУДАРСТВЕННЫЙ Университет информатики

И ИСКУССТВЕННОГО ИНТЕЛЛЕКТА


Д06.080200.5.12.07/100ОП


Кафедра

системного анализа

и моделирования


ОТЧЁТ


по результатам учебной практики


за период с 22 июня по 12 июля 2008 года


Руководитель практики:

_______________асс. Е.Ю. Павлюшина

(дата, подпись)


Разработала:

__________ст.гр.САУ-07_А.Г.Мельник

(дата, подпись)


ДОНЕЦК 2008




СОДЕРЖАНИЕ


Введение………………………………………………………………….3

  1. Работа с математическими пакетами……………………………..4

1.1. Выполнение простейших арифметических вычислений для ознакомления с синтаксисом основных команд и операций среды………………………………………………………………….4

1.2. Выполнение операций над функциями……………………..6

1.3. Работа с массивами данных.Работа с матрицами и векторами …………………………………………………………...16

1.4. Визуализация вычислений (двухмерная и трехмерная графика)…………………………..23

1.5. Изучение алгоритмов и технологий решения алгебраических и трансцендентных уравнений………………………………………….26

1.6. Изучение алгоритмов и технологий решения систем алгебраических и трансцендентных уравнений……………….27

1.7. Изучение алгоритмов и технологий решения обыкновенных дифференциальных уравнений………………..32

1.8. Изучение алгоритмов и технологий решения систем обыкновенных дифференциальных уравнений

1.9. Изучение элементов теории интерполяции……………….35

2. Правила техники безопасности…………………………………..39

Заключение……………………………………………………………..40

Список литературы……………………………………………………41

Приложение А………………………………………………………….42


Разработала

Фамилия

Подпись

Дата

Д06.080200.5.12.07/100.ОП


лист


Ст.гр САУ07

Мельник






2














Введение


Компьютерная алгебра — новое научное направление в информатике. Его появление тесно связано с созданием универсальных математических программных средств символьной математики, таких как Mathematics, Мар1е, Derive, МАТLАВ и др.

Каждая из этих систем является уникальной. В ней имеется свой язык общения, наборы математических функций, алгоритмы и методы решения математических задач.

МАТLАВ – это высокопроизводительный язык для технических расчетов. Он включает в себя вычисления визуализацию и программирование в удобной среде, где задачи и решения выражаются в форме, близкой к математической. Типичное использование МАТLАВ - это:

• математические вычисления

• создание алгоритмов

• моделирование

• анализ данных исследования и визуализация

• научная и инженерная графика

• разработка приложений, включая создание графического интерфейса.

МАТLАВ - это интерактивная система, в которой основным элементом данных является массив. Это позволяет решать различные задачи, связанные с техническими вычислениями особенно в которых используются матрицы и вектора, в несколько раз быстрее чем при написании программ с использованием "скалярных" языков программирования, таких как Си или Фортран.


1. работа с математическими пакетами


1.1. Выполнение простейших арифметических вычислений

для ознакомления с синтаксисом основных команд и операций среды

А) Написать программу для вычисления арифметических выражений. Значение параметра х вводить с клавиатуры. Пользователь выбирает, значение какого выражения вычислить. Программа должна продолжать работу, пока пользователь желает проводить вычисления.

#include<iostream>

#include<conio.h>

#include<math.h>

using namespace std;

double f1(double x)

{

return 1/tan(x)+x*x;

}

double f2(double x)

{

return x*x*x+3*x*x-x+2;

}

void main()

{

double x;

char a='n';

do

{

cout<<"Vvedite x ";

cin>>x;

int n;

cout<<"Nomer function ";

cin>>n;

if(n==1)

cout<<"f="<<f1(x);

else if(n==2)

cout<<"f="<<f2(x);

else cout<<"Net tacoy";

cout<<"\nEshe raz?(y/n) ";

cin>>a;

}

while(a=='y');

_getch();

}




Б) Проверить правильность вычислений с помощью Matlab, записывая функции в виде арифметических выражений

Простейшие арифметические выражения в Matlab можно вычислить таким образом:

Присваиваем переменной х значение 2


>> x=2


x =2

Вводим функцию 1, где будет использоваться переменная

>> cot(x)+x^2


ans =3.5423

Вводим функцию 2, где будет использоваться переменная

>> x^3+3*x^2-x+2


ans =20

Ответ выводится с помощью специальной переменной ans

В) Проверить правильность вычислений с помощью Matlab, записывая функции в виде m-файла.

В m-файле можно группировать команды, которые могут выполняться одновременноЕго адрес указывается в командном окне с верху.

В m-файле описываем функцию данную в первом задании

function z=f1(x)

z=cot(x)+x^2

В m-файле описываем функцию данную в первом задании

function z=f2(x)

z=x^3+3*x^2-x+2

>> x=2

Вводим функции по переменной:

Вводим в переменную Х значение 2


x =2

M-файл сохранили под именем f1 и используем как функцию


>> f1(x)


z =3.5423


ans =3.5423

M-файл сохранили под именем f2 и используем как функцию

>> f2(x)


z =20


ans = 20


Г*) Проверить правильность вычислений в Maple

Для того, чтобы вычислить функцию в Maple, вводим значение переменной х и саму функцию

> x:=2;



Функция 1

> f:=1/tan(x)+x^2;



Функция 2

> f1:=x^3+3*x^2-x+2;




1.2 Выполнение операций над функциями

А) В среде Matlab табулировать функции из задания 1 на заданном отрезке с заданным количеством точек

Функция syms определяет ячейки, которые не имеют значений.

Subs отвечает за подстановку значений х в функцию.

После этого идет построение ответа в виде строчек

а=1;b=3;M=10;

Функция 1


>> syms x;

>> syms x1;

>> syms y;

>> x1=1:0.2:3;

>> y=cot(x)+x^2;

>> subs(y,x,x1)


ans =


Columns 1 through 10


1.6421 1.8288 2.1325 2.5308 3.0067 3.5423 4.1121 4.6683 5.0978 5.0273


Column 11


1.9847

Функция 2

>> y=x^3+3*x^2-x+2;

>> subs(y,x,x1)


ans =


Columns 1 through 10


5.0000 6.8480 9.2240 12.1760 15.7520 20.0000 24.9680 30.7040 37.2560 44.6720


Column 11


53.0000

Б) Написать соответствующую программу на С++. Результаты должны выводиться в текстовый файл.

Программа 2

# include <conio.h>

# include <iostream>

# include <math.h>

# include <fstream>


using namespace std;

double f1(double x)

{

return x=1/tan(x)+x*x;

}


double f2(double x)

{

return x=x*x*x+3*x*x-x+2;

}


void main()

{

ofstream fout("data.txt");

double a,b,xi,h;

int M;

cout<<"Vvedite a= ";

cin>>a;

cout<<"Vvedite b= ";

cin>>b;

cout<<"Vvedite M= ";

cin>>M;

h=(b-a)/M;

cout<<"x f1 f2\n";

int i;

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

{

xi=a+i*h;

fout<<xi<<" "<<f1(xi)<<" "<<f2(xi)<<endl;

}

_getch();

}

В файле «data.txt» выводиться результат вычислений:

1 1.64209 5

1.2 1.82878 6.848

1.4 2.13248 9.224

1.6 2.53079 12.176

1.8 3.0067 15.752

2 3.54234 20

2.2 4.1121 24.968

2.4 4.66831 30.704

2.6 5.09776 37.256

2.8 5.0273 44.672

3 1.98475 53





По формуле считаем шаг «h=(b-a)/M».

В) В среде Matlab продифференцировать функции из задания 1, получив аналитическое выражение производной (если это возможно). Вычислить значение производной в т. x=a, x=b.

В среде Matlab функция дифференцируется при помощи команды diff. Ответ выводится с помощью переменной ans.

Функция 1:

>> syms x;

>> diff(cot(x)+x^2)


ans = -1-cot(x)^2+2*x


определение значения производной в т. х=1

>> x=1


x =1


>> -1-cot(x)^2+2*x


ans =0.5877

>> x=3


x =3


>> -1-cot(x)^2+2*x


ans =-44.2138

Функция 2 :

>> syms x;

>> diff(x^3+3*x^2-x+2)


ans =3*x^2+6*x-1


определение значения производной в т. х=1

>> x=1


x =1


>> 3*x^2+6*x-1


ans =8

определение значения производной в т. х=3

>> x=3


x =3


>> 3*x^2+6*x-1


ans =44

Г) В среде Matlab проинтегрировать функции из задания 1, получив аналитическое выражение интеграла (если это возможно). Вычислить значение интеграла на отрезке [a, b].

В среде Matlab интегрирование функции происходит при помощи оператора int.

Если значение аргумента не имеет определенного значения ,то используем оператор syms.

Функция 1:


>> syms x;

>> y=cot(x)+x^2;

>> int(y)


ans =

log(tan(x))-1/2*log(1+tan(x)^2)+1/3*x^3

подставляем значения на отрезке[a,b],a=1,b=3

>> int(y,1,3)


ans =

log(tan(3))-1/2*log(1+tan(3)^2)+26/3-log(tan(1))+1/2*log(1+tan(1)^2)-i*pi

Функция 2

>> syms x;

>> y=x.^3+3*x.^2-x+2;

>> int(y)


ans =

1/4*x^4+x^3-1/2*x^2+2*x

подставляем значения на отрезке[a,b],a=1,b=3

>> int(y,1,3)


ans =46

Д) Написать программу для интегрирования указанных функций методом левых прямоугольников (варианты 1, 4, 7, 10, 13, 16), средних прямоугольников (варианты 2, 5, 8, 11, 14, 17) или методом трапеций (варианты 3, 6, 9, 12, 15).

Программа 3

# include <conio.h>

# include <iostream>

# include <math.h>

# include <fstream>


using namespace std;

double f1(double x)

{

return x-sin(x);

}


double f2(double x)

{

return x*x*x-2*x*x+x-3;

}


void main()

{

ofstream fout("OTBET.txt");

double a,b,xi,h;

int M;

cout<<"Vvedite a= ";

cin>>a;

cout<<"Vvedite b= ";

cin>>b;

cout<<"Vvedite M= ";

cin>>M;

h=(b-a)/M;

int S1=0,S2=0;

for(int i=0;i<M;i++)

{

xi=a+i*h;

S1=S1+f1(xi);

}

S1=S1*h;

for(int i=0;i<M;i++)

{

xi=a+i*h;

S2=S2+f2(xi);

}

S2=S2*h;

cout<<"OTBET 1 FUNKL|II:"<<S1;

cout<<" OTBET 2 FUNKL|II:"<<S2;

_getch();

}




С помощью введенных данных по формуле «h=(b-a)/M» считаем шаг. После этого по приведенным формулам в учебнике («xi=a+i*h», «S1=S1+f1(xi)») находим площадь по формуле «S2=S2*h», для двух функций

Е) В среде Matlab вычислить пределы функций из задания 1в т. x=a, x=b, х=0.

В среде Matlab вычисляются пределы с помощью оператора limit.Т.к. сначала пределы находятся в общем виде, без определенного аргумента, позже подставляем значения в точках 0, а=1, b=3.

Функция 1

В точке х=0

>> syms x;

>> y=cot(x)+x^2;

>> limit(y,0)


ans =NaN


В точке х=1

>> syms x;

>> y=cot(x)+x^2;

>> limit(y,1)


ans =(1+tan(1))/tan(1)


>> (1+tan(1))/tan(1)


ans =1.6421

В точке х=3

>> syms x;

>> y=cot(x)+x^2;

>> limit(y,3)


ans =cot(3)+9


>>cot(3)+9


ans =1.9847

Функция 2


В точке х=0

>> syms x;

>> y=x^3+3*x^2-x+2;

>> limit(y,0)


ans =2

В точке х=1

>> syms x;

>> y=x^3+3*x^2-x+2;

>> limit(y,1)


ans =5

В точке х=3

>> syms x;

>> y=x^3+3*x^2-x+2;

>> limit(y,x,3)

ans = 53

Ж) В среде Matlab разложить в ряд Тейлора функции из задания 1 в окрестности т. x=a, x=b, взяв члены разложения до 4 степени включительно.

В среде Matlab разложение в ряд Тейлора осуществляется с помощью оператора Taylor. Т.к беруться члены разложения до 4 степени включительно, сначала подставляется значение первой точки a=1, а затем второй b=3.

>> syms x;

>> y=cot(x)+x.^2;

>> y1=x.^3+3*x.^2-x+2;

>> Taylor(y,x,1,4)


ans =cot(4)+16


>> Taylor(y,x,3,4)


ans =

cot(4)+16+(7-cot(4)^2)*(x-4)+((1+cot(4)^2)*cot(4)+1)*(x-4)^2


>> Taylor(y1,x,1,4)


ans =110


>> Taylor(y1,x,3,4)


ans =-174+71*x+15*(x-4)^2


З) В среде Matlab найти экстремумы функций из задания 1.

В среде Matlab нахождение экстремумов функции осуществляется с помощью определенной команды fminbnd, которая находит минимум. Чтобы найти максимум, нужно функцию взять в скобки, перед ними поставить минус и взять все это в кавычки (одинарные). Команда Plot позволяет рисовать графики.

Функция 1

^ Найдем min

>> x=1:0.2:3;

>> y=cot(x)+x.^2;

>> plot(y,x)

>> x=FMINBND('cot(x)+x.^2',1,3)


x =1

Найдем max

>> x=FMINBND('-(cot(x)+x.^2)',1,3)

x =2.6964




Функция 2

Найдем min

>> x=1:0.2:3;

>> y=x.^3+3*x.^2-x+2;

>> plot(x,y)

>> x=FMINBND('x.^3+3*x^2-x+2',1,3)

x =1

Найдем max

>> x=FMINBND('-(x.^3+3*x^2-x+2)',1,3)


x =3




И*) Проделать аналогичные действия в Maple.

А) Табулировать функции из задания 1 на заданном отрезке с заданным количеством точек:

В начале каждой задачи вводим оператор restart для того, чтобы не использовать выше введенные аргументы и функции. Функция seq – построение порядка.

> a:=1:b:=3:M:=10:h:=(b-a)/M:X:=matrix(1,11,[seq(a+i*h,i=0..10)]);



> Y:=matrix(1,11,[seq(evalf(1/tan(X[1,i])+(X[1,i])^2),i=1...11)]);











В) Продифференцировать функции из задания 1, получив аналитическое выражение производной (если это возможно). Вычислить значение производной в т. x=a, x=b.

В Maple дифференцирование функции проводим с помощью оператора diff.

Функция 1

> y:=1/tan(x)+x^2;



> diff(y,x);



> x:=1;



> -(1+tan(x)^2)/tan(x)^2+2*x;



> x:=3;



> -(1+tan(x)^2)/tan(x)^2+2*x;



Функция 2

> y:=x^3+3*x^2-x+2;



> diff(y,x);



> x:=1;



> 3*x^2+6*x-1;



> x:=3;



> 3*x^2+6*x-1;



Г) Проинтегрировать функции из задания 1, получив аналитическое выражение интеграла (если это возможно). Вычислить значение интеграла на отрезке [a, b].

В Maple интегрируем функцию с помощью специального оператора int.

Функция 1

> y:=1/tan(x)+x^2;



> int(y,x=1..3);




Функция 2

> y:=x^3+3*x^2-x+2;



> int(y,x=1...3);



Е) Вычислить пределы функций из задания 1в т. x=a, x=b, х=0.

В Maple вычисляем пределы с помощью функции Limit. В конце каждого нахождения предела мы пишем строку %=value(%).

Т.к. сначала пределы находятся в общем виде, без определенного аргумента, позже подставляем значения в точках 0, а=1, b=3.

Функция 1

> Limit(1/tan(x)+x^2,x=0):%=value(%);



> Limit(1/tan(x)+x^2,x=1):%=value(%);




> Limit(1/tan(x)+x^2,x=3):%=value(%);



Функция 2

> Limit(x^3+3*x^2-x+2,x=0):%=value(%);




> Limit(x^3+3*x^2-x+2,x=1):%=value(%);



> Limit(x^3+3*x^2-x+2,x=3):%=value(%);



З)Нахождение экстремума функции происходит с помощью команды extrema.s – это переменная в которой хранится ответ.

> extrema(1/tan(x)+x^2,{},x,'s');























> s;



> extrema(x^3+3*x^2-x+2,{},x,'s');



> s;



Ж) Разложить в ряд Тейлора функции из задания 1 в окрестности т. x=a, x=b, взяв члены разложения до 4 степени включительно.

В среде Maple разложение в ряд Тейлора осуществляется с помощью оператора taylor.

Функция 1

> taylor(1/tan(x)+x^2,x=1,4);





> taylor(1/tan(x)+x^2,x=3,4);





Функция 2

> taylor(x^3+3*x^2-x+2,x=1,4);



> taylor(x^3+3*x^2-x+2,x=3,4);



1.3 Работа с массивами данных. Работа с матрицами и векторами

А) Создать входной файл с двумя матрицами и файл с вектором. Написать программу, которая позволит: вычислить сумму и произведение матриц; транспонировать первую матрицу; удалить из первой матрицы строку, а ко второй матрице добавить столбец; найти произведение первой матрицы и вектора.

Программа 4

#include<iostream>

#include<math.h>

#include<conio.h>

#include<fstream>

using namespace std;

void main()

{

int N,M;

ifstream fin;

fin.open("matrix.txt");

fin>>N>>M;

double**A;

A=new double*[N];

for(int i=0;i<N;i++)

A[i]=new double[M];

for(int i=0;i<N;i++)

for(int j=0;j<M;j++)

fin>>A[i][j];

double**B;

B=new double*[N];

for(int i=0;i<N;i++)

B[i]=new double[M];

for(int i=0;i<N;i++)

for(int j=0;j<M;j++)

fin>>B[i][j];

double*x;

x=new double[N];

ifstream fin2;

fin2.open("vector.txt");

for(int i=0;i<N;i++)

fin2>>x[i];

double**c;

c=new double*[N];

for(int i=0;i<N;i++)

c[i]=new double[M];

for(int i=0;i<N;i++)

for(int j=0;j<M;j++)

c[i][j]=A[i][j]+B[i][j];

ofstream fout;

fout.open("Summa A i B.txt");

for(int i=0;i<N;i++)

{

for(int j=0;j<M;j++)

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

fout<<endl;

}

for(int i=0;i<N;i++)

for(int j=0;j<M;j++)

{

c[i][j]=0;

for(int k=0;k<M;k++)

c[i][j]+=A[i][k]*B[k][j];

}

ofstream fout2;

fout2.open("proizvedenie A i B.txt");

for(int i=0;i<N;i++)

{

for(int j=0;j<M;j++)

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

fout2<<endl;

}

for(int i=0;i<N;i++)

for(int j=0;j<M;j++)

{

c[i][j]=A[j][i];

}

ofstream fout3;

fout3.open("transponirovanie.txt");

for(int i=0;i<N;i++)

{

for(int j=0;j<M;j++)

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

fout3<<endl;

}

cout<<"N stroki ";

int p;

cin>>p;

double **D;

D=new double *[N-1];

for(int i=0;i<N;i++)

D[i]=new double [M];

for(int i=0;i<p;i++)

for(int j=0;j<M;j++)

D[i][j]=A[i][j];

for(int i=p;i<N-1;i++)

for(int j=0;j<M;j++)

D[i][j]=A[i+1][j];

for(int i=0;i<N;i++)

delete[]A[i];

delete[]A;

int N1=N-1;

A=new double *[N1];

for(int i=0;i<N1;i++)

A[i]= new double [M];

for(int i=0;i<N1;i++)

for(int j=0;j<M;j++)

A[i][j]=D[i][j];

ofstream fout4;

fout4.open("ydalenie stroki.txt");


for(int i=0;i<N1;i++)

{

for(int j=0;j<M;j++)

fout4<<A[i][j]<<" ";

fout4<<endl;

}

int t;

cout<<"N stolbca ";

cin>>t;

double **F=new double *[N];

for(int i=0;i<N;i++)

F[i]=new double[M+1];

for(int i=0;i<N;i++)

for(int j=0;j<t;j++)

F[i][j]=B[i][j];

cout<<"Elementy\n";

for(int i=0;i<N;i++)

cin>>F[i][t];

for(int i=0;i<N;i++)

for(int j=t+1;j<M+1;j++)

F[i][j]=B[i][j-1];


ofstream fout5;

fout5.open("dobavlenie stolbca.txt");


for(int i=0;i<N;i++)

{

for(int j=0;j<M+1;j++)

fout5<<F[i][j]<<" ";

fout5<<endl;

}

double *y=new double[N];


for(int i=0;i<N;i++)

{

y[i]=0;

for(int j=0;j<M;j++)

y[i]+=B[j][i]*x[j];

}

ofstream fout6;

fout6.open("proizvedenie A i vectora.txt");

for(int i=0;i<N;i++)

{

fout6<<y[i]<<" ";


}

_getch();

}


Матрица

3 3

2 3 2

1 6 2

1 3 5


5 3 4

2 5 1

6 2 4

Вектор

1 4 2

Ответы выводимые в текстовые файлы


Сумма A и B

7 6 6

3 11 3

7 5 9


Вектор

1 4 2


Произведение А и В

28 25 19

29 37 18

41 28 27


Произведение А и вектора

25 27 16


Транспонирование

2 1 1

3 6 3

2 2 5


Добавление столбца

5 3 3 4

2 2 5 1

6 1 2 4


Удаление строки

2 3 2

1 3 5




Для выполнения необходимой задачи необходимо создать текстовый файл с одержимыми в нем матрицами (указываем размер матриц, матрицу А и матрицу В). Так же создается текстовый файл, с содержащимся в нем вектором – столбцом. Все остальные файлы ("Summa A i B.txt", "proizvedenie A i B.txt", "transponirovanie.txt", "ydalenie stroki.txt", "dobavlenie stolbca.txt", "proizvedenie A i vectora.txt") создаются сами, так как являются текстовыми файлами выводимых значений. Создаем массивы для обеих матриц и вектора.

Б) В среде Matlab найти сумму и произведение двух заданных матриц, произведение матрицы и вектора-столбца. Удалить из первой матрицы строку, а ко второй добавить столбец.

Произведение в среде Матлаб находится знаком “*”.

>> M=[2 3 2;1 6 2;1 3 5]

M =


2 3 2

1 6 2

1 3 5


>> N=[5 3 4;2 5 1;6 2 4]


N =

5 3 4

2 5 1

6 2 4

Перемножение происходит как обычное умножение

>> M*N


ans =

28 25 19

29 37 18

41 28 27

Суммирование происходит, так же как и умножение

>> M+N


ans =


7 6 6

3 11 3

7 5 9

Произведение матрицы и вектора. Задаем матрицу и вектор(вектор задается как матрица, только с меньшим кол-вом элементов)

>> V=[1,4,2]


V =

1 4 2


>> M=[2 3 2;1 6 2;1 3 5]


M =

2 3 2

1 6 2

1 3 5

Перемножение происходит как с матрицами

>> V*M


ans =

8 33 20

Удаление строки происходит так: мы задаем матрицу и в круглых скобках через точку с запятой указывая какой столбец(строку) мы хотим удалить

>> M=[2 3 2;1 6 2;1 3 5]


M =

2 3 2

1 6 2

1 3 5


>> M(1,:)=[];

>> M


M =

1 6 2

1 3 5

Добавление столбца происходит методом объединения матриц(в данном случае происходит объединение матрицы-столбца и матрицы)

>> N=[5 3 4;2 5 1;6 2 4]


N =

5 3 4

2 5 1

6 2 4


>> V=[1;2;3]


V =

1

2

3

Объединение происходит в переменную b в квадратных скобках указываем те матрицы, которые нужно объединить

>> B=[M,V]


B =

2 3 2 1

1 6 2 2

1 3 5 3

В) В среде Matlab найти определитель первой матрицы (до удаления из нее строки).

>> M=[2 3 2;1 6 2;1 3 5];

>> det(M)


ans =33

Г) В среде Matlab найти обратную матрицу для второй матрицы (до добавления к ней столбца).

В среде Matlab обратная матрица находится функцией inv в круглых скобках указывая ту матрицу, которая нужна

>> N=[5 3 4;2 5 1;6 2 4];

>> z=inv(N)

z =

-0.9000 0.2000 0.8500

0.1000 0.2000 -0.1500

1.3000 -0.4000 -0.9500

Д) В среде Matlab транспонировать матрицу, полученную в пункте Г).

>> N=[5 3 4;2 5 1;6 2 4];

>> z=N'


z =

5 2 6

3 5 2

4 1 4

Е) В среде Maple привести матрицу, полученную в пункте Д), к верхнетреугольному виду.

Это привидение осуществляется функцией triu мы используем ее и в скобках пишем матрицу которую мы будем использовать.

>> N=[5 2 6;3 5 2;4 1 4]

N =

5 2 6

3 5 2

4 1 4

>> z=triu(N)

z =

5 2 6

0 5 2

0 0 4


Ж*) Проделать аналогичные действия в Maple.

В среде Maple задание матрицы происходит так мы выбираем переменную присваиваем “ := ” ей матрицу matrix( пишем размер матрицы и ее составляющие

> M:=matrix([[2,3,2],[1,6,2],[1,3,5]]);



> N:=matrix([[5,3,4],[2,5,1],[6,2,4]]);



Функция evalm используется для подсчета арифметические действий в среде программирования Maple

> evalm (M+N);




При произведении мы задаем матрицы и используем функцию evalm


>M:=matrix([[2,3,2],[1,6,2],[1,3,5]]):N:=matrix([[5,3,4],[2,5,1],[6,2,4]]):evalm(M&*N);



Вектор задается так же, как матрица, но в место слова matrix мы пишем vector и в скобках задаем элементы вектора.

>M:=matrix([[2,3,2],[1,6,2],[1,3,5]]):V:=vector([1,2,3]):evalm(M&*V);



Определитель вычисляет функция det мы используем раздел linalg который отвечает за линейные действия и хранит в себе функцию det в скобках от функции пишем матрицу которая нам нужна .

Команда ор демонстрирует матрицу в которой были произведены изменения. (Та матрица которую вы укажете)

> op(M);



> linalg[det](M);



Нахождение обратной матрицы(исходная матрица не имеет обратной). Берем произвольную матрицу. Обратная матрица задается деление 1 на матрицу либо возведение в степень -1.

> M:=matrix([[5,3,4],[2,5,1],[6,2,4]]);



> b:=linalg[transpose](M);



> x:=evalm(b/linalg[det](M));



Для транспонирования матрицы мы используем ответ, полученный в предыдущем задании. Транспонируем матрицу функцией transpose из той же среды что и det , в скобках пишем матрицу которая нам нужна.

> M:=matrix([[5,3,4],[2,5,1],[6,2,4]]);



> b:=linalg[transpose](M);




Приведение к верхнетреугольному виду происходит функцией gausselim и в скобках матрица нужная нам.

gausselim(A);

> M:=matrix(3,3,[[8/11,-3/11,-2/11],[-1/11,8/33,-2/33],[-1/11,-1/11,3/11]]):gausselim(M);



1.4 Визуализация вычислений (двухмерная и трехмерная графика)

А) В среде Matlab построить график функции 1 из задания 1.

Графики рисуются функцией plot(в скобках указываются оси).

Точки от 1 до 3, М=10.


>> x=1:0.2:3;

>> y=cot(x)+x.^2;

>> plot(x,y)




Б) В среде Matlab построить график функции 2, используя таблицу, полученную в пункте А) задания 2.

Необходимо подставить точки полученные в задании 2А.

>> x=[5.0000 6.8480 9.2240 12.1760 15.7520 20.0000 24.9680 30.7040 37.2560 44.6720];

>> y=x.^3+3*x.^2-x+2;

>> plot(x,y)




В) В среде Matlab построить обе кривые из задания 1 на одном графике.

Необходимо добавить новые переменные х1 и у1 и в команду plot, для того чтобы построить обе кривые на одном графике.

>> x=1:0.2:3;

>> y=cot(x)+x.^2;

>> x1=[5.0000 6.8480 9.2240 12.1760 15.7520 20.0000 24.9680 30.7040 37.2560 44.6720];

>> y1=x.^3+3*x.^2-x+2;

>> plot(x,y,x,y1)





Г) Считая, что второе слагаемое функции 1 из задания 1 зависит от y, а сама функция имеет вид z=z(x,y), в среде Matlab построить график трехмерной поверхности.

Для построения графика 3d нам необходима команда plot3При этом используется функция meshgrid генерирующая Х и У для построения 3d отображения, а функция mesh генерирует дополнительную сеть на рисунке.

>> x=1:0.2:3;

>> y=cot(x)+x.^2;

>> x=1:0.2:3;

>> [x,y]=meshgrid([1:0.2:3]);

>> z=cot(x)+x.^2;

>> plot3(x,y,z)

>> mesh(x,y,z)





Д*) Проделать аналогичные действия в Maple

В среде Maple,чтобы нарисовать рисунок нужно использовать команду plot (в скобках указывается функция и шаговый ход в данном случае от 1 до 3).

> plot(cot(x),x=1...3);



> plot(x^3+3*x^2-x+2,x=1...3);



2 кривых на одном графике

>plot([cot(x)+x^2,x^3+3*x^2-x+2],x=1...3);



3D график строится функцией plot3d в скобках указывается данная функция, функция shading=XYZ указывает переход цветов.

plot3d(cot(x)+x^2,x=1...3,y=-1...3,shading=XYZ);



1.5 Изучение алгоритмов и технологий решения алгебраических и трансцендентных уравнений

А) Считая функции задания 1 левыми частями уравнения вида f(x)=0, найти в среде Matlab их корни (при необходимости проведя отделение корней графическим способом).


>> y=solve('cot(x)+x^2=0')

y =


3.0333351651192716892426014062643


>> y=solve('x^3+3*x^2-x+2=0')


y =


[ -1/6*(540+12*1257^(1/2))^(1/3)-8/(540+12*1257^(1/2))^(1/3)-1]

[ 1/12*(540+12*1257^(1/2))^(1/3)+4/(540+12*1257^(1/2))^(1/3)-1+1/2*i*3^(1/2)*(-1/6*(540+12*1257^(1/2))^(1/3)+8/(540+12*1257^(1/2))^(1/3))]

[ 1/12*(540+12*1257^(1/2))^(1/3)+4/(540+12*1257^(1/2))^(1/3)-1-1/2*i*3^(1/2)*(-1/6*(540+12*1257^(1/2))^(1/3)+8/(540+12*1257^(1/2))^(1/3))]

Б) Написать программу, которая методом половинного деления будет искать корни данных уравнений на отрезке, вводимом с клавиатуры. Если корень отсутствует, должно выводиться соответствующее сообщение. Вид уравнения выбирает пользователь. Программа должна продолжать работу, пока пользователь желает проводить вычисления.

Программа 5

#include <math.h>

#include <iostream>

#include <conio.h>

using namespace std;

double f1(double x)

{

return 1/tan(x)+x*x;

}

double f2(double x)

{

return x*x*x-3*x*x-x+2;

}

double reshenie(double (*f)(double x),double a,double b,double E)

{

double c;

if((*f)(a)*(*f)(b)>0)

{

cout<<"kornei ne cywectbyet\n";

}

do

{

c=(a+b)/2;

if((*f)(c)==0) break;

if((*f)(a)*(*f)(c)<0) b=c;

if((*f)(b)*(*f)(c)<0) a=c;

}

while(abs(a-b)>=E);

return c;

}

void main()

{

char k;

double a,b,c,E;

int n=0;

k='n';

do

{

cout<<"BBeDuTE a= ";

cin>>a;

cout<<"BBeDuTE b= ";

cin>>b;

cout<<"BBeDuTE nofPEWHOCTb': ";

cin>>E;

while(n!=1 && n!=2)

{

cout<<"Vvedite nomer KOPEHb': ";

cin>>n;

}

if(n==1)

cout<<"KOPEHb= "<<reshenie(f1,a,b,E);

if(n==2)

cout<<"KOPEHb= "<<reshenie(f2,a,b,E);

cout<<"\nContinue????(y/n) ";

cin>>k;

}

while(k=='y');

}



В*) Проделать аналогичные действия в Maple.


Нахождение корней

> fsolve(1/tan(x)+x^2);



> fsolve(x^3+3*x^2-x+2);




1.6 Изучение алгоритмов и технологий решения систем алгебраических и трансцендентных уравнений


А) В среде Matlab реализовать решение СЛАУ методом Крамера и методом обратной матрицы (k – номер варианта)




Необходимо найти частные определители, образованные заменой коэффициентов при к-том неизвестном системы уравнений на коэффициенты правых частей уравнений. Также необходимо найти главный определитель матрицы.

^ Метод Крамера

>> dx1=[26,3,4,5;14,7,8,7;11,1,3,5;13,-3,-4,-5];

>> dx2=[2,26,4,5;4,14,8,7;6,11,3,5;6,13,-4,-5];

>> dx3=[2,3,26,5;4,7,14,7;6,1,11,5;6,-3,13,-5];

>> dx4=[2,3,4,26;4,7,8,14;6,1,3,11;6,-3,-4,13];

>> D=[2,3,4,5;4,7,8,7;6,1,3,5;6,-3,-4,-5];

>> x1=det(dx1)/det(D);

>> x2=det(dx2)/det(D);

>> x3=det(dx3)/det(D);

>> x4=det(dx4)/det(D);

>> X=[x1,x2,x3,x4]


X =

4.8750 55.5250 -76.5500 31.1750

Для вычисления методом обратной матрицы системы уравнений необходима матрица коэффициентов системы уравнений; В-вектор свободных членов; Х-вектор неизвестных Метод матрицы. Задаем левую часть уравнения в матрице и ответ в векторе производим нахождение обратной матрицы и полученную матрицу перемножаем с вектором-ответом.


Обратная матрица

>> D=[2,3,4,5;4,7,8,7;6,1,3,5;6,-3,-4,-5];

>> B=[26;14;11;13];

>> X=inv(D)*B


X =


4.8750

55.5250

-76.5500

31.1750


Б) В среде Matlab реализовать решение системы нелинейных уравнений (k – номер варианта)




Используем функцию solve, в переменную у записываем данные нам уравнения в одинарных кавычках через запятую. Выводится ответ в виде списка. Затем необходимо ввести общую переменную «у» и имя переменной нужно подсчитать.

>> Y=solve('13*x-10+sin(13*x+y+z-10)/20','y-sin(13*x+y+z-10)/30','z+sin(13*x+y+z-10)/40')

Y =


x: [1x1 sym]

y: [1x1 sym]

z: [1x1 sym]

>> Y.x


ans =10/13


>> Y.z


ans =0


>> Y.y


ans =0

В*) Проделать аналогичные действия в Maple.

Методом Крамера в несколько переменных задаем все данные уравнения.Функция fsolve находит решение уравнений приближенно, но можно было использовать и просто solve ,которая находит точное значение. Каждому уравнению присваиваем символы a,b,c,d.Затем в функции fsolve необходимо указать имена уравнений и неизвесные в фигурных скобках

> a:=2*x+3*y+4*z+5*t=26:b:=4*x+7*y+8*z+7*t=14:c:=6*x+1*y+3*z+5*t=11:d:=6*x-3*y-4*z-5*t=13:

> fsolve({a,b,c,d},{x,y,z,t});





С помощью функции evalm(G^(-1)) происходит вычисление обратной матрицы для G.Затем с помощью функции linalg[multiply] ( )

( в скобках указывается обратная матрица и вектор) вычисляются неизвестные.

> B:=vector([26,14,11,13]);



> G:=matrix([[2,3,4,5],[4,7,8,7],[6,1,3,5],[6,-3,-4,-5]]);




> G:=matrix([[2,3,4,5],[4,7,8,7],[6,1,3,5],[6,-3,-4,-5]]):H:=evalm(G^(-1));




> linalg[multiply](H,B);



Б) В среде Maple реализовать решение системы нелинейных уравнений (k – номер варианта)


> f:=13*x-10+sin(13*x+y+z-10)/20=0:g:=y-sin(13*x+y+z-10)/30=0:q:=z+sin(13*x+y+z-10)/40=0:fsolve({f,g,q},{x,y,z});




1.7 Изучение алгоритмов и технологий решения обыкновенных дифференциальных уравнений

А) В среде Matlab решить задачу Коши на отрезке [0, 1] и построить график полученного решения




ode23 (функция для решения задачи Коши) Функция Коши задается в

М-файле.

>> x0=0;xf=1;y0=0;

>> [x,y]=ode23('koshi',x0,xf,y0)



x =

0

0.0000

0.0002

0.0012

0.0062

0.0312

0.0772

0.1433

0.2312

0.3312

0.4312

0.5312

0.6312

0.7312

0.8312

0.9312

1.0000

y =


0

0.0001

0.0005

0.0025

0.0127

0.0668

0.1799

0.3706

0.6697

1.0628

1.5024

1.9802

2.4893

3.0239

3.5794

4.1520

4.5543


>> koshi(1,3)


ans =9


>> plot(x,y)



В М-файле

function Z=koshi(x,y)

y1=13.*x-2.*y+2;

Z=[y1];

Б*) В среде Maple получить аналитический вид решения ОДУ и решение задачи Коши, построить график.

В Maple задается переменная eqn для нахождения производной данного уравнения равного нулю.Потом функцией dsolve находятся корни решения дифференциального уравнения.


> restart;eqn:=diff(y(x),x)-(13*x-2*y(x)+2)=0;



> d1:=dsolve(eqn,y(x));



> restart;

> dsolve({diff(y(x),x)-(13*x-2*y(x)+2)=0,y(0)=0},y(x));



> plot(13/2*x-9/4+9/4*(exp(-2*x)),x=-2...2);




1.8 Изучение алгоритмов и технологий решения систем обыкновенных дифференциальных уравнений

А) В среде Matlab решить задачу Коши на отрезке [0, 1] и построить график полученного решения




>> t0=0;tf=1;y0=[0,0,0];

>> [t,P]=ode23('koshi2',t0,tf,y0)

t =

0

0.0000

0.0002

0.0012

0.0051

0.0089

0.0134

0.0193

0.0255

0.0316

0.0376

0.0443

0.0520

0.0606

0.0703

0.0811

0.0930

0.1063

0.1208

0.1367

0.1540

0.1727

0.1929

0.2145

0.2374

0.2617

0.2873

0.3141

0.3420

0.3710

0.4009

0.4317

0.4632

0.4954

0.5282

0.5615

0.5952

0.6293

0.6637

0.6984

0.7332

0.7683

0.8035

0.8388

0.8742

0.9098

0.9453

0.9810

1.0000



P =


1.0e+003 *


0 0 0

0.0000 -0.0000 0.0000

0.0000 -0.0000 0.0000

0.0000 -0.0000 0.0000

0.0000 -0.0000 0.0000

0.0000 -0.0000 0.0000

0.0000 -0.0000 0.0000

0.0000 -0.0000 0.0000

0.0001 -0.0000 0.0000

0.0001 -0.0000 0.0000

0.0001 -0.0000 0.0000

0.0001 -0.0000 0.0000

0.0001 -0.0001 0.0000

0.0002 -0.0001 0.0000

0.0002 -0.0001 0.0000

0.0002 -0.0002 0.0000

0.0003 -0.0003 0.0000

0.0003 -0.0003 0.0000

0.0004 -0.0005 0.0000

0.0005 -0.0006 0.0001

0.0006 -0.0009 0.0001

0.0007 -0.0012 0.0001

0.0009 -0.0016 0.0002

0.0011 -0.0021 0.0003

0.0013 -0.0028 0.0004

0.0016 -0.0037 0.0005

0.0020 -0.0050 0.0008

0.0026 -0.0067 0.0011

0.0033 -0.0089 0.0015

0.0042 -0.0119 0.0021

0.0053 -0.0158 0.0030

0.0069 -0.0211 0.0041

0.0089 -0.0282 0.0057

0.0116 -0.0376 0.0078

0.0152 -0.0503 0.0107

0.0200 -0.0671 0.0146

0.0263 -0.0897 0.0198

0.0348 -0.1199 0.0270

0.0461 -0.1604 0.0366

0.0612 -0.2145 0.0495

0.0814 -0.2871 0.0669

0.1085 -0.3844 0.0902

0.1448 -0.5149 0.1217

0.1934 -0.6898 0.1639

0.2585 -0.9243 0.2207

0.3458 -1.2389 0.2969

0.4629 -1.6608 0.3993

0.6200 -2.2267 0.5367

0.7249 -2.6048 0.6286


>> plot(t,P)




function A=koshi(t,P);

y1=13.*t+P(1)-2.*P(2)+2;

y2=10.*t-26.*P(1)+P(2);

y3=t-2.*P(2);

A=[y1;y2;y3];

Б*) В среде Maple получить аналитический вид решения системы ОДУ и решение задачи Коши, построить график.

Функция odtest отвечает за проверку решения и правильности ответа.


> eqn1:=diff(x(t),t)=13*t+x(t)-2*y(t)+2,diff(y(t),t)=10*t-26*x(t)+y(t), diff(z(t),t)=t-2*y(t);



> eqn2:=y(0)=0,x(0)=0,z(0)=0;



> sol1:=dsolve({eqn1,eqn2},{x(t),y(t),z(t)});













> plot({ exp((1+2*13^(1/2))*t)*(-209/1734*13^(1/2)-241/867)+(209/1734*13^(1/2)-241/867)*exp((1-2*13^(1/2))*t)+482/867+116/17*t, -1/13*exp((1+2*13^(1/2))*t)*(-209/1734*13^(1/2)-241/867)*13^(1/2)+1/13*(209/1734*13^(1/2)-241/867)*13^(1/2)*exp((1-2*13^(1/2))*t)-209/867+11/17*t, -215/34*t^2-2*(-209/1734*13^(1/2)-241/867)*exp((1+2*13^(1/2))*t)/(1+2*13^(1/2))-2*(209/1734*13^(1/2)-241/867)*exp(-(-1+2*13^(1/2))*t)/(1-2*13^(1/2))-964/867*t-9904/44217},t=-2...2);




1.9 Изучение элементов теории интерполяции

А) Пусть функция y=y(x) задана таблично (10 точек). Написать программу для вычисления значения этой функции в точках с помощью интерполяционного многочлена Лагранжа

.

Таблицу построить для функции 2 из задания 1 на отрезке [a, b] из задания 2. Сравнить значения, полученные с помощью интерполяционного многочлена, с точными значениями.

Программа 6

#include <math.h>

#include <iostream>

#include <conio.h>

using namespace std;


double a, b,h;

int M;


double f1(double x)

{

return x=4*x*x*x-x*x+3*x+2;

}


double Lagrange(double x)

{

int i,j;

double S, P;

double *A;

A = new double [M+1];

double *B;

B = new double [M+1];

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

{

A[i]=a+i*h;

B[i]=f1(A[i]);

}

S=0;

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

{

P=1;

for(j=0;j<=M;j++)

{

if(i!=j)

P=P*((x-A[j])/(A[i]-A[j]));

}

S=S+B[i]*P;

}

return S;

}


void main()

{

double x1,x2,x3;

cout<<"Vvedite a= ";

cin>>a;

cout<<"Vvedite b= ";

cin>>b;

cout<<"Vvedite M= ";

cin>>M;

h=(b-a)/M;

x1=a+h/2;

cout<<"x1="<<x1<<endl;

x2=a+9*h/2;

cout<<"x2="<<x2<<endl;

x3=b-h/2;

cout<<"x3="<<x3<<endl;

cout<<"\nto4no dlya pervoi tochki: "<<f1(x1);

cout<<"\nOtvet dlya pervoi tochki: "<<Lagrange(x1);

cout<<"\nto4no dlya vtoroi tochki: "<<f1(x2);

cout<<"\nOtvet dlya vtoroi tochki: "<<Lagrange(x2);

cout<<"\nto4no dlya tret'ei tochki: "<<f1(x3);

cout<<"\nOtvet dlya tret'ei tochki: "<<Lagrange(x3);

_getch();

}




Для решения данной задачи используется табличные данные, такие как а=1 ,b=2 ,M=10 .В начале программы задаем табличную функцию, которую следует разложить в ряд Лагранжа. Чтобы выполнить поставленную задачу следует ввести два динамических массива A[i] и B[i]. Так как у нас есть специальные формулы для решения ряда Лагранжа, используем их («h=(b-a)/M», «A[i]=a+i*h», «B[i]=f1(A[i])», «P=P*((x-A[j])/(A[i]-A[j]))» и «S=S+B[i]*P»).В решении используется общее произведение и сумма. В начале цикла сумме присваивается значение 0, а произведению значение 1, т.к. при умножении на 0 весь ответ автоматически анулируется.

Б) Выполнить интерполяцию табличной функции в среде Matlab с помощью методов линейной интерполяции и интерполяции кубическими сплайнами.

Задаются шаги для х1 и в переменную у вписывается данная функцию.

>> syms x;

>> syms x1;

>> syms y;

>> x1=1:0.2:3;

>> y=x.^3+3*x.^2-x+2;

>> subs(y,x,x1);

>> y1=subs(y,x,x1);

>> x0=1:0.2:3;

Команда interp находит интерполяцию линейными сплайнами по заданным переменным.

>> interp1(x1,y1,x0,'linear')


ans =

Columns 1 through 5


5.0000 6.8480 9.2240 12.1760 15.7520


Columns 6 through 10


20.0000 24.9680 30.7040 37.2560 44.6720


Column 11


53.0000

Команда interp находит интерполяцию кубическими сплайнами по заданным переменным.

>>interp1(x1,y1,x0,'cubic')


ans =


Columns 1 through 8


5.0000 6.8480 9.2240 12.1760 15.7520 20.0000 24.9680 30.7040


Columns 9 through 11


37.2560 44.6720 53.0000


В*) Проделать аналогичные действия в Maple.

Интерполяция находится командой interp.

Пишется команда interp и в скобках задается узловые точки.

> X:=[0,1,2,3,4,5]:Y:=[0,1,4,3,2,1]:f:=interp(X,Y,x);



В Maple интерполяция сплайнами осуществляется командой spline.

Для линейной интерполяции задается команда spline,а затем в скобках указываются узловые точки и команда linear(линейная интерполяция)

> fq:=spline(X,Y,x,linear);



Для интерполяции кубическими сплайнами задается команда spline,а затем в скобках указываются узловые точки и команда cubic (кубичкская интерполяция)

> fq1:=spline(X,Y,x,cubic);


2. Правила техники безопасности


При работе с компьютером запрещается:

а) часто вкл и выкл компьютер без необходимости;

б) прикасаться к экрану и к тыльной стороне блоков компьютера;

аботать на средствах вычислительной техники и периферийном оборудовании мокрыми руками.

в) работать на средствах вычислительной техники и периферийном оборудовании имеющих нарушение целостности корпуса, нарушение изоляции проводов, неисправную индикацию включения питания, с признаками электрического напряжения на корпусе;

г) класть на средства вычислительной техники и периферийное оборудование посторонние предметы;

д) после окончания работы необходим о обесточить все средства вычислительной техники и периферийные устройства.


Заключение


В течении учебной практики я изучила первичные сведения и познакомилась со спецификой практической деятельности по избранной специальности.

Основной целью учебной практики являлась подготовка студентов к осознанному и углубленному изучению общепрофессиональных и специальных дисциплин и привитие им практических профессиональных умений и навыков по избранной специальности.

Основными задачами учебной практики являлись:

формирование навыков работы с системой компьютерной алгебры Matlab;

формирование навыков создания описания и формальной постановки задачи, а также ее алгоритмизации;

закрепление навыков процедурного программирования на языке С++ в среде MS Visual Studio;

По мере прохождения практики я познакомилась с особенностями работы в среде Matlab ,освоил наиболее распространенные средства среды Matlab для выполнения различных математических вычислений;

Научилась выполнять формальную постановку задачи на основе текстового описания, а также выполнять ее дальнейшую алгоритмизацию реализовывать основные методы компьютерной математики на алгоритмическом языке и языке программирования С++


Список литературы

  1. Дзундза А.И., Гремалюк М.Д, Моисеннко ИА., Нескородев Р.Н.,

  2. Прийменко С.А. Программирование в системе Мар1е. Д. ДонГУ, 1999

  3. Васильев А.Н. Мар1е 8. Самоучитель. М„ “ВИЛЬЯМС".-2003.

  4. Говухнн В. Н.. Цибулин В. Г. Введение в Мар1е.

  5. Математический пакет для всех. М-: "Мир".-1997,

  6. Манзон Б.П. Мар1е V Ро\\'ег ЕсШюп. М.:"Филинъ".-1998.

  7. Прохоров Г. В„ Леденев М А., Колбеев В, В. Пакет символьных вычислений Мар1е V.-М.:^'Петит",-1997.

  8. Андриевский Б., Фрадков А. Избранные главы теории автоматического управления с примерами на языке Ма11аЬ.СПб.: Наука, 1999.

  9. Воробьева Г. П., Данилова А. П. Практикум по вычислительной математике. — М.: Высшая школа, 1990.

  10. Гнеденко Б. В., Коваленко И. Н. Введение в теорию массового обслуживания. —М.: Наука, 1987.

  11. Гультяев А. Визуальное моделирование в среде Ма11аЬ. Учебный курс. — СПб.: Питер, 2000.

  12. Гутср Р. С., Рсзниковский П. Т. Программирование и вычислительная математика, выпуск 2. — М.: Наука, 1971.

  13. Демидович Б. П., Марон И. А. Основы вычислительной математики.—М.: Наука, 1970.

  14. Дорф Р., Бишоп Р. Современные системы управления. — М.:Лаборатория базовых знаний, 2002.

  15. Дьяконов В., Круглов В. Математические пакеты расширения Ма11аЬ. Специальный справочник. —СПб.: Питер, 2003.

  16. Дьяконов В. Учебный курс. — СПб.: I [тер, 2001.

  17. Егоренков Д. Л., Фрадков А. Л., Харламов В. Ю. Основы математического моделирования. — СПб.: БГТУ,1996.

  18. Компьютер для студентов, аспирантов и преподавателей. Самоучтель, под редакцией В. Б. Комягина.— Можайск: Триумф, 2002.







Скачать файл (585 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации