Elementy Projektowania Inżynierskiego MATLAB Wprowadzenie.



Podobne dokumenty
Metody i analiza danych

Wprowadzenie do środowiska

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

MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY

PODSTAWY INFORMATYKI 1 MATLAB CZ. 3

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

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

Matlab Składnia + podstawy programowania

Laboratorium Algorytmy Obliczeniowe. Lab. 9 Prezentacja wyników w Matlabie

Matlab Składnia + podstawy programowania

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

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

GNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej.

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

WPROWADZENIE ŚRODOWISKO OBLICZEŃ NUMERYCZNYCH MATLAB - SIMULINK

Wstęp do Programowania Lista 1

zajęcia 2 Definiowanie wektorów:

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

Przetwarzanie sygnałów

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

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

do MATLABa programowanie WYKŁAD Piotr Ciskowski

Podstawy MATLABA, cd.

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

Zanim zaczniemy GNU Octave

1 Programowanie w matlabie - skrypty i funkcje

Programowanie: grafika w SciLab Slajd 1. Programowanie: grafika w SciLab

Metody i analiza danych

Matlab MATrix LABoratory Mathworks Inc.

Operatory arytmetyczne

PODSTAWY PROGRAMOWANIA W JĘZYKU MATLAB

Ćwiczenie 1. Wprowadzenie do programu Octave

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

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

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ć

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

Wprowadzenie do środowiska MATLAB z zastosowaniami w modelowaniu i analizie danych

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:

Wprowadzenie do środowiska MATLAB z zastosowaniami w modelowaniu i analizie danych

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

MATLAB - laboratorium nr 1 wektory i macierze

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

Pętle iteracyjne i decyzyjne

Obliczenia w programie MATLAB

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

1 Podstawy c++ w pigułce.

1) Podstawowe obliczenia. PODSTAWY AUTOMATYKI I ROBOTYKI Laboratorium. Wykonał: Łukasz Konopacki Sala 125. Grupa: poniedziałek/p,

Elementy metod numerycznych - zajęcia 9

Wprowadzenie do Scilab: funkcje i wykresy

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

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

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

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

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Pisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane.

Podstawowe operacje graficzne.

Elementy projektowania inzynierskiego Przypomnienie systemu Mathcad

Zakłócenia w układach elektroenergetycznych LABORATORIUM

TWORZENIE WYKRESÓW (1)

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

Metody numeryczne Laboratorium 2

Ćwiczenie 1. Wprowadzenie do programu Octave

Instalacja Pakietu R

Instalacja

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Laboratorium Cel ćwiczenia Ćwiczenie ma na celu praktyczne przedstawienie grafiki 3D.

MATLAB Podstawowe polecenia

Wprowadzenie do pakietów MATLAB/GNU Octave

Elementy okna MatLab-a

Programowanie w języku Python. Grażyna Koba

Program na zaliczenie: Odejmowanie widm

Rozwiązywanie równań różniczkowych cząstkowych metodą elementów skończonych - wprowadzenie

WPROWADZENIE DO ŚRODOWISKA SCILAB

Wprowadzenie do systemu Scilab

Ćwiczenie 3: Wprowadzenie do programu Matlab

Grafika w Matlabie. Wykresy 2D

Wprowadzenie do Scilab: macierze

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

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

Matlab III Instrukcje, interpolacja, dopasowanie krzywych,

ŚRODOWISKO MATLAB cz.3 Implementowanie algorytmów w skryptach i funkcjach programu

1 Podstawy c++ w pigułce.

MATLAB tworzenie własnych funkcji

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

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

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Programowanie komputerowe. Zajęcia 1

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

Podstawy Programowania C++

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

Wprowadzenie do Pakietu R dla kierunku Zootechnika. Dr Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu

Materiały do Laboratorium Programowania Obliczeń Komputerowych MATLAB

Matlab II skrypty, funkcje, wizualizacja danych. Piotr Wróbel Pok. B 4.22

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Matematyka finansowa w pakiecie Matlab

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Podstawy obsługi pakietu GNU octave.

Pakiety matematyczne. Matematyka Stosowana. dr inż. Krzysztof Burnecki

Transkrypt:

Elementy Projektowania Inżynierskiego MATLAB Wprowadzenie. 1. Wprowadzenie. Pakiet MATLAB (MATrix LABoratory) jest interakcyjnym środowiskiem umożliwiającym wykonywanie różnorakich obliczeń numerycznych. W rzeczywistości jest to język programowania wysokiego poziomu z rozbudowanym edytorem-debuggerem, możliwością generowania rozbudowanej grafiki i narzędziami do tworzenia graficznego interfejsu użytkownika (GUI, Graphic User Interface). Podstawowym typem danych w MATLAB-ie jest macierz. Mimo to pakiet umożliwia prowadzenie obliczeń symbolicznych i posiada szereg poleceń do pracy z innymi typami danych: macierze (tablice) wielowymiarowe, łańcuchy znaków, struktury, macierze komórkowe, macierze rzadkie. Pakiet posiada obszerne biblioteki dodatkowych procedur umożliwiające rozwiązywanie problemów z wielu dziedzin: opracowywania danych chemicznych, analizy i obliczeń finansowych, projektowania i diagnostyki układów sterowania, przetwarzania obrazów, analizy informacji geograficznych i wyświetlania map, projektowania i symulacji sieci neuronowych rozwiązywania równań różniczkowych cząstkowych metodą elementów skończonych, modelowania, symulacji i analizy układów dynamicznych, aproksymacji i interpolacji funkcji. Rys. 1. Główne okno środowiska MATLAB. Główne okno programu (rys. 1) składa się z następujących części: Command Window umożliwia uruchamianie poleceń, skryptów i funkcji; Command History historia wpisanych poleceń, umożliwia kopiowanie poleceń i ponowne ich wykonywanie; Strona 1/20

Workspace/Current Directory zakładki pozwalające odpowiednio na oglądanie, tworzenie, kasowanie i zmianę zmiennych znajdujących się w przestrzeni roboczej programu; oraz tworzenie, wyszukiwanie, otwieranie plików z katalogu roboczego; Dodatkowo często wykorzystuje się narzędzia: Editor/Debugger zintegrowany edytor-debugger (rys. 2) pozwalający na pisanie, śledzenie i uruchamianie skryptów i funkcji; Figure pozwalające na tworzenie, modyfikację i drukowanie wykresów i innych elementów graficznych (rys. 3); Rys. 2. Zintegrowany edytor-debugger. Rys. 3. Okno wykresu. Edycja poleceń przypomina korzystanie z linii poleceń (CLI, Command Line Interface). Polecenia wpisywane są w oknie poleceń i zatwierdzane klawiszem <ENTER>. Jest to jeden z dwóch dostępnych trybów pracy w środowisku. Alternatywnie, możliwe jest zamknięcie grupy poleceń wewnątrz skryptów i funkcji. Strona 2/20

Skrypty stanowią sekwencję poszczególnych poleceń zapisaną w pliku tekstowym. Zmienne modyfikowane wewnątrz skryptu są dostępne po jego wykonaniu w przestrzeni roboczej (workspace). Skrypty nie zwracają wartości, a jedyną możliwością parametryzacji ich działania jest wcześniejsze zainicjowanie odpowiednich zmiennych (parametrów). Funkcje w odróżnieniu od skryptów, definiowane są jako zamknięte fragmenty algorytmu obliczeniowego. Posiadają listę parametrów wejściowych, zwracają wartość (lub wartości). Zmienne wewnętrzne są tworzone na czas wykonania się funkcji i nie są dostępne z poziomu przestrzenie roboczej. 2. Przykłady prostych poleceń. Przypisane wartości do zmiennej a=3 a = 3 Średnik na końcu polecenia przypisania powoduje, że nie będzie wyświetlana wartość wyniku b=5; Przypisanie wartości wyniku wyrażenia arytmetycznego do zmiennej c=sin(a)+1.5 c = 1.6411 Jeśli w przypisaniu nie podano nazwy zmiennej to wynik jest zapamiętany w standardowej zmiennej o nazwie ans cos(pi/3) 0.5000 Wyświetlenie wartości zmiennej ans Strona 3/20

0.5000 lub disp(ans) 0.5000 Nazwa zmiennej w MATLAB-ie może składać się z liter, cyfr i znaku podkreślenia i musi rozpoczynać się od litery. MATLAB bierze pod uwag 31 pierwszych znaków nazwy i rozróżnia małe i duże litery. Zapisanie zmiennej a do pliku (plik binarny, *.mat) save nazwa_pliku a Zapisanie zmiennej a do pliku tekstowego save nazwa_pliku.txt a -ascii Wczytanie zmiennej z pliku binarnego (wcześniej skasujemy wszystkie zmienne) clear load nazwa_pliku.mat W tym przypadku zachowana jest nazwa zapisanej zmiennej (a). Wczytanie zmiennej z pliku tekstowego load nazwa_pliku.txt W tym przypadku zmienna jest dostępna pod nazwą taką jak nazwa pliku (nazwa_pliku). Ponownie skasujmy wszystkie zmienne clear 3. Liczby rzeczywiste i macierze. Podstawowym typem dla elementów macierzy są liczby rzeczywiste. W zależności od komputera i systemu operacyjnego minimalne i maksymalne wartości liczb rzeczywistych mogą się różnić. Maksymalną i minimalną wartość liczby rzeczywistej można poznać za pomocą poleceń Strona 4/20

realmin 2.2251e-308 i realmax 1.7977e+308 Zmiana formatu wyświetlania liczb format short 2.5 2.5000 format short e 2.5 2.5000e+000 format long 2.5 2.500000000000000 Definicja macierzy przez wyliczenie elementów lub A=[2 3 1 4; 5 6 2 1] 2 3 1 4 5 6 2 1 A=[2 3 1 4 5 6 2 1] Strona 5/20

2 3 1 4 5 6 2 1 Poszczególne elementy macierzy oddziela się spacjami lub przecinkami, a wiersze średnikami lub umieszcza się je w oddzielnych liniach. Definicja macierzy przez generowanie elementów: macierz=min:krok:maks, w przypadku kroku równego 1 można napisać: macierz=min:max B=1:1:10 1 2 3 4 5 6 7 8 9 10 [1:1:10; 2:2:20] 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 [1:10; 2:2:20] Dołączanie macierzy 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 A=[1 2 3; 6 4 8] 1 2 3 6 4 8 B=[6 2; 9 8] 6 2 9 8 C=[0 8 6 3 2; 1 5 3 7 2] C = 0 8 6 3 2 1 5 3 7 2 D=[A B; C] D = Strona 6/20

1 2 3 6 2 6 4 8 9 8 0 8 6 3 2 1 5 3 7 2 Sprawdzenie wymiaru macierzy length(b) 2 size(d) 4 5 Definicja macierzy jednostkowej eye(4) 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 Macierz wypełniona jedynkami ones(3,5) Macierz wypełniona zerami 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 zeros(5,3) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Strona 7/20

Odwołanie do elementów macierzy A=[1 2 3; 4 6 7; 2 9 7] 1 2 3 4 6 7 2 9 7 A(2, 2) 6 A(2, 2)=333 1 2 3 4 333 7 2 9 7 Odwołania do podmacierzy A=[1 2 3 4 5 6; 6 4 2 8 9 7; 3 0 2 5 6 3] 1 2 3 4 5 6 6 4 2 8 9 7 3 0 2 5 6 3 Utworzenie wektora B z 2 kolumny macierzy A B=A(:, 2) 2 4 0 Utworzenie wektora C z 3 wiersza macierzy A C=A(3, :) C = 3 0 2 5 6 3 Strona 8/20

Utworzenie macierzy D z kolumn: 1-3 i 5 macierzy A D=A(:, [1:3 5]) D = 1 2 3 5 6 4 2 9 3 0 2 6 Utworzenie macierzy E z elementów macierzy A leżących na przecięciu wierszy 1 i 3 z kolumnami 1, 3 i 5 E=A([1 3], [1:2:5]) E = 1 3 5 3 2 6 Usuwanie drugiego wiersza macierzy A A=[1 2 3 4; 5 6 7 8] 1 2 3 4 5 6 7 8 A(2, :)=[] 1 2 3 4 Usunięcie 1 i 3 kolumny z macierzy A A=[1 2 3 4; 5 6 7 8] 1 2 3 4 5 6 7 8 A(:, [1 3])=[] 2 4 6 8 Strona 9/20

Wyświetlanie zmiennych who Your variables are: A B C D E ans Zajmowana przez nie pamięć i ich typ whos Name Size Bytes Class Attributes A 2x2 32 double B 3x1 24 double C 1x6 48 double D 3x4 96 double E 2x3 48 double ans 1x1 8 double Kasowanie zmiennej clear B whos Name Size Bytes Class Attributes A 2x2 32 double C 1x6 48 double D 3x4 96 double E 2x3 48 double ans 1x1 8 double Kasowanie wszystkich zmiennych clear Czyszczenie okna poleceń clc 4. Działania na macierzach. Dodawanie macierzy A=[1 2 3; 4 5 6] 1 2 3 Strona 10/20

4 5 6 B=[3 2 1; 6 5 4] C=A+B C = 3 2 1 6 5 4 4 4 4 10 10 10 Odejmowanie macierzy A=[1 2 3; 4 5 6] 1 2 3 4 5 6 B=[3 2 1; 6 5 4] C=A-B C = Mnożenie macierzy 3 2 1 6 5 4-2 0 2-2 0 2 A=[1 2 3; 4 5 6] 1 2 3 4 5 6 B=[3 2; 1 6; 5 4] C=A*B 3 2 1 6 5 4 Strona 11/20

C = 20 26 47 62 Odwracanie macierzy A=[1 2 3; 0 8 2; 1 0 2] 1 2 3 0 8 2 1 0 2 B=inv(A) -4.0000 1.0000 5.0000-0.5000 0.2500 0.5000 2.0000-0.5000-2.0000 C=A*B C = 1 0 0 0 1 0 0 0 1 Transpozycja macierzy A=[1 2 3; 4 5 6; 7 8 9] B=A' 1 2 3 4 5 6 7 8 9 1 4 7 2 5 8 3 6 9 Iloczyn macierzy i liczby A=[1 2 3; 4 5 6] Strona 12/20

B=2*A 1 2 3 4 5 6 2 4 6 8 10 12 Kolejność wykonywania działań: podnoszenie do potęgi ^.^ mnożenia, dzielenie i transpozycja *.* /./ \.\ '.' dodawanie, odejmowanie + - 5. Skrypty i funkcje. Napisz skrypt (wybierz opcję File New M-File) kreślący wykres funkcji sinus % skrypt rysuje wykres funkcji sinus x=0:0.01:2*pi; y=sin(x); plot(x, y) Zapisz go pod nazwą wykres.m a następnie uruchom wykres Definicja funkcji ma następującą postać function [wartość_funkcji] = nazwa_funkcji (arg_1,..., arg_n) ciąg instrukcji Napisz funkcję (wybierz opcję File New M-File) obliczającą wartość silni function [wynik] = silnia(n) % Funkcja wyznacza watość n! wynik = 1; for i = 1 : n wynik = wynik * i; Zapisz ją pod nazwą silnia.m a następnie uruchom silnia(5) Strona 13/20

120 Sprawdź działanie polecenia help silnia 6. Instrukcje sterujące. Pętla for for zmienna_iterowana = macierz_wartosci instrukcje Napisz skrypt liczący pięć kolejnych kwadratów liczb naturalnych i zapamiętuje w macierzy A for i = 1 : 5 A(i) = i^2; A Zapisz go pod nazwą petlafor.m a następnie uruchom petlafor Pętla while 1 4 9 16 25 while wyrazenie_warunkowe instrukcje Napisz skrypt liczący sumę dziesięciu kolejnych liczb naturalnych i = 0; suma = 0; while i < 10 i = i + 1; suma = suma + i; suma Zapisz go pod nazwą petlawhile.m a następnie uruchom Strona 14/20

petlawhile suma = 55 Instrukcja warunkowa if if wyrazenie_warunkowe_1 instrukcje_1 elseif wyrazenie_warunkowe_2 instrukcje_2 else wyrazenie_warunkowe_3 instrukcje_3 Przepisz poniższy skrypt, zapisz go pod nazwą menuif.m i sprawdź jego działanie o = menu('przykładowe menu', 'Opcja 1', 'Opcja 2', 'Opcja 3'); if (o == 1) disp('opcja 1') elseif (o == 2) disp('opcja 2') elseif (o == 3) disp('opcja 3') Instrukcja switch switch zmienna case wartosc_1 instrukcje_1 case wartosc_2 instrukcje_2 case wartosc_3 instrukcje_3 otherwise instrukcje Przepisz poniższy skrypt, zapisz go pod nazwą menuswitch.m i sprawdź jego działanie o = menu('przykładowe menu', 'Opcja 1', 'Opcja 2', 'Opcja 3'); switch o case {1} disp('opcja 1') case {2} disp('opcja 2') case {3} disp('opcja 3') Wyrażenia logiczne można budować używając: Strona 15/20

operatorów relacji < <= == ~= >= > negacji ~ koniunkcji & alternatywy 7. Grafika. Najczęściej spotykanym sposobem prezentacji danych i wyników są wykresy. W MATLAB-ie do ich kreślenia można używać funkcji plot(wartosci_x, wartosci_y, parametry) x=0:0.01:2*pi; y1=sin(x); y2=cos(x); plot(x, y1, x, y2) Sprawdź składnię i dowiedz się więcej za pomocą polecenia help plot Często zdarza się potrzeba szkicowania kilku wykresów w jednym oknie, służy do tego polecenie subplot(wykresy_w_pionie, wykresy_w_poziomie, numer_wykresu) x=0:0.01:2*pi; y1=sin(x); y2=cos(x); y3=tan(x); subplot(2, 2, 1) plot(x, y1) subplot(2, 2, 2) plot(x, y2) subplot(2, 2, 3) plot(x, y3) Skala wykresu dobierana jest automatycznie, chcąc ją zmienić należy użyć polecenia axis([min_x max_x min_y max_y]) x=0:0.01:2*pi; y=sin(x); plot(x, y, '-or') axis([0 0.1 0 0.1]) Wykres można opisać podając nazwy zmiennych, tytuł, etc. title('tekst') - tytuł rysunku; Strona 16/20

xlabel('tekst') - opis osi x; ylabel('tekst') - opis osi y; text(x, y, 'tekst') - umieszcza tekst w dowolnym punkcie o współrzędnych (x, y); grid - włącza lub wyłącza siatkę; Przepisz poniższy skrypt, zapisz go pod nazwą wykressin.m i sprawdź jego działanie x=[0:pi/20:2*pi]; y=sin(x); plot(x, y) title('wykres funkcji sin(x)') xlabel('x') ylabel('f(x)') text(2.5, 0.7, 'f(x)=sin(x)') grid Większość funkcji MATLAB-a generujących rysunki trójwymiarowe służy do kreślenia powierzchni. W praktyce definiując powierzchnię trzeba się ograniczyć do skończonego zbioru punktów należących do obszaru [x, y] = meshgrid(x, Y) - tworzy macierze x i y opisujące położenie węzłów prostokątnej siatki pobierając wartości z wektorów X i Y; mesh(x, y, z) - rysuje siatkę powierzchni opisanej przez macierze x, y i z; surf(x, y, z) - rysuje kolorową powierzchnię opisaną przez macierze x, y i z; surfl(x, y, z) - rysuje kolorową powierzchnię opisaną przez macierze x, y i z uwzględniając na niej odbicie światła; plot3(x, y, z) - rysuje krzywą w przestrzeni opisaną przez wektory x, y i z; Przepisz i uruchom poniższy skrypt, zapisz go pod nazwą wykers3d.m [x, y] = meshgrid(-pi:0.2:pi, -pi:0.2:pi) z = sin(x).* sin(y).* exp(-x.^2 - y.^2) mesh(x, y, z) Rozbuduj powyższy skrypt o rysowanie kolorowej powierzchni poprzez dodanie na końcu polecenia (zamiast mesh()): lub surf(x, y, z) surfl(x, y, z) Napisz skrypt kreślący krzywą w przestrzeni trójwymiarowej, zapisz do pod nazwą krzywa3d.m x = [0:0.1:10]; y = 2 * cos(x); z = sin(2 * y); plot3(x, y, z, 'r') box on grid title('wykres krzywej w przestrzeni trójwymiarowej') xlabel('x') Strona 17/20

ylabel('y') zlabel('z') Wykreślone powierzchnie można poddać cieniowaniu używając funkcji shading flat shading interp shading faceted Napisz skrypt: % Skrypt rysuje powierzchnie poddane cieniowaniu clf [x, y] = meshgrid(-3.5:0.7:3.5); z = sin(x).* sin(y) + 4 * exp(-(x - 0.5).^2 - (y - 0.5).^2); %Wykres w trybie flat subplot(1, 3, 1) surf(x, y, z) shading flat title('flat') %Wykres w trybie interp subplot(1, 3, 2) surf(x, y, z) shading interp title('interp') %Wykres w trybie faceted subplot(1, 3, 3) surf(x, y, z) shading faceted title('faceted') Istnieją funkcje pozwalające na tworzenie dowolnych rysunków złożonych z linii i wielokątów line(x, y) - rysuje linię łamaną łącząc wierzchołki punktów wyznaczonych przez elementy wektorów x i y; fill(x, y, c ) - rysuje wielokąt o wierzchołkach w punktach wyznaczonych przez elementy wektorów x i y wypełniony kolorem określonym przez argument c Narysuj trójkąt o wierzchołkach w punktach (0,1); (3,4); (4,2) używając funkcji line oraz fill z wypełnieniem w kolorze niebieskim line([0 3 4 0],[1 4 2 1]) fill([0 3 4],[1 4 2], b ) Przykładowy skrypt liczący charakterystyki geometryczne przekroju teowego % Program oblicza charakterystyki geometryczne i rysuje rdzeń przekroju teowego % Dane do programu: % h - wysokość przekroju % b - szerokość półki % t - grubość środnika % d - grubość półki clear clc Strona 18/20

disp('program rysuje rdzeń przekroju teowego') disp(' ') % wprowadzanie danych h = input('podaj całkowitą wysokość przekroju h='); while h <= 0 disp('wysokość musi być wartością dodatnią') h = input('podaj całkowitą wysokość przekroju h='); b = input('podaj szerokość półki b='); while b <= 0 disp('szerokość musi być wartością dodatnią') b = input('podaj szerokość półki b='); t = input('podaj grubość środnika t='); while t <= 0 t >= b disp('grubość środnika musi być wartością dodatnią i mniejszą od szerokości półki') t = input('podaj grubość środnika t='); d = input('podaj grubość półki d='); while d <= 0 d >= h disp('grubość półki musi być wartością dodatnią i mniejszą od wysokości przekroju') d = input('podaj grubość półki d='); % charakterystyki geometryczne przekroju disp(' ') disp('pole powierzchni') b * d + (h - d) * t Sx = b * d * d / 2 + (h - d) * t * (d + (h - d) / 2); disp('odległość środka ciężkości od góry przekroju') yc = Sx / A disp('momenty bezwładności') Ix = b * d^3 / 12 + b * d * (yc - d / 2) * (yc - d / 2) + t * (h - d)^3 / 12 + t * (h - d) * (d + (h - d) / 2 - yc) * (d + (h - d) / 2 - yc) Iy = d * b^3 / 12 + (h - d) * t^3 / 12 disp('kwadraty promieni bezwładności') ix2 = Ix / A iy2 = Iy / A % obliczanie wierzchołków rdzenia u(1) = 0; v(1) = -ix2 / yc; u(2) = -iy2 / (b / 2); v(2) = 0; e = (h - d) / (t - b); x0 = (yc + b * e - d) / (2 * e); u(3) = -iy2 / x0; y0 =yc + b * e - d; v(3) = -ix2 / y0; u(4) = 0; v(4) = -ix2 / -(h - yc); u(5) = -u(3); v(5) = v(3); u(6) = -u(2); v(6) = 0; disp('współrzędne wierzchołków rdzenia w układzie przechodzącym przez środek ciężkości przekroju'); [u' v'] % rysowanie przekroju i rdzenia clf x = [-b/2 b/2 b/2 t/2 t/2 -t/2 -t/2 -b/2 -b/2]; y=[yc yc yc-d yc-d yc-h yc-h yc-d yc-d yc]; Strona 19/20

line(x, y, 'Color', 'red'); u(7) = u(1); v(7) = v(1); line(u, v, 'LineWidth', 2.5) line([-b/2 b/2], [0 0], 'Color', 'green'); line([0 0], [yc-h yc], 'Color', 'green'); Strona 20/20