Matlab ściąga, Budownictwo, Zachodniopomorski Uniwersytet Technologiczny, Technologia Informacyjna

[ Pobierz całość w formacie PDF ]
Instrukcje w Matlabie
Elżbieta Freidenberg
-
instrukcja warunkowa
if wyrażenie
lub
if wyrażenie
instrukcje
instrukcje
end
elseif wyrażenie
instrukcje
else
instrukcje
end
-
instrukcja
switch
Instrukcja do wyboru kilku wariantów
Switch wyrażenie
Case wartość 1
Instrukcje
Case wartość 2
Instrukcje
...
otherwise
instrukcje
end
przykład:
%figury
clc;
c=input(
'c='
);
switch
c
case
1
disp(
'kwadrat'
);
case
2
disp(
'prostkat'
);
otherwise
disp (
'nie mam ochoty liczyc'
);
end
Opis w zależności od podanej wartości pokaże się odpowiedni komunikat, wewnątrz pod każdym case można
podać dowolna ilość instrukcji.
-
pętla
for
for zmianne=macierz_wartości,
instrukcje
end
disp(
'podaj rozmiary macierzy A:'
);
m=input(
'ile wierszy w macierzy A: m='
);
n=input(
'ile kolumn n='
);
disp(
'wpisz kolejne elementy macierzy'
);
for
i=1:m
for
j=1:n
a(i,j)=input(
'kolejny element'
)
end
end
-
pętla
while
while wyrazene
instrukcje
end
Przykład:
Wczytywanie elementów macierzy
 Instrukcje w bloku
while
sa powtarzane wtedy kiedy wyrazenie jest =1 (jest prawdziwe)
Przykład:
Obliczyc wartość 10-ego elementu ciagu Fibonacciego (wiecej literacko o ciagu Fibonacciego w „Kodzie
Leonarda da Vinci)
Wzor:
Elżbieta Freidenberg
%Fibonacci Skrypt podaje tylko n-ty wyraz ciÄ…gu.
u1=1;
u2=1
i=2;
n=100;
while
i<n
u3=u1+u2;
u1=u2;
u2=u3;
i=i+1;
disp(u3);
end
Matlab ma funkcje wbudowane i zewnętrzne przechowywane w m-plikach. Wszystkie zewnętrzne funkcje
dostępne w matlabie znajduja się w podkatalogu TOOLBOX w obrebie katalogu Matlab.
Zasady deklarowania funkcji:
-
pierwszy wiersz m-pliku musi zawierac definicje nowej funkcji ze slowem kluczowym
function
-
nazwa funkcji musi być taka sama jak nazwa pliku (bez rozszerzenia .m)
-
wartości funkcji (lista argumentow wyjściowych)
-
parametry funkcji (lista argumentow wejściowych)
function [wart_fun1,wart_fun2,...]=nazwa_funkcji(parametr1, parametr2,...)
% opis funkcji
instrukcje
Przykład
Funkcja przeliczajaca radiany na stopnie
function
[y]=radst(x);
%przelicza radiany na stopnie;
y=(x.*180)/pi;
Deklaracja funkcji podającej n-wyrazów ciągu Fibonacciego
%Fibonacci podaje ciÄ…g do n-tego wyrazu
function [f]=fib(n)
%deklaracja funkcji o nazwie fib
f=zeros(n,1);
%utworzenie wektora o rozmiarze n
f(1)=1;
%ustalenie 1-wszego elementu ciÄ…gu
f(2)=1;
%ustalenie 2-giego elementu ciÄ…gu
for k=3:n
f(k)=f(k-1)+f(k-2);
end
u
1
=1 u
2
=1 ...u
n
=u
n-1
+u
n-2
dla n>2
Definiowanie funkcji
 Funkcje inline
funkcja=inline(wyrażenie)
Elżbieta Freidenberg
Zdefiniowac funkcje:
funkcje jednej zmiennej f(x)=cos(2*x-pi)
f=inline(‘cos(2*x-pi)’)
Instrukcja
return
wykorzystuje sie do wymuszenia natychmiastowego zakończenia funkcji i powrotu do miejsca wykonywania
Grafika
wykreslanie wykresow:
plot
plot(x,y,s) -rysuje wykres elementow z wektora y względem wektora x i dzieki parametrowi s okresla dokładny
wyglad linii
‘-‘ ciagla , ‘- -‘ kreskowana, ‘.’ kropkowana, ‘-.’ kreska kropka
‘y’ zolty, ‘m’ karmazynowy, ‘c’ turkusowy, ‘r’ czerwony, ‘g’ zielony, ‘b’ niebieski
funkcja linspace pomaga generowac argumenty funkcji
linspace(x1,x2,N) - tworzy n-elementowy wektor od wartości x1 do x2
przykład:
x=linspace(0,2*pi);
plot(x,sin(x),’r-‘,x,sin(x).^2,’b- -‘);
Matlab – metody numeryczne
Uwagi ogolne:
-
By wygodnie rozpoczac pisanie m-pliku wystarczy w oknie edycyjnym matlaba wpisac komende edit
nazwa_pliku
-
uruchomienie pliku przez podanie jego nazwy
Rozwiązywanie równań nieliniowych.
Metoda połowienia:
Proszę o przypomnienie sobie teorii podanej na wykładzie:
Program, który wykorzystuje metodę połowienia:
%polowienie przedzialu
%miejsce zerowe sa policzone dla funkcji o nazwie sinus zadeklarowanej w
%m-pliku
clc;
%czyszczenie ekranu
clear
all
;
%czyszczenie pamieci komputera
x=linspace(0,2*pi);
%przygotowanie argumentow x do rysowania wykresu
plot(x,sinus(x),
'r-'
);
%rysowanie wykresu, by mniej wiecej okreslic granice przedzialu z
miejscem zerowym
x0=input(
'podaj lewy przedzial ='
);
epsilon=1e-6;
%zadana z gory dokladnosc z jaka ma byc policzony pierwiastek rownania
licznik=0;
%ustalenie 1 kroku
while
abs(xb-xa)>epsilon
%obliczenie beda wykonywane dopoki xb-xa jest wieksze od dokladnosci
licznik=licznik+1;
xc=xa+(xb-xa)/2;
%przepolowienie przedzialu i policzenie nowego punktu xc
if
sinus(xa)*sinus(xc)<=0
%ustalenie nowych granic przedzialu tak,by punkty przedzialu
byly po obu stronach pierwiastka
xb=xc;
else
xa=xc;
end
end
Elżbieta Freidenberg
x0=(xa+xb)/2;
tekst=strcat([
'('
,num2str(licznik),
')miejsce zerowe: '
,num2str(x0)]);
disp(tekst);
Zadanie:
Proszę napisać program na znajdowanie pierwiastka funkcji (zadeklarowanej w osobnym pliku) na podstawie
następującego algorytmu (algorytm na znajdowanie pierwiastków metodą stycznych. (Teoria była podana na
wykładzie)
-rysowanie wykresu
-okreslenie punktu startowego
-określenie dokładności
-
ustalenie licznika =1
-
pierwsza iteracja x1=x0-funkcja(x0)/pochodna(x0)
-
nastepne iteracje będą wykonywane dopóki będzie spełniony warunek:
funkcja(x1)>epsilon lub wartość bezwgledna(x1-x0)>epsilon.
Uwaga: warunek lub | , petla dopóki while
-
przejscie do nastepnego kroku (zwiekszenie licznika o1)
-
podstawienie za x0 punktu x1 policzonego przed petla while
-
iteracja x1=x0-funkcja(x0)/pochodna(x0)
-
koniec petli
-
wydrukowanie ilości wykonanych iteracji
-
wydrukowanie miejsca zerowego
Uwaga: funkcja i pochodna muszą być zadeklarowane w osobnym pliku jako deklarację funkcji.
Wykorzystanie wbudowanych funkcji matlaba do znajdowania miejsc zerowych rownan nieliniowych:
x=fzero(‘funkcja’,x0)
funkcja - wyrazenie tekstowe zawierajace nazwe funkcji (wbudowanej lub zdefiniowanej w zewnetrznym pliku)
x0 – poczatkowe przyblizenie miejsca zerowego przyklad x=fzero(‘sin’,6)
  [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • mement.xlx.pl
  •