Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

AUTOMATYZACJA OBLICZEŃ INŻYNIERSKICH Dr hab. inż. Jacek Kucharski, prof. PŁ Dr inż. Piotr Urbanek.

Podobne prezentacje


Prezentacja na temat: "AUTOMATYZACJA OBLICZEŃ INŻYNIERSKICH Dr hab. inż. Jacek Kucharski, prof. PŁ Dr inż. Piotr Urbanek."— Zapis prezentacji:

1 AUTOMATYZACJA OBLICZEŃ INŻYNIERSKICH Dr hab. inż. Jacek Kucharski, prof. PŁ Dr inż. Piotr Urbanek

2 CEL OGÓLNY Zdobycie umiejętności efektywnego wykorzystywania wybranych narzędzi informatycznych dla potrzeb rozwiązywania typowych problemów obliczeniowych, spotykanych w szeroko rozumianej praktyce inżynierskiej

3 CELE SZCZEGÓŁOWE Poznanie możliwości wybranych pakietów oprogramowania w zakresie wspomagania rozwiązywania problemów inżynierskich Łączenie różnych form programowania i umiejętnego wykorzystania funkcji wysokiego poziomu Zdobycie umiejętności transponowania problemu z dziedziny inżynierskiej do środowiska informatycznego

4 OBSZARY PROBLEMOWE obliczenia matematyczne statystyczna analiza danych analiza szeregów czasowych dopasowanie krzywej, regresja, interpolacja zagadnienia optymalizacyjne całkowanie i różniczkowanie numeryczne rozwiązywanie równań algebraicznych rozwiązywanie równań różniczkowych …

5 PAKIETY OPROGRAMOWANIA EXCEL MATLAB MATHCAD

6 MATLAB ogólna charakterystyka Pakiet programowy do wykonywania złożonych obliczeń numerycznych dla potrzeb naukowych i inżynierskich. setki wbudowanych funkcji wykorzystujących najwyższej klasy algorytmy bogaty zestaw tematycznych zestawów narzędziowych (Toolbox) możliwość pisania własnych funkcji w wewnętrznym języku programowania interfejs umożliwiający uruchamianie programów napisanych w Fortranie lub C …

7 MATLAB rys historyczny lata 70-te w USA powstają biblioteki do obliczeń macierzowych napisane w Fortanie 1980r. powstaje program (też w Fortanie) umożliwiający wykorzystywanie tych bibliotek bez potrzeby programowania w Fortranie (pierwowzór) od 1983r. trwają prace nad zastąpieniem Fortranu językiem C i dodaniem zintegrowanej grafiki 1985 r. pojawia się pierwsza wersja Matlaba (firma The Mathworks Inc.)

8 Tryby pracy Tryb interaktywny – potężny kalkulator z możliwością przeprowadzenia operacji graficznych Programowanie w Matlab – interpretowany język programowania wysokiego poziomu SIMULINK – symulacje komputerowe z wykorzystaniem programowania wizualnego

9 Wybrane typy plików M-pliki (pliki tekstowe zawierające programy napisane w Matlabie) Mat-pliki (pliki binarne zawierające dane w formacie Matlaba) Fig-pliki (binarne pliki wykresów) P-pliki (skompliowane M-pliki) Mex-pliki (programy zapisane w Fortranie lub C wywoływane z Matlaba) …

10 Środowisko pracy pulpit Matlaba –okno poleceń –okno bieżącego katalogu –okno przestrzeni roboczej –okno historii poleceń okno graficzne okno edytora

11 Środowisko pracy

12 Charakterystyka środowiska Matlab rozróżnia wielkość liter Pomoc: help temat, lookfor łańcuch Przestrzeń robocza (who, clear, save, load) Po wprowadzeniu polecenia Matlab sprawdza: –czy jest to zmienna –jeżeli nie to czy jest to funkcja wbudowana –jeżeli nie to czy jest to funkcja w bieżącym katalogu –jeżeli nie to czy jest to funkcja w ścieżce dostępu Ścieżka dostępu –zawarta w zmiennej path generowanej przez plik pathdef.m –rozszerzanie: polecenia addpath, savepath

13 Charakterystyka środowiska - cd rola, ; … przydatne polecenia (clc, more, diary) historia poleceń MATLAB rozróżnia małe i wielkie litery. >>save - zapisuje wszystkie zmienne w pliku matlab.mat >>save temp - zapisuje wszystkie zmienne w pliku temp.mat >>save temp X Y - zapisuje zmienne X i Y w pliku temp.mat load temp help – wyświetla zestawienie katalogów MATLAB-a wraz z ich opisem

14 Charakterystyka środowiska - cd help nazwa polecenia – podaje podpowiedź na temat żądanego polecenia, np. help ver lookfor szukana_nazwa – przeszukuje wszystkie teksty pomocy w celu odnalezienia szukanej nazwy, lub jej fragmentów, which nazwa_m-pliku – powoduje wyświetlenie ścieżki dostępu do m-pliku lub do m-funkcji matlabpath – podaje przeszukiwane katalogi programu MATLAB

15 Liczby, zmienne i wyrażenia array (typ tablicowy) char (typ znakowy) numeric (typ numeryczny) cell (typ komórkowy) struct (typ strukturalny) Numeric - typ numeryczny podwójnej precyzji. Jest to podstawowy typ danych dla zmiennych MATLAB-a (wszystkie obliczenia dla zmiennych numerycznych są prowadzone w trybie podwójnej precyzji). Char – typ tablicowy znakowy lub łańcuchowy (każdy znak zapisywany jest 16-bitowo). cell – typ komórkowy. Elementy tablic komórkowych mogą zawierać inne tablice, struct – typ strukturalny. Odwołują się do nazw pól, które mogą zawierać inne tablice.

16 Rodzaje tablic w Matlabie macierze, tablice wielowymiarowe, tablice komórkowe, tablice strukturalne, A =

17 Programowanie w Matlabie Skrypty x = pi/100:pi/100:10*pi; y = sin(x)./x; plot(x,y) grid function [b, j] = desc_sort(a) [b,j] = sort(-a); b = -b; a=[ ] [b c]=desc_sort(a) b = c = Funkcje

18 Funkcje inline i komenda feval f = inline('sqrt(x.^2+y.^2)','x','y') f = Inline function: f(x,y) = sqrt(x.^2+y.^2) w=f(3,4) w = 5

19 Funkcje inline i komenda feval function y = calka_ozn(fname, fpname, a, b) % fname - nazwa funkcji, % fpname - nazwa I-szej pochodnej funkcji % a,b – górny i dolny przedział całkowania h = b - a; y = (h/2).*(feval(fname,a) + feval(fname,b))+ (h.^2)/12.*… (feval(fpname,a) -feval(fpname,b)); y=calka_ozn('sin','cos',0,1) y =

20 Funkcja eval expression = input('Podaj wyrażenie: ','s'); x=input('Podaj wartości do obliczeń: '); y=eval(expression); plot(y,'*');

21 Funkcje sterujące wykonywaniem programu w środowisku Matlab Petla for for k = array komendy end; for n=0:10 x(n+1) = sin(pi*n/10); end; Pętle for zagnieżdżone: H = zeros(5); for k=1:5 for l=1:5 H(k,l) = 1/(k+l-1); end; Pętla for powinna być używana jedynie w przypadkach, gdy inne metody nie mogą być zastosowane. Przykładowo: A = zeros(10); for k=1:10 for l=1:10 A(k,l) = sin(k)*cos(l); end; Zamiast pętli można zastosować zapis skrócony: k = 1:10; A = sin(k)'*cos(k);

22 Funkcje sterujące wykonywaniem programu w środowisku Matlab Pętla while while expression statements end; q = pi; while q > 0.01 q = q/2; end; Instrukcja if if expression komendy end; if expression komendy (jeżeli true) else komendy (jeżeli false) end;

23 Funkcje sterujące wykonywaniem programu w środowisku Matlab if expression1 komendy elseif expression 2 komendy elseif …. else komendy end Wielomiany Czebyszewa: function T = ChebT(n) t0 = 1; t1 = [1 0]; if n == 0 T = t0; elseif n == 1; T = t1; else for k=2:n T = [2*t1 0] - [0 0 t0]; t0 = t1; t1 = T; end

24 Funkcje sterujące wykonywaniem programu w środowisku Matlab Konstrukcja switch-case switch wyrażenie (skalar lub string) case wartość1 komendy case value2 komendy. otherwise statements end x = ceil(10*rand); switch x case {1,2} disp(Wartość = 20%'); case {3,4,5} disp(Wartość = 30%'); otherwise disp(Wartość = 50%'); end

25 Operatory Operator Opis < Less than <= Less than or equal to > Greater >= Greater or equal to == Equal to ~= Not equal to Operator logiczny Opis | And & Or ~ Not

26 Tablice komórkowe Deklarowanie tablic: A(1,1) = {'John Brown'}; A(1,2) = {[ ]}; Indeksowanie B{1,1} = 'John Brown'; B{1,2} = [ ]; celldisp(A) A{1} = John Brown A{2} =

27 Zaokrąglanie wartości FunkcjaOpis floorZaokrągla w kierunku minus nieskończoności ceilZaokrągla w kierunku plus nieskończoności fixZaokrągla do zera roundZaokrągla w kierunku liczby najbliższej wartości całkowitej

28 Grafika w Matlabie Grafika dwuwymiarowa for n=1:2:5 n10 = 10*n; x = linspace(-2,2,n10); y = x./(1+x.^2); plot(x,y,'r') title(sprintf('Rysunek %g. Wykres dla n = %g punktów.',(n+1)/2,n10)) axis([-2,2,-.8,.8]) xlabel('x') ylabel('y') grid pause(3) end

29 k = 0; for n=1:3:10 n10 = 10*n; x = linspace(-2,2,n10); y = x./(1+x.^2); k = k+1; subplot(2,2,k) plot(x,y,'r') title(sprintf(Rysunek %g. Wykres dla n = %g points.', k, n10)) xlabel('x') ylabel('y') axis([-2,2,-.8,.8]) grid pause(3); end Grafika w Matlabie, cd..

30 t = 0:pi/100:2*pi; x1 = 3 + 6*cos(t); y1 = *sin(t); x2 = 7 + 2*cos(t); y2 = 8 + 6*sin(t); h1 = plot(x1,y1,'r',x2,y2,'b'); set(h1,'LineWidth',1.25) axis('square') xlabel('x') h = get(gca,'xlabel'); set(h,'FontSize',12) set(gca,'XTick',-4:10) ylabel('y') h = get(gca,'ylabel'); set(h,'FontSize',12) set(gca,'YTick',-12:2:14) title('Graphs of (x-3)^2/36+(y+2)^2/81 = 1 and (x-7)^2/4+(y-8)^2/36 =1.') h = get(gca,'Title'); set(h,'FontSize',12) grid Grafika w Matlabie, cd..

31 Grafika trójwymiarowa clear; clc; % Grafika 3D t = -10*pi:pi/100:10*pi; x = t.*cos(t); y = t.*sin(t); h = plot3(x,y,t); set(h,'LineWidth',1.25) title('Krzywa u(t) = ') h = get(gca,'Title'); set(h,'FontSize',12) xlabel('x') h = get(gca,'xlabel'); set(h,'FontSize',12) ylabel('y') h = get(gca,'ylabel');set(h,'FontSize',12) zlabel('z') h = get(gca,'zlabel'); set(h,'FontSize',12) grid

32 Grafika trójwymiarowa, cd.. x = -1:0.05:1; y = x; [xi, yi] = meshgrid(x,y); zi = yi.^2 – xi.^2; mesh(xi, yi, zi) axis off


Pobierz ppt "AUTOMATYZACJA OBLICZEŃ INŻYNIERSKICH Dr hab. inż. Jacek Kucharski, prof. PŁ Dr inż. Piotr Urbanek."

Podobne prezentacje


Reklamy Google