MATLAB tworzenie własnych funkcji

Podobne dokumenty
Funkcja pierwotna, całka oznaczona na podstawie funkcji pierwotnej

1 Programowanie w matlabie - skrypty i funkcje

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Podstawy MATLABA, cd.

do MATLABa programowanie WYKŁAD Piotr Ciskowski

Ćwiczenie 1. Wprowadzenie do programu Octave

Wstęp do Programowania Lista 1

Matlab Składnia + podstawy programowania

Obliczenia w programie MATLAB

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Obliczenia iteracyjne

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

Ćwiczenie 4. Matlab - funkcje, wielomiany, obliczenia symboliczne

Metody numeryczne Laboratorium 2

Zad. 3: Układ równań liniowych

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Zakładka Obmiar jest dostępna dla pozycji kosztorysowej w dolnym panelu. Służy do obliczania ilości robót (patrz też p ).

MATLAB - laboratorium nr 1 wektory i macierze

Wprowadzenie do środowiska

Elementy metod numerycznych - zajęcia 9

MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY

//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5];

Metody Numeryczne. Laboratorium 1. Wstęp do programu Matlab

Różniczkowanie numeryczne

Maple i wykresy. 1.1 Najpierw należy się zalogować. Jak to zrobić zostało opisane w moim poprzednim tutorialu.

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

Ćwiczenie 1. Wprowadzenie do programu Octave

Ćwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych

Wprowadzenie do systemu Scilab

Matlab Składnia + podstawy programowania

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Zakład Systemów Rozproszonych

Przetwarzanie sygnałów

Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

PRZYKŁADOWE SKRYPTY (PROGRAMY W MATLABIE Z ROZSZERZENIEM.m): 1) OBLICZANIE WYRAŻEŃ 1:

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie

Pakiety Matematyczne - R Zestaw 2.

Formatowanie tekstu za pomocą zdefiniowanych stylów. Włączanie okna stylów. 1. zaznaczyć tekst, który chcemy formatować

Blockly Kodowanie pomoc.

Zakłócenia w układach elektroenergetycznych LABORATORIUM

Rozwiązywanie równań różniczkowych z niezerowymi warunkami początkowymi

1 Podstawy c++ w pigułce.

Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3

System operacyjny Linux

Modelowanie Systemów Dynamicznych Studia zaoczne, Automatyka i Robotyka, rok II. Podstawy MATLABA, cz2.

Metody i analiza danych

Ćwiczenie 3. MatLab: Algebra liniowa. Rozwiązywanie układów liniowych

Podstawy JavaScript ćwiczenia

INFORMATYKA TECHNICZNA Metody wprowadzania obiektów w programie AutoCAD za pomocą języka AutoLISP

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

Zadanie nr 2: Arytmetyka liczb zespolonych

Wstęp do Informatyki i Programowania Laboratorium: Lista 1 Środowisko programowania

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku

Tematy lekcji informatyki klasa 4a luty/marzec 2013

Przykładowo, jeśli współrzędna x zmienia się od 0 do 8 co 1, a współrzędna y od 12 co 2 do 25, to punkty powinny wyglądać następująco:

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Przykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1

Ćwiczenie 3. Iteracja, proste metody obliczeniowe

ZASADY PROGRAMOWANIA KOMPUTERÓW

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

1 Podstawy c++ w pigułce.

Kier. MTR Programowanie w MATLABie Laboratorium. 1. Tworzenie m-plików skryptowych i uruchamianie skryptów

Tworzenie pliku źródłowego w aplikacji POLTAX2B.

1.Wstęp. 2.Generowanie systemu w EDK

Układ równań liniowych

Ćwiczenia 11 (12) (4 godziny). Wizualizacja i manipulacja w Matlabie

ANALIZA DANYCH I PROCESÓW. Mgr inż. Paweł Wojciech Herbin

Optymalizacja systemów

PętlaforwOctave. Roman Putanowicz 13 kwietnia 2008

Database Connectivity

Wprowadzenie do programu Mathcad 15 cz. 1

Tworzenie szablonów użytkownika

Wprowadzenie do Scilab: macierze

Zad. 5: Układ równań liniowych liczb zespolonych

PODSTAWY INFORMATYKI 1 MATLAB CZ. 3

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Optymalizacja systemów

Wartości x-ów : Wartości x ów można w Scilabie zdefiniować na kilka sposobów, wpisując odpowiednie polecenie na konsoli.

04 Układy równań i rozkłady macierzy - Ćwiczenia. Przykład 1 A =

Pętle iteracyjne i decyzyjne

Instrukcja realizacji ćwiczenia

WPROWADZENIE DO ŚRODOWISKA SCILAB

WEKTORY I MACIERZE. Strona 1 z 11. Lekcja 7.

lekcja 8a Gry komputerowe MasterMind

zajęcia 2 Definiowanie wektorów:

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

WIMIM/MIBM/N1/-/B04 WIMIM/ME/S1/-/C46 WIMIM/IM/S1/-/B19

Laboratorium nr 9. Temat: Wskaźniki, referencje, dynamiczny przydział pamięci, tablice dynamiczne. Zakres laboratorium:

Program na zaliczenie: Odejmowanie widm

Projekt 4: Programowanie w logice

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

PODSTAWY INŻYNIERII SYSTEMÓW TECHNICZNYCH

Zad. 3: Rotacje 2D. Demonstracja przykładu problemu skończonej reprezentacji binarnej liczb

WYRAŻENIA ALGEBRAICZNE

MATLAB wprowadzenie śycie jest zbyt krótkie, aby tracić czas na pisanie pętli!

Transkrypt:

MATLAB tworzenie własnych funkcji Definiowanie funkcji anonimowych Własne definicje funkcji możemy tworzyć bezpośrednio w Command Window, są to tzw. funkcje anonimowe; dla funkcji jednej zmiennej składnia jest następująca: nazwa=@(argument) wyrazenie; Przykład definicji wraz z wykorzystaniem funkcji: funk4 = @(x) sin(x) + 2*x; z=funk4(10); użycie funkcji dla pojedynczego argumentu y=funk4(x); użycie funkcji dla wektora plot(x,y) Jeżeli jako argumentem funkcji jest wektor, a funkcja zawiera mnożenie, dzielenie lub potęgowanie członów zawierających argument, przy operatorach powinniśmy pisać kropkę (operacja definiowana nie na tablicy jako całości, a na poszczególnych jej elementach), patrz poniżej: funk5 = @(x) x^2*sin(x); funk5(1) działa y=funk5(x); dla wektora NIE działa! funk6 = @(x) x.^2.*sin(x); funk6(1) działa y=funk6(x); dla wektora działa! y Mając zdefiniowaną jedną funkcję anonimową, możemy wykorzystać ją do zdefiniowania następnej: a=2; funk4 = @(x) sin(x) + a*x; funk41 = @(x) funk4(x)+100; funk4(10) funk41(10) Bez problemu możemy tworzyć funkcje większej liczby argumentów: funk7 = @(x,y) 100*x+y; funk7(1,2) for i=1:5

for j=1:5 Z(i,j)=funk7(i,j); Z Funkcje anonimowe wykorzystujemy tylko w oknie roboczym, możemy je usuwać poleceniem clear, po wyłączeniu Matlaba zostają zapomniane. Definiowanie funkcji plikowych Inny sposób definiowania funkcji to zapisywanie ich w m-plikach. Takie funkcje zostają zachowane po zakończeniu pracy Matlaba. Klikamy File potem New i wybieramy Function (albo od razu ikonkę białej strony z gwiazdką New Script). Otworzy się edytor; składnia prostej funkcji jest następująca: function zmienna=nazwa(argument) zmienna=wyrażenie; Użyta tu zmienna jest tylko parametrem do zdefiniowania wyniku. Plik należy zapisać, domyślna nazwa jest taka sama, jak nazwa funkcji + rozszerzenie.m. Przykład: function w=fp1(x) w=2*x.^2+10*sin(x); Plik zapisujemy jako fp1.m, od tej pory możemy korzystać z funkcji fp1(x): z=fp1(10); y=fp1(x); plot(x,y) użycie funkcji dla pojedynczego argumentu użycie funkcji dla wektora W powyższym przykładzie kropka przy operatorze potęgowania umożliwiła poprawne wykorzystanie wektora jako argumentu funkcji. Jeżeli mamy zdefiniowaną jedną funkcję, możemy wykorzystać ją do zdefiniowania innej: function w=fp2(x) w=2*fp1(x); Mamy zatem już dwie funkcje w plikach fp1.m i fp2.m z1=fp1(10) z2=fp2(10)

Funkcje plikowe możemy też wykorzystać w definicjach funkcji anonimowych, ale nie działa to w drugą stronę; przykłady: mamy plik fp1.m z funkcją fp1(x), definiujemy funkcję anonimową i z niej korzystamy: funk42 = @(x) fp1(x)-50; funk42(10) y=funk42(x); y Wszystko zadziałało poprawnie. Teraz zdefiniujmy najpierw funkcję anonimową: funk43 = @(x) x.^3-exp(x); i wykorzystajmy ją do zdefiniowania funkcji plikowej function w=fp3(x) w=funk43(x)+200; Po zapisaniu pliku, spróbujmy użyć funkcji fp3(x): fp3(10) Próba ta zakończy się niepowodzeniem. Bez większych trudności tworzymy funkcje plikowe większej liczby argumentów: function w=fp4(x,y) w=x.^2+y.^3; W oknie roboczym możemy ją przetestować: fp4(10,10) x=1:5; y=1:5; Z=fp4(x,y) elementy wektorów x i y brane parami, Z będzie wektorem for i=1:5 for j=1:5 M(i,j)=fp4(x(i),y(j)); M

W jednym pliku możemy definiować więcej niż jedną funkcję, ale wówczas funkcje następujące po pierwszej funkcji służą jako pomoc do jej zdefiniowania i nie mogą być wykorzystane w Command Window. Stórzmy plik fp5.m: function w=fp5(x) w=kwadrat(x)+szescian(x); function w=kwadrat(x) w=x.^2; function w=szescian(x) w=x.^3; W oknie roboczym możemy skorzystać z fp5(x): fp5(10) ale nie uda się próba skorzystania z funkcji pomocniczej: kwadrat(10) Jeżeli funkcja plikowa korzysta ze zmiennych wykorzystywanych też w oknie roboczym, warto używać zmiennych globalnych. Napiszmy w Command Window : global a; global b; można też definiować naraz: global a b; A teraz stwórzmy funkcję plikową function w=fp6(x) global a b; w=a*x+b; i sprawdźmy: a=1; b=2; fp6(10) a=10; b=20; fp6(10)

Wartości zmiennych globalnych mogą być zmieniane przez funkcje plikowe. W Matlabie wynikiem funkcji nie musi być jedna wartość. Stwórzmy plik: function [w1, w2]=fp7(x) w1=x.^2; kwadraty w2=x.^3; sześciany Wykorzystajmy tę funkcję w oknie roboczym: fp7(10) pokaże się tylko jedna wartość z=fp7(10) z tylko jedna wartość [u,v]=fp7(10) zmienne u i v będą miały po jednej wartości y=fp7(x) y wektor zbudowany tylko z kwadratów x [u,v]=fp7(x) powstaną 2 wektory z kwadratami i z sześcianami albo pętla for i = 1:length(x) [y(i),z(i)]=fp7(x(i)); powstaną 2 wektory z kwadratami i z sześcianami Przy takiej definicji funkcji mamy na wyjściu dwie pojedyncze wartości. Możemy funkcję tak definiować, aby wartości te od razu tworzyły pewien wektor: function w=fp8(x) w=[x.^2; x.^3]; fp8(10) z=fp8(10) [u,v]=fp8(10) y=fp8(x) pokaże się kolumna z dwiema wartościami z wektor (kolumna) z dwiema wartościami niepoprawne wykorzystanie y macierz z dwoma wierszami Taki sposób definiowania funkcji bardzo się nam przyda przy rozwiązywaniu zagadnień z równaniami różniczkowymi drugiego rzędu. Zadania: 1. Stwórz i przetestuj funkcję: 10 f (x, y)= (nx+ y n ). n=1

2. Stwórz i przetestuj funkcję: n f (n, x)= i=1 i x i. Przykładowe rozwiązania: 1. W edytorze Matlaba tworzymy nowy plik z zawartością: function wynik=f4(x,y); wynik=0; for n=1:10; wynik=wynik+n*x+y/n; ; W oknie roboczym możemy napisać: f4(0,0) f4(1,0) f4(1,0.5) 2. W edytorze Matlaba tworzymy nowy plik z zawartością: function wynik=f5(n,x); wynik=0; for i=1:n wynik=wynik+i./x.^i; W oknie roboczym testujemy, np.: f5(1,1) f5(2,1) f5(3,2)