Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

AUTOMATYZACJA OBLICZEŃ INŻYNIERSKICH

Podobne prezentacje


Prezentacja na temat: "AUTOMATYZACJA OBLICZEŃ INŻYNIERSKICH"— 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 graficzne okno edytora
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
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 Funkcje a=[ ] function [b, j] = desc_sort(a) [b ,j] = sort(-a); b = -b; [b c]=desc_sort(a) b = c =

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

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); Pętle ‘for’ zagnieżdżone: H = zeros(5); for k=1:5 for l=1:5 H(k,l) = 1/(k+l-1); 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; Instrukcja if if expression komendy end; komendy (jeżeli true) else komendy (jeżeli false)

23 Funkcje sterujące wykonywaniem programu w środowisku Matlab
if expression1 komendy elseif expression 2 elseif … . else 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 . 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'};
Indeksowanie B{1,1} = 'John Brown'; B{1,2} = [ ]; celldisp(A) A{1} = John Brown A{2} =

27 Zaokrąglanie wartości
Funkcja Opis floor Zaokrągla w kierunku minus nieskończoności ceil Zaokrągla w kierunku plus nieskończoności fix Zaokrągla do zera round Zaokrą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 Grafika w Matlabie, cd.. 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

30 Grafika w Matlabie, cd.. h = get(gca,'xlabel'); set(h,'FontSize',12)
set(gca,'XTick',-4:10) ylabel('y') h = get(gca,'ylabel'); 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'); grid 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')

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) = < t*cos(t), t*sin(t), t >') h = get(gca,'Title'); set(h,'FontSize',12) xlabel('x') h = get(gca,'xlabel'); ylabel('y') h = get(gca,'ylabel');set(h,'FontSize',12) zlabel('z') h = get(gca,'zlabel'); 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"

Podobne prezentacje


Reklamy Google