POLITECHNIKA WROCŁAWSKA
ZAKŁAD AUTOMATYKI |
Skład grupy:
1. Anna Knap 170739
|
Wydział: Elektryczny Rok studiów: 3 Rok Akademicki : 2010/2011 Grupa: Termin: Wtorek, 07:30 |
|
METODY NUMERYCZNE |
|||
Data wykonania ćwiczenia: 08.03.2011 |
Nr ćwiczenia: 1 Temat: Metoda Gaussa-Seidla iteracyjnego rozwiązywania układów równań liniowych. |
||
Data oddania sprawozdania: 15.03.2011 |
|
||
Prowadzący: Mgr inż. Łukasz Staszewski |
|
Cel ćwiczenia: Zapoznanie się
Przebieg ćwiczenia:
Dokonanie interpolacji z gotowych funkcji Matlaba, oraz z otrzymanego m-pliku:
%% definiowanie tabelki clc;clear all;close all; T=0.012; t=0:T:7; k=0:7; y= [-2 -1 0.5 1.6 1.0 0.2 -0.6 -0.8];
%% interpolacje matlaba: y1=INTERP1(k,y,t,'linear'); y2=INTERP1(k,y,t,'cubic'); y3=INTERP1(k,y,t,'spline');
%% %interpolacja 3-krokowa: l=1; m=0; P=1:(max(k)/T)+1; for i= 1:length(y)-2 d= m:T:2; for h=1:length(d)
P(l)= 0.5*(2*y(i)-d(h)*(3*y(i)-4*y(i+1)+y(i+2))+(d(h)^2)*... (y(i)-2*y(i+1)+y(i+2))); l=l+1; end m=1+T; end
|
%% %kreslenie wykresow plot(k,y,'*black') axis([0 7 -2 2]); hold on;grid on; plot(t,P,'magenta');
plot(t,y1,'r') plot(t,y2,'g') plot(t,y3,'b') hold on;grid on;
%% %opis wykresów title('Interpolacja 3 metodami'); xlabel('próbki'); ylabel('Amplituda'); legend('probki','3-krokowa','linear','cubic','spline')
|
Do gotowego skryptu z interpolacją 3-krokową przy rysowaniu wykresu dodałam funkcję określającą skalę : axis([0 7 -2 2]).
Program:
clc;
A=[-7 0 2 10;-3 6 2 0;2 -1 9 1;20 -2 12 5];
b=[15 ;4;3;-1];
x=A(1,:);
A(1,:)=A(4,:);
A(4,:)=x;
x=b(1);
b(1)=b(4);
b(3)=x;
A,b
Wynik:
A =
20 -2 12 5
-3 6 2 0
2 -1 9 1
-7 0 2 10
b =
-1
4
15
-1
Program porządkujący dowolną macierz kwadratową:
Program:
[m,n]=size(A);
A11=A;
b11=b;
for i=1:n-1
wiersz=i;
for j=(1+1):(n)
if (abs(A(wiersz,i)))<(abs(A(j,i)))
wiersz=j;
end
end
if (wiersz~=i)
A1=A;
B1=b;
A(i,:)=A1(wiersz);
A(wiersz,:)=A1(i,i);
b(i)=B1(wiersz);
b(wiersz)=B1(i);
end
end
A,b
Wynik:
A =
20 -2 12 5
-3 6 2 0
2 -1 9 1
-7 0 2 10
b =
-1
4
15
-1
Rozwiązywanie układu równań liniowych:
Wynik:
x =
-0.9805
-0.4778
1.9625
-1.1789
Liczba iteracji: 11
Sprawdzenie:
ans =
1.0e-005 *
0.3666
0.0665
-0.0231
0
Wynik uzyskany poprzez rozwiązanie równania
Program:
disp('Wynik uzyskany poprzez rozwiązanie równania: A^(-1)*b'),A^(-1)*b
Wynik:
ans =
-0.9805
-0.4778
1.9625
-1.1789
Wnioski:
Interpolacja 3-krokowa nie działa na 2 ostatnich elementach i