Интерполирование и аппроксимация функции. Полином пятой степени. Формирование вектора не зависимой переменной

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Содержание работы

Лабораторная №3

Интерполирование и аппроксимация функции.

Полином пятой степени.Задание1

polyfit

p=polyfit(x,y,n)

clc-очищаем командное окно

global var1; -объявляем глобальные переменные

global var2; -объявляем глобальные переменные

var1 = [1.67 2.20; 1.82 3.0; 2.0 4.0;2.07 4.5;2.1 5.0;2.11 6.20;2.13 8.0] – присваиваем значение переменной

var2=[1.94 3.0; 2.13 4.0;2.25 6.0;2.32 7.0;2.4 11.0;2.26 15.0] x2 = var1(:,1); - формирование вектора независимой переменной

y2= var1(:,2);-формирование вектора зависимой переменной

P2 = polyfit(x2,y2,5)-расчет коэффициента полинома 5 степени

F2= polyval(P2,x2) – вычисление значений полинома в заданных точках

graph1=plot(x2,y2,’k*’,x2,F2,’k’); -строим график

set(graph1,’LineWidth’,3); - изменяем толщину графика

Вматлабе:

>> global var1;

>> global var2;

>> var1 = [1.67 2.20; 1.82 3.0; 2.0 4.0;2.07 4.5;2.1 5.0;2.11 6.20;2.13 8.0]

var1 =

1.6700    2.2000

1.8200    3.0000

2.0000    4.0000

2.0700    4.5000

2.1000    5.0000

2.1100    6.2000

2.1300    8.0000

>> var2=[1.94 3.0; 2.13 4.0;2.25 6.0;2.32 7.0;2.4 11.0;2.26 15.0]

var2 =

1.9400    3.0000

2.1300    4.0000

2.2500    6.0000

2.3200    7.0000

2.4000   11.0000

2.2600   15.0000

>> x2 = var1(:,1);

>> y2= var1(:,2);

>> P2 = polyfit(x2,y2,5)

P2 =

1.0e+006 *

0.0357   -0.3427    1.3150   -2.5190    2.4085   -0.9195

>> F2= polyval(P2,x2)

F2 =

2.2000

2.9998

4.0053

4.4377

5.2897

5.9205

8.0470

>> graph1=plot(x2,y2,'k*',x2,F2,'k');

>> set(graph1,'LineWidth',3);

Полином третей степени. Задание 2

Формирование вектора не зависимой переменной, потом не зависимой переменной

Задание2

y=polyval(p,s)

p(x)=3x2 +2x+x

в точке x=2,5

p=[3 2 1]

y=polyval(p,2.5)

% y=24.75

Задание1

x3= var2(:,1);

y3= var2(:,2);

P3 = polyfit(x3,y3,3)

F3= polyval(P3,x3)

graph2=plot(x3,y3,’r-’,x3,F3,’k’);

set(graph2,’LineWidth’,2);

xlabel(‘переменная x’);

ylabel(‘функция’);

hold on

grid on

В матлабе:

Задание1

Интерполирование данных с помощью степенных полиномов

x3= var2(:,1);

y3= var2(:,2);

P3 = polyfit(x3,y3,3)

F3= polyval(P3,x3)

P3 =

1.0e+003 *

-0.3623    2.3679   -5.1232    3.6755

F3 =

2.9092

4.7179

8.7630

10.3293

10.2297

9.0508

>> graph2=plot(x3,y3,'r-',x3,F3,'k');

>> set(graph2,'LineWidth',2);

>> xlabel('переменная x');

>> ylabel('функция');

>> hold on

grid on

Задание2

Вычислить значения полинома в заданной точке

>> p=[4 3 0.5 1]

p =

4.0000    3.0000    0.5000    1.0000

>> y=polyval(p,1.6)

y = 25.8640

>> p=[3 2 1]

y=polyval(p,2.5)

% y=24.75

p =

3     2     1

y =

24.7500

Задание3

Интерполяция линейная и интерполяция сплайнами

Сплаинт

y=cos(x) по 9 точкам синтаксис функции interp

y= interp1(x,y,’method’)

nearest – по соседним точкам

linear – линейная

spline- кубичискими сплайнами

cubic-кубический полином

x=0:9; - задоем в интервали от нуля до 9

y=cos(x);

xi=linspace(0,9,100);-генерирум вектор страку из 100 элементов от 0 до 9

yi1=interp1(x,y,xi); - построение ленейного полинома

yi2=interp1(x,y,xi,’spline’);- построение сплаинт полиномов

plot(xi,[yi1;yi2]);- построение графика

clc

clf

x=0:10;

y=sin(x)

xi=0:0.25:10;

yi=spline(x,y,xi);

plot(x,y,’k’,xi,yi,’r’);

grid on

clc

clf

x=0:12;

y=exp(x) %y=e^x

xi=0:0.8:15

yi=spline(x,y,xi);

plot(x,y,’k’,xi,yi,’r’);

grid on

Задание 3

>> x=0:0.12:12;

>> y=cos(x);

>> xi=0:0.12:12;

>> yi=spline(x,y,xi);

>> plot(x,y,'k',xi,yi,'r');

grid on

кос.jpg

>> x=0:0.12:12;

>> y=sin(x);

>> xi=0:0.12:12;

>> yi=spline(x,y,xi);

>> plot(x,y,'k',xi,yi,'r');

grid on

син.jpg

>> x=0:0.12:12;

>> y=tan(x);

>> xi=0:0.12:12;

>> yi=spline(x,y,xi);

>> plot(x,y,'k',xi,yi,'r');

grid on

тан.jpg

Задание 4 Интерполяция табличных данных

X

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Y

-2.99

-2.96

-2.91

-2.84

-2.75

-2.64

-2.51

-2.36

-2.19

clc

clf

x=[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]

y=[-2.99 -2.96 -2.91 -2.84 -2.75 -2.64 -2.51 -2.36 -2.19]

xi=[x(1):0.1:x(length(x))];

ynear=interp1(x,y,’nearest’);

yline= interp1(x,y,’spline’);

subplot(2,2,1);

>> plot(x,y,'k*');

>> title('исходные данные');

>> subplot(2,2,2);

>> plot(x,y,'k*',xi,ynear,'k-');

>> title('По соседним значениям');

>> subplot(2,2,3);

>> plot(x,y,'k*',xi,yline,'k-');

>> title('кубический сплаинт');

Задание 4

Интерполяция табличных данных

Y=Y+0.08*N

Y =Y +0.96

X

0.010

0.020

0.030

0.040

0.050

0.060

0.070

0.080

0.090

Y

1.480

1.479

1.478

1.477

1.475

1.473

1.470

1.467

1.464

Y1

2.44

2.439

2.438

2.437

2.435

2.433

2.43

2.427

2.424

>> clf

>> x=[0.010 0.020 0.030 0.040 0.050 0.060 0.070 0.080 0.090]

x =

0.0100    0.0200    0.0300    0.0400    0.0500    0.0600    0.0700    0.0800    0.0900

>> y=[2.440 2.439 2.438 2.437 2.435 2.433 2.430 2.427 2.424]

y =

2.4400    2.4390    2.4380    2.4370    2.4350    2.4330    2.4300    2.4270    2.4240

>> xi=[x(1):0.01:x(length(x))];

>> ynear=interp1(x,y,xi,'nearest');

>> yline=interp1(x,y,xi,'spline');

>> subplot(2,2,1);

>> plot(x,y,'k*');

>> title('исходные данные');

>> subplot(2,2,2);

>> plot(x,y,'k*',xi,ynear,'k-');

>> title('по соседним значениям');

>> subplot(2,2,3);

>> plot(x,y,'k*',xi,yline,'k-');

>> subplot(2,2,4);

>> plot(x,y,'k*',xi,yline,'k-');

>> title('кубический сплайн');

>> 

55.jpg

Задание 5

A= zeros(1,20), % аргумент

For i=1:20

А(i)= i*0.1;

End

T=[2.09 ], % выходное значение y

Создание нейронной сети вызов функции new

net=newff([-1 2.09],[5 1]);

{‘tansig’ ‘purelin’};

функция newff создает «классическую многослойную н.с.» с обучением обратного распространения ошибки, т.е изменение весов сенапса, происходит с учетом функции ошибки. Разница между полученными и правильными ответами н.с. распространяется в обратном направлении в примере сеть будет иметь два скрытых слоя.В первом слое 5 нейронов, во втором 1. Функция активации первого слоя tansig, это сигмоидальная функция возвращает выхлдные векторы, в диапозоне от -1 до +1, для второго слоя функция октивации purelin-это ленейная функция активации, возвращает выходные векторы без изменений. В примере задано 50 циклов обучения. Для обучения нейрона сети используется функция train.

net. trainParam.epochs=50

net=train(net,P,T);

y=sim(net,P);

figure(1)

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

Похожие материалы

Информация о работе

Предмет:
Информатика
Тип:
Отчеты по лабораторным работам
Размер файла:
143 Kb
Скачали:
0

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.