Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.