Лабораторная работа №1 Вычисление функций на отрезке(табуляция) и построение графиков в

advertisement
Лабораторная работа №1
Вычисление функций на отрезке(табуляция) и построение графиков в
среде MATLAB и MATHCAD
Цель : Приобретение практических навыков табуляции функций и построения графиков
Табуляция, т.е. вычисление значений функций в точках и визуализация
т.е. представление в виде графиков и диаграмм является важной составной
частью компьютерной математики. В частности визуализация необходима
для решения уравнений и неравенств, систем уравнений и задач на
экстремум.
1. MATLAB
Для построения графика одномерной функции используется функция
plot(x,y,s), где s –вектор параметров который определяет цвет
графика, тип точек, тип линий. В частности - красный, ‘y’-желтый
Например:
Plot(x,y, ‘r’)
Функция plot позволяет строить несколько графиков в одной
плоскости. В этом случае формат следующий:
Plot(x,y1,s1,x,y2,s2……)
Рассмотрим табуляцию одномерной функции. Как известно интервал в
MATLABе задается следующим образом а:h:b
>> x=-5:0.2:5;
>> y=x.^2;
>>Z=[x;y]’
>> plot(x,y)
1
Рассмотрим трехмерную графику в MATLABе. Для создания 3-х мерного
графика функции z=f(x,y), необходимо иметь матрицу значений функции z в
точках x и у.
Это можно сделать с помощью специальной функции MATLABа
[X,Y]=Meshgrid(x,y)
[X,Y]=Meshgrid(1:0.2:1.6,12:0.5:14)
После того как матрица значений функции будет сформирована можно
выполнить построение графика с помощью функции plot3(x,y,z,s), где S –
вектор параметров задающий формат графика.
Пример. Рассмотрим конкретный пример z=x2+y2, x=[-4,4] с шагом 0.1 и y=[4,4] с шагом 0.1
>>[x,y]=meshgrid(-4:0.1:4,-4:0.1:4);
>>z=x^2+y^2;
>>>>plot3(y,x,z)
2
2.MATHCAD.
Рассмотрим построение 2-D графика
x:=0,0.5..10
f(x)=x2+sin(x)
Для табуляции достаточно выполнить
x=
y=
Появится таблица значений
Для построения графика на линейке графиков выбрать шаблон 2-D
графика и проставить вдоль осей имена аргумента и функции x и y
3
2
x  0  0.5  10
f ( x)  x  sin ( x)
f ( x) 
x
0
0
0.729
0.5
1.841
1
3.247
1.5
4.909
2
6.848
2.5
9.141
3
11.899
3.5
15.243
4
19.272
4.5
24.041
5
29.544
5.5
35.721
6
42.465
6.5
49.657
7
57.188
7.5
100
f ( x)
50
0
0
5
10
x
Рассмотрим построение 3-D графика
Предварительно должна быть выполнена табуляция функции, для этого
можно использовать специальную функцию Createmesh
Пример.
f(x,y)=sin(x2+y2)
M=createmesh(f,-1.5,1.5,-1.5,1.5), после чего аналогично активизировать
шаблон 3-D графика и проставить в нужном месте M.
rer
4
2
f ( x y )  sin x  y

2
M  CreateMesh ( f  1.5  1.5  1.5  1.5)
M
Задания для индивидуального выполнения
1. Выполнить табуляцию и построить график ( Matlab, MathcaD) согласно
порядкового номера.
Отрезок
f(x)
1.
2.
3.
[0,6]
[1,4]
4-хx2+
[1,4]
-16
4.
[-3, 3]
-1
5.
2
-x-0.5
[0,4]
6.
[-1,5]
7.
8.
[1,9]
[0,3]
9.
[-3, 3]
10.
[2,4]
11.
[-1,2]
5
12.
[-1,6]
13.
[l,4]
14.
[-1,7]
15.
[1,5]
16.
[-4,2]
17.
[-4,-1]
18.
[-2, 4]
19
y
22
23
24
y
[1, 10]
x2  4
3
x  ex
3
2
sin x  cos x
2
cos x 2  tgx
4
x 2  x sin x
y  ln
tgx  cos 2 x
y
x 2  5x  6
3
[2, 20]
x  ln 3 x
3
y
[2, 12]
x 3  ln x 2
y
20
21
x 2  x cos x 3
x 3  tgx 2
x  cos x
2
[0, 15]
[1, 20]
[0, 15]
2
x 2  5x  6
y  tg
cos 3 x  tgx 2
3
25
[0, 10]
2. Выбрать произвольную 3- D функцию и построить ее график
Лабораторная работа №2
6
Решение уравнений и систем уравнений в графиков в среде MATLAB и
MATHCAD
Цель Приобретение практических навыков решения уравнений и систем уравнений
Все уравнения можно разбить на алгебраические, т.е. вида
an X n  an1 X n1  ...  a0  0 .
и трансендентные или неалгебраические.
1.MATLAB
Для
решения
алгебраических
уравнений
в
MATLAB
имеется
специальная функция roots. Аргументами являются коэффициенты уравнения
Пример. Решить уравнение
2x5-3x4+5x3+x2+7x+3=0
>>y=roots([2-3 5 1 7 3]);
y=1.2+1.4i
1.2-1.4i
-0.27+1.01i
-0.27-1.01i
-0.394
2. MATHCAD
Используется
функция
polyroots.
Аргументами
является
массив
полинома. Сформируем в МathCade вектор коэффициентов в обратном
порядке
7



a  




3
7
1
5
3
2








y  polyroots ( a)



y



0.394
0.272  1.01i
0.272  1.01i
1.219  1.411i
1.219  1.411i







Поэтому для решения трансцендентных
уравнений применятся
двухэтапная процедура. На 1-ом этапе строится график функции f (x) и
определяется наличие решений и если они есть интервал их изоляции.
Решения трансцендентных уравнений в MatLabe
Для решения в MatLabe имеются 2 – функции
Solve ()
Fzero ()
Solve (´f(x)´, x)
х- неизвестное
f(x) – уравнение
1) sin x+ x-1=0
>>Y=solve (´sin(x)+x-1=0´, x)
Y=0,51
Функция solve в ряде случаев позволяет определит все корни уравняется без
указания
2) 2x-4x+3=0
Y=solve (´2.x-4x+3=0´)
8
Y=1.478
3.413
Найдены оба корня.
Функция solve позволяет i-комплексное решение
3) sinx+lnx+ex-1=0
>> Y=solve (´sin(x)+log(x)+exp(x)-1=9
Y=3.055-1.71i
Вместе с тем функция solve не обнаружила и не выдала корень х=0.407
Достоинством функции solve является то, что она позволяет решения уравнения
задач в аналитическом виде.
Дано уравнение:
2x-3(a-b)=0
Y=solve (´2. x-3(a-b)=0´)
Y=log((3-3b)/log(2))
Недостатком функции solve, что она не требует информации о настоящим значение
корня или интервала изоляция. Поэтому во многих случаях она не заходит всех корней.
В следующим таблице прив. число реальных корней и корень, найден: solve.
x2+4ּsinx-2=0
кол-во корней
x
2
0.463
2sin (lnx)=0
6
1
ln(4-2x)+x2-2=0
3
1.27
Имеет несколько форматов записи
fzero (´f(x) ´, x)
fzero (´f(x) ´, [x1,x2])
fzero (´f(x) ´, x, tol, trace)
fzero (´f(x) ´, [x1, x2], tol)
Здесь f(x) –уравнение
х- нач. приближение
[x1, x2]- обл. изоляции корня
tol – заданная погрешность
TRACE – значение корня на каждой итерации:
Пример 1.
2x-4x+xsinx=0
Известно, х находится в р-не точки х=1
9
>> Y=fzero (´2^x-4x+xsin(x)´, 1)
У=0.34
Пример:
ln(4-2x)+x2-2=0
Известно также, что корни находятся на интервале изоляции [1, 1.5]
>> Y=fzero (´log(4-2x)+x^2-2´, [1, 1.5])
У=1,27
Для определения всех веществ корней, необходимо выполнить функции frezo всех
интервалов изоляции.
Пример 3. Решить уравнение.
ln (4-2x)+x2-2=0 с точностью 0.0001. На интервале [1; 1,5]
У=fzero (log(4-2x)+x^2-2, [1,1,5]0.0001)
|f(x)|  =0.0001
Y=1.2784
x=0.402
Решить указанные уравнение, с выдачей информации о каждой итерации.
Число итераций < 50
>>Y=fzero(log(4-2 x)+x^2-2, [0, -1.8], 50)
y=
N
x
f(x)
1
0
-0.61
2
-1
0.79
5
-0.59
-0.0006
Таким образом функция fzero позволяет определит все вещ. корни уравнения, но
fsero не вып. комплекс и корни.
Таким образом, стратегия решения трансцендентных уравнений в MatLabe
следующая:
1. С помощью графиков определит интервалы изоляции корней.
2. С помощью вычисл. Все имеющиеся веществ. корни.
3. С помощью функции fsolve определить комплексные решение трансцендентных
уравнений в MatCad.
В MathCade имеется функция Root и 2 формата функции Root.
Root (f(x), x)
10
Root (f(x), x, a, b)
Где f(x) –левая часть уравнения f(x)=0
х-нач. приближение
a, b – интервал изоляции.
Рассмотрим пример:
Решить уравнение e x/5-2(x-1)2=0
1. Построить график для определения интервала изоляции.
2
 
-2 -1

1

2

3

4

5

6
Функция имеет 3 интервала изоляции: [0, 1], [1,2], [5,6]
f (x) 
ex
 2  ( x  1) 2
5
Root (f(x), x, 0, 1) = 0.578
Root (f(x), x, 1, 2)= 1.76
Root (f(x), x, 5, 6)
Функция Root может определить и комплексные решения.
F(x)=x2+1
x=0.5
Root (x2+1,x)=i
x=-0.5
Root (x2+1,x)=-i
x=-i
способ:
В MatLabe методы можно найти в одной из следующих форм:
>> x=A-1B или >> x=A\B или >>х=inv(A) B
Например:
11
2x1  x 2  3x 3  1

x1  x 2  2x 3  18

7 x1  5x 2  x 3  3
>>A=[2 1-3; 1-12; 751],
>>B=[1; 18; 3]
>>x=inv(A) B
x= 6.7111
-9.0222
1.1333
Решения нелинейных систем уравнений в MatLabe.При решении нелинейных систе
также полезно построение графиков всех уравнений входящих в систему, если это
возможно( 2-мерный случай и каждое уравнение разрешимо относительно одной из
переменных)
Для этого используется fsolve (`file, x0), где file –имя M-файла, где сохраняются
описания уравнения системы, х0-нач. значение.
x1  x 2  x 3  6.5


4
x1  x 2  x 3  167

x1  x 62  x 3  1470
Предварительно пишется edit MatLaba или NotePad под именем MyFun M. Должно
сохранятся в рабочем папке WORK. С помощью Edit пробел myfun M и нажать кнопку
Save. В этом файле записана следующая текст Function f=myfun(x)
f=[x(1)x(2)+x(3)-6.5;
x(1)x(2)^4+x(3)-167; x(1) x(2)^6+x(3)-1470]
Решение:
xo=[1;1;1];
 x=fsolve (`myfun', xo)
xo=2.1512
2.9678
0.1157
Решение линейных систем уравнений в MathCad-e.
Для решения линейных систем используется 2 метода.
1.матричный (м.е.) используется уравнения
12
x=A-1B
Пример: используется функции solve.
Дана линейная система
3x1  x 2  5

2 x 1  x 2  x 3  0

2x1  x 2  4x 3  15
Для ее решение в MathCade используя линейку кнопок матрица и правую часть.
 3  10 



A : 2  1  1


 2  14 


5 
 
B :  0 
 
19 
 
x=A-1B
 2
 
x  1 
 
3
 
 0.476 



x   3571


 2.619 


Можно выполнить проверку записав следующее:
 0
 
A  x  B   0
 
 0
 
0



0




15 
  1,776  10 
Эту же систему можно решить isolve
x:=isolve (A,B)
 2
 
x  1 
 
3
 
13
Решение нелинейных с уравнений в MathCade. Для этого используется
minerr find. Для этого имеется спец. вычисл. Блок со следующей
структурой:
Нач. приближение.
Given
Уравнение
Ограничение
Операторы с ф-мия Find или minerr. Нач. условия определ. Нач. знач. Искол.
значений и зад. с помощью оператора присваивания.
Уравнения записются с применением жирного знака равенства. Ограничения могут
быть записаны в виде равенств и неравенств, а также могут отсутствовать.
Формирование.
При формировании используются также знаки    = ..
Функция find (v1, v2,..,vn) возвращает значение переменных, являющихся решением
системы. Функция minerr (v1, v2,….,vn) пытается найти максимальное приближение к
существующему решению, путем минимизации средн. квадратической погрешности.
Пример 1.
x 3  sin y  25

 y 2  cos x  27
х:=1
y:=1
Given
x3+sin(y)=25
y2-cos(x)=27
x
  : find ( x, y)
 y
 
x=2.96
y=5.101
Пример 2.
f(x,y):x4+y2-3
j(x,y):=x+2y
x:=1
y:=1
Given
14
f(x,y)=0
j(x,y)=0
v:=find (x,y)
  1,269 

v= 
  0,635 


Пример 3.
x:=1
y:=1
Given
x2+y2=1
x>0.1
y<=0.2
  0,042 

MINERR (x,y)= 
  0,085 


Задания для индивидуального выполнения
1. Согласно порядкового номера
А) решить алгебраическое уравнение (колонка 1) в Matlab и Mathcad
B) решить трансцендентное уравнение (колонка 2) ) в Matlab и Mathcad
С) решить нелинейную систему (колонка 3) ) в Matlab и Mathcad
Варианты заданий
№
1
2
3
1
3x4+4x3-12x2-5=0
ln(x)+(x+1)3=0
sin(x+1)-y=1.2
2x+cos( y)=2
2
2x3-9x2-60x+1=0
x2x=1
tg(xy+0.4)= x2
0.6 x2 +2 y2=1
3
x4-x-1=0
x+cos(x)=1
cos(x-1)+y=0.5
x-cos(y)=3
4
2x4 - x2-10=0
x+lg(1+x)=1.5
sin(x)+2y=2
cos(y-1)+x=0.7
5
3x4+8x3+6x2-10=0
lg(2+x)+2x=3
cos(x-1)+y=1
sin(y)+2x=1.6
6
x4 -18x2+5x-8=0
2x+5x-3=0
sin(x+1)-y=1
2x+cоs(y)=2
7
x4+4x3-12x2+1=0
5x+3x =0
sin(x-y)-xy=0
x2- y2=0.75
8
x4 - x3-2x2+3x-3=0
3ex=5x+2
sin(x+y)-1.5xy=0
x2+ y2=1
9
3x4+4x3-12x2+1=0
5x=6x+3
sin(x-y)- xy+1=0
x2- y2=0.75
10
3x4-8x3-18x2+2=0
2ex+5x-6=0
y=1/(x3/2+1)
15
x2+ y2=9
11
2x4-8x3+8x2-1=0
2arctg(x)-x+3=0
x2+ y2=9
y=1+ e-x
12
2x4+8x3+8x2-1=0
(x-3)  cos(x)=1
x2+ y2=5
y=1-2 e-xy
13
x4-4x3-8x2+1=0
xx= 20-9x
x2+ y2=5
y= e-xy
14
2x4-9x3-60x2+1=0
x  lg(x)=1
sin(x-0.6)-y=1.6
3x-cos(y)=0.9
15
x5 +x2-5=0
tg3x=x-1
x2+ y2=6
y= e-x
16
3x4+4x3-12x2-7=0
5x =1+e-x
x3+ y3=6
y= e-x
17
3x4+8x3+6x2-11=0
5x =3-ex
x4+ y4=5
y= e-x
18
x4 -18x3-10=0
arctg(x2+1/x)=x
x2+ y2=1
sin(x+y)=1.2x
19
3x4-8x3-18x2+2=0
tg(0.55x+0.1)=x2
x2+ y2=1
sin(x+y)=0.2+x
20
x4 -18x -10=0
5x-6x =7
x+cos(y-1)=0.8
y- cos(x)=2
21
x4 +18x -10=0
5x-6x =3
x2+ y2=1
x3+ y3=2
22
x4 +18x3-6x2+x-10=0
5x =1+e-2x
x2+ y2=1
x - y3=0.5
23
x5 +12x3-6x2+x-10=0
7x-6x =2
x3+ y3=8
y=x3/2
24
3x5-8x3-18x2+2=0
5x =2+e-2x
x3+ y3=8
y=1+x3/2
Лабораторная работа №3
Матричные вычисления в среде MATLAB и MATHCAD
Цель : Приобретение практических навыков матричных вычислений
Матричные операции в Matlab
1. Ввод вектора-строки
>>A=[1 8 12 17];
2. Ввод вектора столбца
>> B=[1;2;-7;15];
3. Ввод матрицы (3X3)
>> C=[1 8 6;2 4 1;16 0 12]
16
C=
1 8 6
2 4 1
16 0 12
4. Нахождение размерностей матрицы
>>dd= size (c)
dd= 3 3
6. Ввод матрицы (3X2)
>> B=[2 3;4 6;7 0]
B=
2 3
4 6
7 0
7. Выделение подматрицы из матрицы, для этого используется символ :
B1=B(1,:) выделение 1-ой строки
DD=B(1:2,:) Выделение 1 и 2 строки
CC=B(:,1) выделение 1-го столбца
4. Произведение двух матриц
>> D=C*B
D=
76 51
27 30
116 48
5. Вычисление детерминанта
>> C= [1 8 6;2 4 1;16 0 12];
>> K=det(C)
K=
17
-400
6. Вычисление обратной матрицы
>> G=C^(-1)
G=
-0.1200 0.2400 0.0400
0.0200 0.2100 -0.0275
0.1600 -0.3200 0.0300
Матричные операции в MAThCAD
Для ввода матрицы необходимо записать имя матрицы и оператор
присваивания A:= на панели Матриц необходимо активизировать сивол
матрицы , в окне набрать значения размерностей матрицы, на рабочем листе
появится шаблон матрицы, необходимо заполнить ее значениями. Для
работы с матрицами необходимо установить значение 1 для специальной
системной переменной i ORİGİN , в этом случае индексация будет
производится с 1, в противном случае с 0.
ORIGIN  1

A  






2 3 4
A   1 0 2 


2 3 6
Для выделени подматрицы из матрицы необходимо пользоваться
специальной функцией submatix(A,i1,i2,j1,j2).
Misal
A matrisadan 1 cı sətri seçməq üçün aşağıdaki koddan istifadə etmək olar
B  submatrix( A  1  1  1  3)
B  (2 3 4)
Для вычисления суммы необходимо воспользоваться знаком суммы на
панели Calculus
18


Последовательно используя этот знак можно вычислять сложные суммы
Например для вычисления суммы элементов двух первых строк матрицы А
необходимо выполнить следующее
ORIGIN  1
2 3 4
A   1 0 2 


2 3 6
2
3
 
.
A
i j
 12
i1 j1
Для записи Ai,j необходимо воспользоваться знаком Xn с панели Matrix
Для вычисления среднего mean(), минимума -min(), максимума-max()
mean ( B)  3
min ( B)  2
max( B)  4
Задания для индивидуального выполнения
Выбрать вариант в соответствии с порядковым номером студента и
выполнить матричные вычисления в Matlab и Mathcad
1. Найдите сумму всех элементов матрицы A(3,5) и их число.
2.Найдите среднее для матрицы B(3,4)
3.Для матрицы A (4,3) найти min и max .
4. Для матрицы A(13, 10) Найти сумму элементов 1-го столбца и
минимум элементов 2-ой строки.
19
5. Для матрицы A(8,6) Найти общую сумму элеметов 1-ой строки и 2-го
столбца.
6. Для матрицы A(7,8) найти минимум 3 строки и максимум 4-го
столбца.
7. Для матрицы A(4,4) найти сумму элементов левой половины.
8. Для матрицы A(6,6) найти среднее правой половины матрицы.
9. Для матрицы A(8,8) найти максимум и минимум верхней половины.
10. Для матрицы A(6,6) найти минимум 2-х верхних строк.
11 Для матрицы.A(8,8) найти сумму элементов четных
12. Для матрицы A(6,6) найти среднее нечетных строк.
13. Для матрицы A(10,10) найти максимум верхней половины и
минимум нижней половины.
14. Для матрицы A(8,6) найти общую сумму 3 –го столбца слева и 2-ой
строки снизу.
15. Для матрицы A(8,4) найти минимум 2-ой строки сверху и 3-го
столбца слева
Лабораторная работа №4
Вычисление производных и интегралов в Matlab и МаthCad
Цель : Приобретение практических навыков вычисления производных и интегралов
Как известно, производные существуют всех непрерывных функций и могут быть
найдены соответствующим методом.
Существуют понятия порядка производных 1, 2, 3 и т.д.
Несмотря на это
существуют численные методы дифференцирования, которые
применяются когда функция задана таблично.
Численные методы можно разделить на 2 группы:
Методы использующие конечном разности, т.е. формулу f  
y
.
x
Метод аппроксимации и интерполяции полиномами.
Вычисление производных в MatLabе:
20
Для этого используется diff(a,x,n) порядок.
Предварительно, нужно определит все переменные c помощью syms.
 syms x, n;
y=xcos(x);
diff(y,x,1)
Ans=-sin(x) cosx(x)
dif(y, x, 3)
ANS = sin (x)x-3cos(x)
Функция diff может быть использован для численного нахождения производных
Dif(f) –где f-вектор. Значений задана таблично.
f=[0 0.998
0.1987
0.2935
0.3594
0]
d=dif(f)
d=0.0998
0.0988
d2=-0.0010 -0.0020
0.0969
-0.030
0.0939 0.0900]
-0.0039
Дифференцирование в MathCade:
Для дифференцирования функций в MathCade можно использовать 2 приема:
1. С помощью значков d/dx dn/dxn
2. После чего знак  и ответ выводится.
2 способ  исходная функция  выд. аргумент simbolуc variable Differente.
Задания для индивидуального выполнения
Выбрать вариант в таблице №3 в соответствии с порядковым номером
студента и найти производную в Matlab и Mathcad
Таблица № 3
21
22
f(x)
f(x)
1
11
2
12
3
13
4
14
23
5
15
6
16
7
17
8
18
9
19
10
20
Интегрирование в MatLabе
1. Аналитический метод:
Используется нахождение первообразной, с дальнейшими применением формулы
Ньютона – Лейбница.
Для неопределенные интеграла используется формула int(j(x)) и для определенные
интеграла int(j(x), a,b).
Для применения нужно использовать следующую технологию:
1. Определить все символьные переменные с помощью оператора syмs.
2. Определеть подынтегральную функцию.
3. Используя int- найти результат.
Пример 1. Раскрыть неопределенный интеграл.
 syms x;
y=x/(1+x2);
int(y)
ANS=1/2log(1+x2)
Пример 2. Найти неопределенный интеграл:
x
 (a  bx
2
)
dx
 syms x a b;
 y=x/(a+bx^2);
int (y)
24
 ANS =1/(2b) log(a+b+x2)
Пример 3. Вычислить определенный интеграл
5
x
1 x
2
dx
1
syms x;
 y=(x/(1+x^2));
 in (y, 1,5)
1
ANS =  log 13
2
Пример 4. Вычислит определенный интеграл символическим методом.
b
x
1 x
2
dx
a1
 syms a b x;
 y=x/(1+x^2);
iny (y, a, b)
ANS=½log(1+b2)-½ log(1+a2)
Численные методы вычисления интегралов в MatLabе.
1. Функция QUAD (`fun`, a, b) реализован. метод Симпсона, или метод парабол.
Пример 1.
5
 (e
x
 x 2  2 sin  s)dx
1
Решение y=exp(x)+x^2+2sin(x)-5’;
 quad (y, 1,5)
ANS =167,5415
Использование метода трапеций Trapzed (y)
Если функция задана аналитически, то нужна его затабулировать.
Пример 2.
y=[1, 3, 5, 7, 9]
 y=[1 3 5 7 9];
 trapz (y)
ANS = 20
25
Пример 3.
Функция задана аналитически
y(x)=x·ex+ln(x+1)
h=0.1
Решение
 x=1 : 0.1 : 10;
y=x. exp(x)+log(x+1);
trapz(y)
ANS = 4.065
Пример 4.
Метод Котеca.
Quad 8 (name, x1, x2)
Name функция x1, x2- пределы.
Интегрирования в Mathad-e.
Для вычисления первообраз. Можно исп. Значок интеграла в панели Calcus после
чего необходимо запись имя фамилия и знак символа .
2-ой способ – записать подинтегральную функцию выделить аргумент х, далее
Menu simbolic variable.
Пример.
2
 x dx 
x3
3
Для вычисления определенных интегралов необходимо использовать значок
определенного интеграла , записать подынтегральную функцию и пределы.
Если будет применен знак символического интегрирования, то будет использован
аналитический метод.
Если же будет использован знак = to вычисление будет производится численно по
методу Romberga,

 sin( x)dx  0
0
.
Задания для индивидуального выполнения
26
Выбрать вариант в таблице №4 в соответствии с порядковым номером
студента и вычислить интеграл в Matlab и Mathcad
Таблица №4
1
2
3
4
5
6
7
8
9
10
27
11
12
13
14
15
16
17
18
19
20
21
22
23
28
24
f(x)
[a, b]
f(x)
[a, b]
1
[0, 16]
11
[0,4
]
2
[0, 1]
12
[0,2
]
3
[0, 5]
13
[0,
]
4
[3, 5]
14
[6, 9]
15
[8, 12]
16
[6, 10]
5
[0,
]
[0,
]
6
7
[0, 4]
17
[0, 3]
8
[0, 2]
18
[1, 64]
9
[0, 4]
19
[0, 3]
10
[0, 5]
20
[0, 1]
Лабораторная работа №5
Решение дифференциальных уравнений и систем уравнений в среде Matlab и
Mathcad.
Цель : Приобретение практических навыков решения дифференциальных уравнений и
систем уравнений
29
Решение дифференциальных уравнений в Matlab
Имеется множество стандартных функций например dsolve (‘dy(x)’, ‘нач. усл.’)
Пример
dx
 0 .5 x
dt
с начальным условием x( 0 )  10.
>> x1=dsolve('Dx=-0.5*x','x(0)=10')
x1 = 10*exp(-1/2*t)
Эта система может использоваться для решения систем уравнений
Dsolve (‘df(x)’,’dg(x)’,’н.у.’)
Решить систему однородных дифференциальных уравнений
dx1
dx2
 0.5 x2 ,
 x1
dt
dt
с начальными условиями x1( 0 )  0, x2( 0 )  1
>> [x1,x2]=dsolve('Dx1=-0.5*x2','Dx2=3*x1','x1(0)=0','x2(0)=1')
x1 =
-1/6*6^(1/2)*sin(1/2*6^(1/2)*t)
x2 =
cos(1/2*6^(1/2)*t)
Решение в MathCad
В
MathCad имеется функция odesolve(x,tf,step) позволяет
решать линейные дифферинцальные уравнения методом РунгеКутта.
30
Аналогично ode 23 и ode 45 в Mathcad-е имеется ф-ия:
rkfixed(y,x1,x2, npoints,D), где
у- вектор начальных условий;
х1,х2- интервал интегрирования;
npoints- кол-во вычисляемых точек;
D- вектор правых частей системы.
Пример№ 3
31
Пример№4
32
33
Задания для индивидуального выполнения
Выбрать вариант в таблице №5 в соответствии с порядковым номером
студента и решить дифференциальное уравнение в Matlab и Mathcad
Таблица № 5
№
f(t, y)
t0
tk
y0
№
f(t, y)
t0
tk
y0
1
0
1
3
14
1
2
0
2
1
2
0
15
0
0.5
1
3
0
2
1
16
y2t
0
2
1
4
1
2
0
17
ye-2t
0
1
1
5
2
3
1
18
tye-2t
0
1
1
6
2
3
1
19
t2ye-2t
0
1
1
7
tg(t)/y2
0
/4
1
20
tg(t)/y
0
/4
1
8
ye2t
0
1
1
21
y2t2
0
1
1
34
9
0
1
1/e
22
y2 / t2
1
3
1
10
0
1
1/e
23
y ln(t) / t
1
3
1
11
0
1
0
24
y2 ln(t) / t
1
3
1
12
0
0.9
0
25
yet/2
0
1
2
13
0
1
3
26
ctg(t) / y2
/4
/2
1
35
Лабораторная работа №6
Решение задач аппроксимации в среде Matlab и Mathcad
Цель : Приобретение практических навыков решения задач аппроксимации
Аппроксимация в Matlab-e.
В Matlabe имеется функция для аппроксимации полиномами. Название функции :
polyfit(x,y,n), где
x-вектор значения аргументов,
y-вектор значений функций,
n-порядок полинома.
Пример: Найти полином 2-го порядка для аппроксимации данных:
y=a2*x2+a1* x+a0;
>> x=[0 0.3 0.8 1.1 1.6 2.3];
>> y=[0.6 0.67 1.01 1.35 1.47 1.25];
>> p=polyfit(x,y,2)
p=
-0.2942
1.0231
0.4981
Для превращения сравнительного анализа экспериментальных данных и полученных
по аппроксимирующей функции, необходимо вычислить её и построить график.
Для вычисления значений ф-ии полинома имеется спец функция:
polyval(р,x)
Здесь
x-интервал значения аргументов;
р- значения коэффициентов.
>> x1=0:0.1:2.8;
>> y1=polyval(p,x1);
>> plot(x,y,'0',x1,y1)
Для решения общей задачи аппроксимации, как линейной, так и нелинейной, в Matlabe
имеется спец. Ф-ия:
lsqcurvefit(f,x0,a,b)
Здесь а- вектор значений функций,
х0- стартовое значение параметров функции
f- аппроксимирующая, заданная пользователем.
36
Функция основана на известном методе Мак-Кварда минимизации функции многих
переменных. Этот метод относится к методу группы градиентных методов.
Практически, как и все градиентные методы, он сходится к начальному минимуму.
Пример: Задано значение экспериментальных данных:
>> a=[30,40,50,60,70,80,90,100,110,120];
>> b=[6.36 6.85 7.38 7.84 8.08 8.32 8.57 8.70 8.82 8.94];
(y=a2*x2+a1* x+a0)
>> x0=[1 1 1];
>> f=inline('x(3)*a.^2+x(2)*a+x(1)','x','a');
coef=lsqcurvefit(f,x0,a,b)
Нахождение аппроксимирующей функции в случае:
m
y 
 Ck  k( x) 
k 1
В Matlabe может быть реализовано путем прямого построения матриц системы
нормальных уравнений и е решения путем известных методов.
Использование операций, обратное деление матриц. Теоретическая ф-ия:
y=a0+a1*e-t+a2*t* e-t
>> t=[0 0.3 0.8 1.1 1.6 2.3]';
>> y=[0.6 0.67 1.01 1.35 1.47 1.25]';
>> x=[ones(size(t)) exp(-t) t.*exp(-t)];
>> a=x\y
a=
1.3983
-0.8860
0.3085
Значит ф-ия записывается :
у=1.3983-0.8860 e-t+0.3085t*e-t
Аппроксимация в Mathcade
В Mathcade имеется несколько ф-ий для решения задачи аппроксимации.
1) Аппроксимация линейной функции (линейная регрессия) выполняется с помощью двух
ф-ий:
( slope( x y)  )b
у=а+bx
( inteccept( x y)  )a
Пример:
37
T
x  ( 0 1 2 3 4 5 6 )
T
y  ( 4.1 2.4 3.0 4.3 3.6 5.2 5.9 )
slope( x y)  0.414
intercept( x y)  2.829
f( t)  intercept( x y)  slope( x y)  t
10
6
5
5
f( t )
f( x) 4
0
5
3
10
0
2
10
0
t
2
4
6
2) Полиномиальная
регрессия
A(x)=a+bx+cx2 +dx3
+.....
regress(x,y,k)
где к- порядок
полинома
x
T
Пример: x  ( 0 1 2 3 4 5 6 )
T
y  ( 4.1 2.4 3.0 4.3 3.6 5.2 5.9 )
k  2
s  regress ( x y  k)
 3 
 3 


2 

s
 3.602 
 0.514 


 0.155 
В Mathcade имеется ряд функций для аппроксимации специальных видов функций:
expfit(x,y,g)-Экспоненциальная регрессия , где
g-вектор коэффициентов (a,b,c)
lgsfit(x,y,g)-логическая регрессия , где
F(x)=
a
1  b e
 cx
logfit(x,y,g)- логарифмическая регрессия , где
f(x)=a*ln(x+b)+c
Пример:
1) экспонент регрессия
38
T
x  ( 0 1 2 3 4 5 6 )
T
y  ( 4.1 2.4 3.0 4.3 3.6 5.2 5.9 )
1
g   1 
 
1
c  expfit( x y  g)
 0.109 
c   0.548 


 3.104 
2) Регрессия общего вида
n
y 

k 1
Ck k( x)
Функция φ1 φ2 –задаются пользователем
Unfit(x,y,f)
Здесь f(x)- пользовательская функция
T
x  ( 0 1 2 3 4 5 6 )
T
y  ( 4.1 2.4 3.0 4.3 3.6 5.2 5.9 )


F( x)  






x 
x 
e 
1
x 1
Задание.
Найти оценки для параметров модели y= 0 +  1x +  2x2.
1.
x
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
y
0.4
0.3
1.0
1.7
2.1
3.4
4.1
5.8
x
4.5
5.0
5.5
6.0
6.5
7.0
7.5
8.0
y
7.7
9.4
11.4
13.6
15.6
18.6
21.2
24.1
2.
3.
39
x
0.4
0.8
1.2
1.6
2.0
2.4
2.8
3.2
3.6
y
0.43
0.94
1.91
3.01
4.0
4.56
6.45
8.59
11.15
x
4.0
4.4
4.8
5.2
5.6
6.0
6.4
6.8
y
13.88
16.93
20.47
24.15
28.29
32.61
37.41
42.39
x
1
2
3
4
5
6
y
2.11
2.45
2.61
2.73
2.75
2.81
x
0.3
0.6
0.9
1.2
1.5
1.8
y
4.39
4.75
4.98
5.11
5.12
5.18
x
1
2
3
4
5
6
y
0.1
0.21
0.43
0.51
0.62
0.81
6.
x
1.0
1.5
2.0
2.5
3.0
3.5
4.0
y
4.11
4.16
4.23
4.29
4.36
4.42
4.53
x
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
y
2.47
2.86
3.01
2.91
2.55
2.11
2.61
1.25
ƏDƏBİYYAT
1. Дьяконов В. Matlab 6. Учебный курс. – СПб.: Питер, 2001.
2. Дьяконов В.П. MathCAD 2000: Учеб. курс. СПб.: Питер, 2000.
40
Download