«Ғ.ДАУКЕЕВ АТЫНДАҒЫ АЛМАТЫ ЭНЕРГЕТИКА ЖӘНЕ БАЙЛАНЫС УНИВЕРСИТЕТІ»
Коммерциялық емес акционерлік қоғам
«Автоматтандыру және басқару» кафедрасы
ЕСЕПТЕУ ГРАФИКАЛЫҚ ЖҰМЫС 1
Пәні : Моделирование процессов и систем в среде MATLAB
Тақырыбы: Функцияларды аппроксимациялау
Мамандығы: 6В07125 Биотехнические и медицинские системы и аппараты
Орындаған:
Тобы:
Нұсқа: 1
Қабылдаған:
___________ __________________ «___» ___________ 2023 ж.
(бағасы) (қолы)
Алматы 2023
№1 Функцияларды аппроксимациялау
Жұмыс мақсаты: ең кіші квадраттар әдісмен функцияларды жуықтау процедурасын үйрену.
1.4 Жұмысты орындау тәртібі
1. **Функция мен интервалды анықтаңыз**
Біз `f(t) = t - sin(t)` функциясын анықтап, интервалды таңдауымыз керек. `[0, 2*pi]` аралығын таңдадық делік.
``` Matlab
t = linspace(0, 2*pi, 10); % 0 және 2*pi арасында бірдей аралықтағы 10 нүкте жасайды
f = t - sin(t); % Функция жуықтау
```
2. **Жүйенің коэффициенттерін есептеңдер**
Содан кейін полиномдық қисық фитингті пайдаланып функцияны жуықтаймыз. Ол үшін MATLAB жүйесінде «полифит» функциясын пайдалануға болады.
``` Matlab
p1 = полифит(t,f,1); % 1-ші тапсырыс
p2 = полифит(t,f,2); % 2-ші рет
p3 = полифит(t,f,3); % 3-ші рет
p4 = полифит(t,f,4); % 4-ші рет
```
3. **Көпмүшелік функцияны табыңыз**
Коэффициенттерді тапқаннан кейін оларды көпмүше түрінде жаза аламыз:
``` Matlab
syms x;
poly1 = poly2sym(p1, x);
poly2 = poly2sym(p2, x);
poly3 = poly2sym(p3, x);
poly4 = poly2sym(p4, x);
```
Әрбір көпмүшені «поливал» функциясы арқылы бағалауға болады.
4. **Графиктерді құру**
Келесі қадам салыстыру үшін осы функцияларды сызу болады. Ол үшін MATLAB-та `plot` функциясын пайдалануға болады:
``` Matlab
fplot(поли1, [0, 2*pi]); күте тұр
fplot(поли2, [0, 2*pi]); күте тұр
fplot(поли3, [0, 2*pi]); күте тұр
fplot(поли4, [0, 2*pi]); күте тұр
сюжет(t,f,'o'); ұстаңыз
легенда('1-ші ретті','2-ші ретті','3-ші ретті', '4-ші ретті', 'бастапқы функция')
```
5. **Жақындау дәлдігі**
Жақындаудың дәлдігін анықтау үшін квадрат қалдықтардың қосындысын немесе орташа квадраттық қатені (RMSE) пайдалануға болады:
``` Matlab
err1 = sqrt(орташа((поливаль(p1,t) - f).^2));
err2 = sqrt(орташа((поливаль(p2,t) - f).^2));
err3 = sqrt(орташа((поливаль(p3,t) - f).^2));
err4 = sqrt(орташа((поливаль(p4,t) - f).^2));
```
6. **Салыстыру**
Соңында әртүрлі дәрежедегі көпмүшеліктерді салыстыруға болады:
``` Matlab
дисп(поли1);
disp(поли2);
disp(poly3);
disp(poly4);
fprintf("Қате (1-ші рет) = %.4f\n", err1);
fprintf("Қате (2-ші рет) = %.4f\n", err2);
fprintf("Қате (3-ші рет) = %.4f\n", err3);
fprintf("Қате (4-ші рет) = %.4f\n", err4);
```
Осы MATLAB кодын қажеттіліктеріңізге сәйкес бейімдеңіз. Жоғары ретті көпмүше қажет болса, «полифит» функциясында дәрежені арттыруға болады. Маңызды ескертулердің бірі - көпмүшенің сәйкестігі реті артқан сайын жақсаруы мүмкін, бірақ көпмүшенің реті тым жоғары болса, артық сәйкестендіру орын алуы мүмкін.
Достарыңызбен бөлісу: |