AUTOMATYZACJA OBLICZEŃ INŻYNIERSKICH

Slides:



Advertisements
Podobne prezentacje
OBLICZENIA NUMERYCZNE
Advertisements

RYS HISTORYCZNY W latach 70tych na zlecenie National Science Fundation powstały pierwsze biblioteki fortranowskie do obliczeń numerycznych. Jeden z.
Programowanie w języku Visual Basic
Wizualizacja rozkładu zmiennej
Algorytmy – zapis struktur programowania
Programowanie I Rekurencja.
Języki programowania C++
Tworzenie i obsługa programów – przykład 3 uwagi cd. Wykorzystując różne klasy biblioteki języka Java należy pamiętać w jakim pakiecie się znajdują. Wszystkie.
PROJEKTOWANIE GRAFICZNE
ZŁOŻONOŚĆ OBLICZENIOWA
Laboratoria z „wstęp do programowania”
PODSTAWY JĘZYKA PHP 1. czym jest 2. składnia 3. wersje 4. bazy danych
Wykład 2 struktura programu elementy języka typy zmienne
Wyrażenia Wyrażenie w Fortranie jest poprawną syntaktycznie kombinacją zmiennych, stałych, operatorów i funkcji. Wyrażenia są jednozdaniowymi przepisami.
Instrukcja skoku GO TO etykieta Np. GO TO 100 ….. 100WRITE (*,*) Przeskok do instrukcji 100 Uwaga! NIE WOLNO skakać do wnętrzna złożonych instrukcji warunkowych.
Programowanie w języku Fortran 95
obliczeNIA symbolicznE w MATLAB’ie
Podstawy programowania
Programowanie w języku Matlab
Wykład 2 Instrukcje sterujące
Wykład 2 Dr Aneta Polewko-Klim
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Programowanie w języku Matlab
Programowanie Windows na przykładzie C# część 1
SANKOM Sp. z o.o Warszawa ul. Popularna 14/3 Program Audytor SDG w wersji 1.0 przeznaczony jest do szybkiego doboru grzejników w budynkach mieszkalnych.
C# Platforma .NET CZ.3 Kuba Ostrowski.
Podstawy informatyki 2013/2014
Edytor tesktu i skrypty
Użytkowanie i programowanie Matlaba
Metody obliczeniowe i podstawy programowania
Informatyka MZT1 Wykład 6 Iteracje while i repeat Tablice Rekordy
MOiPP Matlab Sortowanie Obliczenia symboliczne - Symbolic ToolBox
MOiPP Wykład 3 Matlab Przykłady prostych metod obliczeniowych.
Visual Basic for Applications Poziom podstawowy Zajęcia 2
Wykład 10 typ zbiorowy rekurencja.
Programy wspomagające projektowanie instalacji sanitarnych
  ELEMENTY JĘZYKA JAVA komentarze w Javie, słowa kluczowe i operatory, proste typy danych, tablice, podstawowy zestaw instrukcji.
Ogólna struktura programu w TP
MOiPP Wykład 7 Matlab cd..
Metody numeryczne metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane tą drogą wyniki są na ogół przybliżone, jednak.
MOiPP Matlab Przykłady metod obliczeniowych Obliczenia symboliczne
MOiPP Matlab Aproksymacja Interpolacja Inne metody obliczeniowe
MOiPP Wykład 5 Matlab Przykłady praktyczne Równania różniczkowe.
Obliczenia symboliczne
PWSW Mechatronika Wykład 7 Matlab cd.
1 Zagadnienia na egzamin. 2 Język C podsumowanie Struktura programu w języku C Zmienne, Stałe Operacje arytmetyczne Operatory logiczne Priorytety operatorów.
Wprowadzenie do Matlaba
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Instrukcje warunkowe w php. Pętla FOR Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Dominik Benduski Michał Mandecki Podstawy Visual Basic w Excelu.
Informatyka Transport Matlab c.d. Macierze cd. Wykresy graficzne
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
Pakiety numeryczne Operatory, instrukcje sterujące, operacje bitowe Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Osoby prowadzące zajęcia z Informatyki (II część): Prof. Mirosław Czarnecki (W+L) Konsultacje:piątek (p. 302a)
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Osoby prowadzące zajęcia z Informatyki (II część): Prof. Mirosław Czarnecki (W+L) Konsultacje:piątek (p. 302a)
Czym jest PHP? ● Językiem programowania przeznaczonym do tworzenia i generowania dynamicznych stron WWW. Działa po stronie serwera: Klient Żądanie strony.
Programowanie w Octave
Wykład 4 Dr Aneta Polewko-Klim
Informacje ogólne.
Sygnały i systemy dynamiczne
Podstawy Informatyki.
Tomasz Adamowicz Anna Kostun
ETO w Inżynierii Chemicznej
Visual Basic w programie Microsoft Excel
Dane, zmienne, instrukcje
Zapis prezentacji:

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

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

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

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 …

PAKIETY OPROGRAMOWANIA EXCEL MATLAB MATHCAD

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 …

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.)

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

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) …

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

Środowisko pracy

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

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

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

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.

Rodzaje tablic w Matlabie macierze, tablice wielowymiarowe, tablice komórkowe, tablice strukturalne, A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1

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

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')

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 = 0.4590

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

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);

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)

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

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

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

Tablice komórkowe Deklarowanie tablic: A(1,1) = {'John Brown'}; Indeksowanie B{1,1} = 'John Brown'; B{1,2} = [1 2 3 4 5 6 7 8 9]; celldisp(A) A{1} = John Brown A{2} = 1 2 3 4 5 6 7 8 9

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

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

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

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 = -2 + 9*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')

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

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