Podstawowe struktury danych Tablice, macierze. LABORKA Piotr Ciskowski

Podobne dokumenty
i proste algorytmy numeryczne LABORKA Piotr Ciskowski

Macierze. Rozdział Działania na macierzach

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

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

15. Macierze. Definicja Macierzy. Definicja Delty Kroneckera. Definicja Macierzy Kwadratowej. Definicja Macierzy Jednostkowej

5. Rozwiązywanie układów równań liniowych

Lista. Algebra z Geometrią Analityczną. Zadanie 1 Przypomnij definicję grupy, które z podanych struktur są grupami:

2. Układy równań liniowych

Układy równań liniowych i metody ich rozwiązywania

do MATLABa programowanie WYKŁAD Piotr Ciskowski

Macierze i Wyznaczniki

Metoda eliminacji Gaussa. Autorzy: Michał Góra

det[a 1,..., A i,..., A j,..., A n ] + det[a 1,..., ka j,..., A j,..., A n ] Dowód Udowodniliśmy, że: det[a 1,..., A i + ka j,..., A j,...

MATLAB - laboratorium nr 1 wektory i macierze

do MATLABa podstawowe operacje na macierzach WYKŁAD Piotr Ciskowski

Metody i analiza danych

O MACIERZACH I UKŁADACH RÓWNAŃ

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

Wprowadzenie do Scilab: macierze

3. Macierze i Układy Równań Liniowych

1 Układy równań liniowych

ALGEBRA z GEOMETRIA, ANALITYCZNA,

DB Algebra liniowa semestr zimowy 2018

Wykład 5. Metoda eliminacji Gaussa

Metody numeryczne Wykład 4

1 Zbiory i działania na zbiorach.

1 Macierze i wyznaczniki

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

MACIERZE I WYZNACZNIKI

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Wyk lad 5 W lasności wyznaczników. Macierz odwrotna

Odwrócimy macierz o wymiarach 4x4, znajdującą się po lewej stronie kreski:

Ekoenergetyka Matematyka 1. Wykład 3.

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

, A T = A + B = [a ij + b ij ].

Algebra z Geometrią Analityczną. { x + 2y = 5 x y = 9. 4x + 5y 3z = 9, 2x + 4y 3z = 1. { 2x + 3y + z = 5 4x + 5y 3z = 9 7 1,

Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

Układy równań i nierówności liniowych

Podstawowe operacje na macierzach

Luty 2001 Algorytmy (7) 2000/2001

Analiza matematyczna i algebra liniowa Macierze

1 Macierz odwrotna metoda operacji elementarnych

Ćwiczenie 3: Wprowadzenie do programu Matlab

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Wykład 7 Macierze i wyznaczniki

φ(x 1,..., x n ) = a i x 2 i +

Macierze - obliczanie wyznacznika macierzy z użyciem permutacji

Obliczenia w programie MATLAB

Podstawowe operacje na macierzach, operacje we/wy

Własności wyznacznika

Wprowadzenie do Scilab: macierze

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

WYDAWNICTWO PAŃSTWOWEJ WYŻSZEJ SZKOŁY ZAWODOWEJ WE WŁOCŁAWKU

Układy równań liniowych

04 Układy równań i rozkłady macierzy - Ćwiczenia. Przykład 1 A =

Wykład 14. Elementy algebry macierzy

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Ćwiczenie 3. MatLab: Algebra liniowa. Rozwiązywanie układów liniowych

Lista. Algebra z Geometrią Analityczną. Zadanie 1 Zapisz za pomocą spójników logicznych i kwantyfikatorów: x jest większe niż 6 lub mniejsze niż 4

Liczby rzeczywiste. Działania w zbiorze liczb rzeczywistych. Robert Malenkowski 1

Algorytmy i struktury danych. Wykład 4

Lista 6. Kamil Matuszewski 13 kwietnia D n =

Postać Jordana macierzy

UKŁADY RÓWNAŃ LINIOWYCH

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

Zaawansowane metody numeryczne

Wykład 6. Metoda eliminacji Gaussa: Eliminacja z wyborem częściowym Eliminacja z wyborem pełnym

Zadania egzaminacyjne

5 Wyznaczniki. 5.1 Definicja i podstawowe własności. MIMUW 5. Wyznaczniki 25

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Zadania z algebry liniowej - sem. I Przestrzenie liniowe, bazy, rząd macierzy

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Zaawansowane metody numeryczne

Definicja macierzy Typy i właściwości macierzy Działania na macierzach Wyznacznik macierzy Macierz odwrotna Normy macierzy RACHUNEK MACIERZOWY

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

WHILE (wyrażenie) instrukcja;

MATEMATYKA I SEMESTR ALK (PwZ) 1. Sumy i sumy podwójne : Σ i ΣΣ

Elementy metod numerycznych - zajęcia 9

Układy równań liniowych

Powtórzenie podstawowych zagadnień. związanych ze sprawnością rachunkową *

x y

3 1 + i 1 i i 1 2i 2. Wyznaczyć macierze spełniające własność komutacji: [A, X] = B

= Zapiszemy poniższy układ w postaci macierzy. 8+$+ 2&=4 " 5 3$ 7&=0 5$+7&=4

Analiza numeryczna Lista nr 3 (ćwiczenia) x x 2 n x.

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

RACHUNEK MACIERZOWY. METODY OBLICZENIOWE Budownictwo, studia I stopnia, semestr 6. Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska

Metody numeryczne II. Układy równań liniowych

Układy równań liniowych

Przykład 2 układ o rozwiązaniu z parametrami. Rozwiążemy następujący układ równań:

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

Rozwiązywanie układów równań liniowych

Algebra macierzy

1. Liczby zespolone i

0 + 0 = 0, = 1, = 1, = 0.

WEKTORY I MACIERZE. Strona 1 z 11. Lekcja 7.

Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne.

Wyk lad 4 Dzia lania na macierzach. Określenie wyznacznika

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

Zadania do samodzielnego rozwiązania

Transkrypt:

Podstawowe struktury danych Tablice, macierze LABORKA Piotr Ciskowski

przykład 1. zabawy z macierzami wygeneruj macierze Pascala różnych rozmiarów, wydedukuj z nich zasadę tworzenia» pascal ( 5 )

przykład 1. zabawy z macierzami utwórz macierz z obrazu Dürera

przykład 1. zabawy z macierzami utwórz macierz z obrazu Dürera» A = [ 16 3 2 13 ; 5 10 11 8 ; 9 6 7 12 ; 4 15 14 1 ] A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 zsumuj jej elementy w kolumnach» sum ( A )

przykład 1. zabawy z macierzami utwórz macierz z obrazu Dürera» A = [ 16 3 2 13 ; 5 10 11 8 ; 9 6 7 12 ; 4 15 14 1 ] A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 stransponuj ją» A

przykład 1. zabawy z macierzami utwórz macierz z obrazu Dürera» A = [ 16 3 2 13 ; 5 10 11 8 ; 9 6 7 12 ; 4 15 14 1 ] A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 oblicz sumę elementów w kolumnach tej macierzy stransponowanej» sum ( ans )» sum ( A )

przykład 1. zabawy z macierzami utwórz macierz z obrazu Dürera» A = [ 16 3 2 13 ; 5 10 11 8 ; 9 6 7 12 ; 4 15 14 1 ] A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 oblicz sumę elementów w kolumnach tej macierzy stransponowanej i umieść ja w kolumnie» sum(a )

przykład 1. zabawy z macierzami utwórz macierz z obrazu Dürera» A = [ 16 3 2 13 ; 5 10 11 8 ; 9 6 7 12 ; 4 15 14 1 ] A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 wyciągnij z macierzy A główną przekątną i umieść ją w kolumnie» diag ( A )

przykład 1. zabawy z macierzami utwórz macierz z obrazu Dürera» A = [ 16 3 2 13 ; 5 10 11 8 ; 9 6 7 12 ; 4 15 14 1 ] A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 oblicz sumę elementów na głównej przekątnej» sum ( diag ( A ) )» trace ( A )

przykład 1. zabawy z macierzami utwórz macierz z obrazu Dürera» A = [ 16 3 2 13 ; 5 10 11 8 ; 9 6 7 12 ; 4 15 14 1 ] A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 oblicz sumę elementów w czwartej kolumnie macierzy A» A(1,4) + A(2,4) + A(3,4) + A(4,4)» sum ( A(:,4) )

przykład 1. zabawy z macierzami utwórz macierz z obrazu Dürera» A = [ 16 3 2 13 ; 5 10 11 8 ; 9 6 7 12 ; 4 15 14 1 ] A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 wygeneruj ciąg liczb od 1 do 16» 1 : 16 zsumuj wszystkie elementy macierzy A i podziel przez 4» sum ( A ( 1:16 ) ) / 4» sum ( A ( : ) ) / 4» sum ( sum ( A ) ) / 4

przykład 1. zabawy z macierzami utwórz macierz magiczną o wymiarze 4 x 4» B = magic ( 4 ) B = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 przypomnij sobie macierz A» A A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1

przykład 1. zabawy z macierzami w macierzy B zamień miejscami kolumny 2 i 3» B = B ( :, [ 1 3 2 4 ] )

przykład 1. zabawy z macierzami w macierzy B zamień miejscami kolumny 2 i 3» B = B ( :, [ 1 3 2 4 ] ) B = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 jeszcze raz zamień miejscami kolumny 2 i 3» B = B ( :, [ 1 3 2 4 ] ) B = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1

przykład 1. zabawy z macierzami sprawdź, które elementy macierzy A i B są sobie równe» A = = B sprawdź, czy macierze A i B są sobie równe» all ( A = = B )» all ( all ( A = = B ) )

przykład 1. zabawy z macierzami sprawdź, które elementy macierzy A i B są sobie równe» A = = B ans = 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 sprawdź, czy którekolwiek elementy macierzy A i B są sobie równe» any ( A = = B )» any ( any ( A = = B ) )

przykład 1. zabawy z macierzami sprawdź, które elementy macierzy A i B są sobie równe» A = = B ans = 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 sprawdź, czy którekolwiek elementy macierzy A i B są różne» any ( A ~ = B )» any ( any ( A ~ = B ) )

przykład 1. zabawy z macierzami sprawdź, które elementy macierzy A i B są sobie równe» A = = B ans = 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 sprawdź, czy wszystkie elementy macierzy A i B są od siebie różne» all ( all ( A ~ = B ) )

przykład 1. zabawy z macierzami oblicz wyznaczniki obu macierzy» det(a)» det(b) oblicz odwrotności obu macierzy» inv(a)» inv(b)» A^(-1)» B^(-1)

przykład 2. macierze rzadkie macierze o dużej liczbie zer MATLAB pamięta tylko elementy niezerowe i ich pozycje szybkie obliczenia ryzyko błędów np. cos(0) = 1 gęstość / wypełnienie macierzy rzadkiej stosunek elementów niezerowych do wszystkich

przykład 2. macierze rzadkie wygeneruj zwykłą macierz jednostkową o wymiarach 10 10» A = eye ( 10 ) sprawdź, ile ma elementów niezerowych» nnz ( A ) spytaj, czy jest rzadka» issparse ( A )

przykład 2. macierze rzadkie wygeneruj rzadką macierz jednostkową o wymiarach 10 10» Asp = speye ( 10 )» Asp = sparse ( A ) spytaj, czy jest rzadka» issparse ( Asp )

przykład 2. macierze rzadkie wygeneruj rzadką macierz liczb losowych z rozkładu normalnego o wymiarach 5 5 i wypełnieniu 0.5» Bsp = sprandn ( 5, 5, 0.5 ) oblicz jej gęstość» nnz ( Bsp ) / 25 zamień ją na macierz normalną (pełną)» B = full ( Bsp )

przykład 2. macierze rzadkie wygeneruj rzadką macierz liczb losowych z rozkładu normalnego o wymiarach 5 5 i wypełnieniu 0.8» Bsp = sprandn ( 5, 5, 0.8 ) odwróć ją» Bodwr = Bsp ^ ( -1 ) i zobacz, ile ma elementów

przykład 2. macierze rzadkie wygeneruj rzadką macierz liczb losowych z rozkładu normalnego o wymiarach 50 50 i wypełnieniu 0.3» Bsp = sprandn ( 50, 50, 0.3 ) ; i obejrzyj ją» spy ( Bsp )

przykład 2. macierze rzadkie wygeneruj rzadką macierz liczb losowych z rozkładu normalnego o wymiarach 50 50 i wypełnieniu 0.5» Bsp = sprandn ( 50, 50, 0.5 ) ; i obejrzyj ją» spy ( Bsp )

przykład 2. macierze rzadkie wygeneruj rzadką macierz liczb losowych z rozkładu normalnego o wymiarach 50 50 i wypełnieniu 0.8» Bsp = sprandn ( 50, 50, 0.8 ) ; i obejrzyj ją» spy ( Bsp )

przykład 2. macierze rzadkie wygeneruj rzadką macierz liczb losowych z rozkładu normalnego o wymiarach 50 50 i wypełnieniu 0.95» Bsp = sprandn ( 50, 50, 0.95 ) ; i obejrzyj ją» spy ( Bsp )

przykład 2. macierze rzadkie wygeneruj rzadką macierz liczb losowych z rozkładu normalnego o wymiarach 500 500 i wypełnieniu 0.3» Bsp = sprandn ( 500, 500, 0.3 ) ; i obejrzyj ją» spy ( Bsp )

przykład 2. macierze rzadkie wygeneruj rzadką macierz liczb losowych z rozkładu normalnego o wymiarach 500 500 i wypełnieniu 0.1» Bsp = sprandn ( 500, 500, 0.1 ) ; i obejrzyj ją» spy ( Bsp )

przykład 2. macierze rzadkie wygeneruj rzadką macierz liczb losowych z rozkładu normalnego o wymiarach 500 500 i wypełnieniu 0.05» Bsp = sprandn ( 500, 500, 0.05 ) ; i obejrzyj ją» spy ( Bsp )

przykład 2. macierze rzadkie wygeneruj rzadką macierz liczb losowych z rozkładu normalnego o wymiarach 500 500 i wypełnieniu 0.01» Bsp = sprandn ( 500, 500, 0.01 ) ; i obejrzyj ją» spy ( Bsp )

przykład 2. macierze rzadkie wygeneruj rzadką macierz liczb losowych z rozkładu normalnego o wymiarach 5 5 i wypełnieniu 0.5» Bsp = sprandn ( 5, 5, 0.5 ) i sprawdź, czy rzeczywiście MATLAB pomyli się przy cos(0)» Csp = cos ( Bsp ) obejrzyj sobie macierz w normalnym widoku» C = full ( Csp )

przykład 3. odwracanie macierzy wygeneruj zwykłą macierz liczb losowych o wymiarach 100 100» D = rand ( 100 ) ; obejrzyj ją na obrazku» imagesc ( D )» colormap ( hot ) % w semestrze zimowym» colormap ( cool ) % w semestrze letnim» axis square

przykład 3. odwracanie macierzy odwróć ją» E = inv ( D ) i wynik obejrzyj na obrazku (w nowym okienku)» figure» imagesc ( E )» colormap ( hot ) % w semestrze zimowym» colormap ( cool ) % w semestrze letnim» axis square

przykład 3. odwracanie macierzy pomnóż obie macierze» F = D * E ; i wynik obejrzyj na obrazku (w nowym okienku)» figure» imagesc ( F )» colormap ( hot ) % w semestrze zimowym» colormap ( cool ) % w semestrze letnim» axis square

przykład 3. odwracanie macierzy pomnóż obie macierze» F = D * E ; i znów obejrzyj na obrazku (w nowym okienku)» figure» imagesc ( F )» colormap ( hot ) % w semestrze zimowym» colormap ( cool ) % w semestrze letnim» axis square

zadanie 1. obliczanie wartości liczby e Funkcję e x można przedstawić w postaci szeregu: Napisz funkcję, która oblicza sumę tego szeregu dla podanej wartości x: metodą nieefektywną obliczając każdy wyraz osobno i korzystając z zewnętrznej funkcji do obliczania silni lepszą metodą - obliczając każdy wyraz na podstawie poprzedniego Niech funkcja kończy obliczenia dla wyrazu, dla którego gdzie ε jest z góry zadaną dokładnością Oblicz e -5.5 z dokładnością 10-10 Porównaj wyniki z wynikami wbudowanej funkcji exp(x) Oblicz 1000 razy e -5.5 z dokładnością 10-10 i porównaj czas obliczeń nieefektywnych, efektywnych oraz wbudowanej funkcji exp Narysuj wykres błędu oszacowania różnicy między obu funkcjami function [ y ] = expszer ( x, eps ) 1 2 3 i x x x x x e = 1+ + + + L+ + L 1! 2! 3! i! i x < ε i!

zadanie 1. obliczanie wartości liczby 1 2 3 i x x x x x e = 1+ + + + L+ + L 1! 2! 3! i! function [ y ] = expszer1 ( x, eps ) y =... i =... yi =... y =... while... i =... yi = x^i / silnia(i) ; y =... end

zadanie 1. obliczanie wartości liczby 1 2 3 i x x x x x e = 1+ + + + L+ + L 1! 2! 3! i! function [ y ] = silnia ( x ) y = 1 ; for i = 1 : x, y = y * i ; end

zadanie 1. obliczanie wartości liczby 1 2 3 i x x x x x e = 1+ + + + L+ + L 1! 2! 3! i! skrypt exptest1: clc disp ( 'Obliczanie funkcji exp z szeregu ' ) ; disp ( '-------------------------------- ' ) ; x = input ( 'Podaj x: ' ) ; eps = input ( 'Podaj dokładność obliczeń: ' ) ; format short, shortwynik = [ expszer1(x,eps) ; exp(x) ] format long, longwynik = [ expszer1(x,eps) ; exp(x) ] format long e, longewynik = [ expszer1(x,eps) ; exp(x) ] format long g, longgwynik = [ expszer1(x,eps) ; exp(x) ]

zadanie 1. obliczanie wartości liczby 1 2 3 i x x x x x e = 1+ + + + L+ + L 1! 2! 3! i!» exptest1 Obliczanie funkcji exp z szeregu -------------------------------- Podaj x: 1 Podaj dokładność obliczeń: 0.001 shortwynik = 2.7183 2.7183 longwynik = 2.718253968253968 2.718281828459046 longewynik = 2.718253968253968e+000 2.718281828459046e+000 longgwynik = 2.71825396825397 2.71828182845905

zadanie 1. obliczanie wartości liczby 1 2 3 i x x x x x e = 1+ + + + L+ + L 1! 2! 3! i! function [ y ] = expszer2 ( x, eps ) y =... i =... yi =... y =... while... i =... yi = yi * x / i ; y =... end

zadanie 1. obliczanie wartości liczby 1 2 3 i x x x x x e = 1+ + + + L+ + L 1! 2! 3! i! skrypt exptest2: clc disp ( 'Obliczanie funkcji exp z szeregu ' ) ; disp ( '-------------------------------- ' ) ; x = input ( 'Podaj x: ' ) ; eps = input ( 'Podaj dokładność obliczeń: ' ) ; format short, shortwynik = [ expszer2(x,eps) ; exp(x) ] format long, longwynik = [ expszer2(x,eps) ; exp(x) ] format long e, longewynik = [ expszer2(x,eps) ; exp(x) ] format long g, longgwynik = [ expszer2(x,eps) ; exp(x) ]

zadanie 1. obliczanie wartości liczby 1 2 3 i x x x x x e = 1+ + + + L+ + L 1! 2! 3! i!» exptest2 Obliczanie funkcji exp z szeregu -------------------------------- Podaj x: 1 Podaj dokładność obliczeń: 0.001 shortwynik = 2.7183 2.7183 longwynik = 2.718253968253968 2.718281828459046 longewynik = 2.718253968253968e+000 2.718281828459046e+000 longgwynik = 2.71825396825397 2.71828182845905

zadanie 1. obliczanie wartości liczby 1 2 3 i x x x x x e = 1+ + + + L+ + L 1! 2! 3! i!» exptest2 Obliczanie funkcji exp z szeregu -------------------------------- Podaj x: -5.5 Podaj dokładność obliczeń: 0.0000000001 shortwynik = 0.0041 0.0041 longwynik = 0.004086771447736 0.004086771438464 longewynik = 4.086771447736385e-003 4.086771438464067e-003 longgwynik = 0.00408677144773638 0.00408677143846407

zadanie 1. obliczanie wartości liczby 1 2 3 i x x x x x e = 1+ + + + L+ + L 1! 2! 3! i! function [ y, i ] = expszer3 ( x, eps ) % ta funkcja robi dokładnie to samo, co expser2, % tylko w wyniku podaje również liczbę kroków, % po których funkcja zakończyła szereg...

zadanie 1. obliczanie wartości liczby 1 2 3 i x x x x x e = 1+ + + + L+ + L 1! 2! 3! i! skrypt exptest3: clc disp ( 'Obliczanie funkcji exp z szeregu - wykresy ' ) ; disp ( '------------------------------------------ ' ) ; x = input ( 'Podaj x: ' ) ; liczbakrokow = zeros(21,1) ; y = zeros(21,1) ; i = 1 ; for eps = logspace(0,-20,21), [ y(i,1), liczbakrokow(i,1) ] = expszer3(x,eps) ; i = i + 1 ; end eps = logspace(0,-20,21)' ; porownanie = [ 0, 0, exp(x), 0 ; % wart. funkcji exp eps, liczbakrokow, y, y - exp(x)*ones(21,1) ]

zadanie 1. obliczanie wartości liczby 1 2 3 i x x x x x e = 1+ + + + L+ + L 1! 2! 3! i!» exptest3

zadanie 1. obliczanie wartości liczby 1 2 3 i x x x x x e = 1+ + + + L+ + L 1! 2! 3! i! skrypt exptest4: clc disp ( 'Obliczanie funkcji exp z szeregu - czas ' ) ; disp ( '--------------------------------------- ' ) ; x = input ( 'Podaj x : ' ) ; eps = input ( 'Podaj eps: ' ) ; n = input ( 'Podaj n : ' ) ; expszer1pocz = clock ; % metoda nieefektywna for i = 1 : n, y = expszer1(x,eps); end expszer1kon = clock ; expszer1czas = etime ( expszer1kon, expszer1pocz ) ; expszer2pocz =... % metoda efektywna exppocz =... % funkcja wbudowana czasy = [ expszer1czas ; expszer2czas ; expczas ]

zadanie 1. obliczanie wartości liczby 1 2 3 i x x x x x e = 1+ + + + L+ + L 1! 2! 3! i!» exptest4

zadanie 2. obliczanie wartości wielomianu - schemat Hornera Należy obliczyć wartość wielomianu dla pewnej wartości argumentu x = W n (z) można obliczyć wprost ze wzoru wtedy liczba działań wynosi: mnożeń i dodawań Jeśli wielomian przedstawimy w takiej postaci: to będziemy mogli wykorzystać schemat Hornera: n n 1 ( ) do wykonania którego potrzeba mnożeń i dodawań W x = a x + a x + L+ a x + a z n 0 1 n 1 n ((( 0 1 ) 3 ) L 1 ) ( ) ( ) ( ) W x = a x + a x + a x + a + a x + a n x n n b 0 0 1 0 1 2 1 2 i i 1 i n = a b = b z + a b = b z + a K b = b z + a K ( ) W z = b n

zadanie 2. obliczanie wartości wielomianu - schemat Hornera n n 1 ( ) W x = a x + a x + L+ a x + a n 0 1 n 1 n ((( ) ) L ) ( ) ( ) ( ) W x = a x + a x + a x + a + a x + a n 0 1 x 3 n 1 n b 0 0 1 0 1 2 1 2 i i 1 i n = a b = b z + a b = b z + a K b = b z + a K ( ) W z = b n a 0 a 1 a 2 a n-1 a n + + + + b 0 z b 1 z b n-2 z b n-1 z z b 0 =a 0 b 1 b 2 b n-1 b n b n =W n (z)

zadanie 2. obliczanie wartości wielomianu - schemat Hornera ((( 0 1 ) 3 ) L 1 ) ( ) ( ) ( ) W x = a x + a x + a x + a + a x + a n x n n P b 0 0 1 0 1 2 1 2 i i 1 i n = a b = b z + a b = b z + a K b = b z + a K ( ) W z = b n NIE WE n, a 1,, a n,z b 0 :=a 0 i:=1 b i :=b i-1 z+a i i = n TAK i:=i+1 Napisz funkcję, która dla wielomianu stopnia n o podanych współczynnikach [ a 1, a 2, a 3,, a n ] oraz danej wartości x=z oblicza wartość wielomianu W n (z) W:=b n WY W function [ W ] = horner ( a, z ) K

zadanie 3. liczby pierwsze Liczba pierwsza to taka liczba naturalna, która nie dzieli się przez żadną inna liczbę oprócz siebie i jedności. Liczby złożone (nie będące pierwszymi) dają się przedstawić jako iloczyn liczb pierwszych. Liczby pierwsze wykorzystuje się w kryptografii Jednym z prostszych i chyba najpopularniejszym algorytmem generowania liczb pierwszych jest sito Erastotenesa eliminuje liczby podzielne przez jakąkolwiek liczbę oprócz badanej Algorytm zapisany kiedyś w pseudojęzyku (dla języka Pascal) zapisz jako funkcję w MATLABie Znajdź inne algorytmy generowania liczb pierwszych, ew. sprawdzania, czy dana liczba jest liczbą pierwszą

zadanie 3. liczby pierwsze Początek Czytaj(M); Pisz(2); i:=3; dzielnik:=2; Dopóki i<m wykonuj Początek Powtarzaj Dopóki (i mod dzielnik=0) wykonuj Początek i:=i+1; dzielnik:=2 Koniec; dzielnik:=dzielnik+1 aż do dzielnik i div 2; Jeśli i<=m to Pisz(i); i:=i+1; dzielnik:=2 Koniec Koniec NIE TAK i M K NIE NIE WE P M WY 2 i:=3 dzielnik:=2 dzielnik:=dzielnik+1 WY TAK i i < M dzielnik div 2 = 0 i:=i+1 dzielnik:=2 TAK i mod dzielnik = 0 NIE TAK i:=i+1 dzielnik:=2

zadanie 4. ułamki proste Ułamek właściwy można przedstawić jako sumę ułamków prostych, np. Licznik ułamka prostego jest równy 1. 5 1 1 1 = + + 11 3 9 99 Poniższy algorytm polega na tworzeniu kolejnych mianowników ułamków prostych T i przez poszukiwanie takich liczb i, dla których Licznik 1 > 0 Mianownik i Pierwsza liczba i spełniająca tę nierówność zapamiętywana jest w tablicy T, po czym następuje modyfikacja wielkości Licznik i Mianownik. Proces jest kontynuowany dopóty, dopóki wartość Licznik jest różna od 0 Schemat działań zaprogramuj w postaci funkcji MATLABa, przyjmującej dwa parametry num i den licznik i mianownik pierwotnego ułamka właściwego, a zwracającej tablicę dens mianowników kolejnych ułamków prostych

zadanie 4. ułamki proste P WE Licznik, Mianownik j:=0 j:=j+1 i:=2 NIE 1/i > Licznik/Mianownik TAK i:=i+1 Licznik:=Licznik i-mianownik Mianownik:=Mianownik i T j :=i NIE Licznik = 0 TAK n:=1 WY T n TAK n = j NIE n:=n+1 K

przykład 4. przekształcenia macierzy operacje elementarne na macierzy: pomnożenie wiersza/kolumny macierzy przez liczbę różną od zera zamiana wiersza/kolumny dodanie do wiersza/kolumny innego wiersza/kolumny pomnożonego przez liczbę nie zmieniają rzędu mogą zmienić wyznacznik

przykład 4. przekształcenia macierzy pomnożenie i-tego wiersza macierzy A przez liczbę k różną od zera odpowiada lewostronnemu pomnożeniu tej macierzy przez macierz jednostkową z i-tym elementem diagonalnym równym k zdefiniuj macierz A» A = [ 1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ] pomnóż jej drugi wiersz przez 2» P = [ 1 0 0; 0 2 0 ; 0 0 1 ] P A = B 3 3 3 4 3 4» B = P * A

przykład 4. przekształcenia macierzy pomnożenie j-tej kolumny macierzy A przez liczbę k różną od zera odpowiada prawostronnemu pomnożeniu tej macierzy przez macierz jednostkową z j-tym elementem diagonalnym równym k zdefiniuj macierz A» A = [ 1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ] pomnóż jej trzecią kolumnę przez 3» P = [ 1 0 0 0 ; 0 1 0 0 ; 0 0 3 0 ; 0 0 0 1 ] ;» A» B = A * P A P = B 3 4 4 4 3 4

przykład 4. przekształcenia macierzy zamiana i-tego wiersza z j-tym odpowiada lewostronnemu pomnożeniu macierzy A przez następującą macierz przekształcenia wygeneruj macierz A 8x3 wypełnioną liczbami losowymi od 1 do 9» A = ceil ( rand ( 8, 3 ) * 9 ) zamień miejscami wiersz drugi z czwartym» P = [ 1 0 0 0 0 0 0 0 ; % P = eye (8); 0 0 0 1 0 0 0 0 ; % P(2,2) = 0 ; 0 0 1 0 0 0 0 0 ; % P(4,4) = 0 ; 0 1 0 0 0 0 0 0 ; % P(2,4) = 1 ; 0 0 0 0 1 0 0 0 ; % P(4,2) = 1 ; 0 0 0 0 0 1 0 0 ; 0 0 0 0 0 0 1 0 ; 0 0 0 0 0 0 0 1 ], B = P * A P A = B 8 8 8 3 8 3

przykład 4. przekształcenia macierzy zamiana i-tej kolumny z j-tą odpowiada prawostronnemu pomnożeniu macierzy A przez następującą macierz przekształcenia w macierzy A zamień miejscami kolumny drugą i trzecią» P = [ 1 0 0 ; 0 0 1 ; 0 1 0 ]» A» C = A * P A P = B 8 3 3 3 8 3

przykład 4. przekształcenia macierzy dodanie do i-tego wiersza macierzy A jej j-tego wiersza pomnożonego przez liczbę m można zrealizować poprzez lewostronne pomnożenie macierzy A przez macierz przekształcenia P P A

przykład 4. przekształcenia macierzy dodanie do i-tej kolumny macierzy A jej j-tej kolumny pomnożonej przez liczbę m można zrealizować poprzez prawostronne pomnożenie macierzy A przez stransponowaną macierz przekształcenia P T A P

przykład 4. przekształcenia macierzy wylosuj macierz liczb 5x5 od 1 do 9, oblicz jej rząd i wyznacznik pomnóż któryś wiersz przez coś, oblicz jej rząd i wyznacznik zamień miejscami wiersze 2 i 4, oblicz rząd i wyznacznik macierzy porównaj rzędy i wyznaczniki» A = ceil ( rand ( 5 ) * 9 )» Pmnoz = eye(5); Pmnoz(2,2) = 4 ; B = Pmnoz*A» Pzam = eye(5); Pzam(2,2) = 0 ; Pzam(4,4) = 0 ; Pzam(2,4) = 1 ; Pzam(4,2) = 1 ; C = Pzam *A» rzedy = [ rank(a) rank(b) rank(c) ]» wyznaczniki = [ det(a) det(b) det(c) ] rzedy = 5 5 5 wyznaczniki = -3528-14112 3528

przykład 5. rząd macierzy metodą eliminacji Gaussa rząd macierzy to maksymalna liczba liniowo niezależnych wektorów tworzących wiersze/kolumny danej macierzy wprowadź macierz A» A = [ 1-1 2 2 ; 2-2 1 0 ; -1 2 1-2 ; 2-1 4 0 ] skopiuj ją do macierzy B» B = A oblicz rząd macierzy B korzystając z metody eliminacji Gaussa

przykład 5. rząd macierzy metodą eliminacji Gaussa B = 1-1 2 2 2-2 1 0-1 2 1-2 2-1 4 0 od wiersza drugiego odejmij wielokrotność wiersza pierwszego tak, aby wyzerować pierwszy element w drugim wierszu» B(2,:) = B(2,:) 2 * B(1,:) B = 1-1 2 2 0 0-3 -4-1 2 1-2 2-1 4 0

przykład 5. rząd macierzy metodą eliminacji Gaussa B = 1-1 2 2 0 0-3 -4-1 2 1-2 2-1 4 0 od wiersza trzeciego odejmij wielokrotność wiersza pierwszego tak, aby wyzerować pierwszy element w trzecim wierszu» B(3,:) = B(3,:) + 1 * B(1,:) B = 1-1 2 2 0 0-3 -4 0 1 3 0 2-1 4 0

przykład 5. rząd macierzy metodą eliminacji Gaussa B = 1-1 2 2 0 0-3 -4 0 1 3 0 2-1 4 0 od wiersza czwartego odejmij wielokrotność wiersza pierwszego tak, aby wyzerować pierwszy element w czwartym wierszu» B(4,:) = B(4,:) - 2 * B(1,:) B = 1-1 2 2 0 0-3 -4 0 1 3 0 0 1 0-4

przykład 5. rząd macierzy metodą eliminacji Gaussa B = 1-1 2 2 0 0-3 -4 0 1 3 0 0 1 0-4 w drugim wierszu na przekątnej jest zero to niedobrze zamień miejscami wiersze 2 z 3» B = B ( [ 1 3 2 4 ], : ) B = 1-1 2 2 0 1 3 0 0 0-3 -4 0 1 0-4

przykład 5. rząd macierzy metodą eliminacji Gaussa B = 1-1 2 2 0 1 3 0 0 0-3 -4 0 1 0-4 w wierszu drugim jest na początku jedno zero to dobrze w wierszu trzecim są na początku dwa zera to dobrze odejmij wiersz drugi od wiersza czwartego tak, aby w wierszu czwartym też na początku były dwa zera» B(4,:) = B(4,:) B(2,:) B = 1-1 2 2 0 1 3 0 0 0-3 -4 0 0-3 -4

przykład 5. rząd macierzy metodą eliminacji Gaussa B = 1-1 2 2 0 1 3 0 0 0-3 -4 0 0-3 -4 wiersze 3 i 4 są jednakowe zależne - rząd macierzy na pewno nie będzie równy 4 odejmij wiersz trzeci od wiersza czwartego tak, aby na początku wiersza czwartego były trzy zera» B(4,:) = B(4,:) B(3,:) B = 1-1 2 2 0 1 3 0 0 0-3 -4 0 0 0 0

przykład 5. rząd macierzy metodą eliminacji Gaussa B = 1-1 2 2 0 1 3 0 0 0-3 -4 0 0 0 0 macierz B = macierzy schodkowa rząd = liczba schodków = liczba niezerowych wierszy

przykład 5. rząd macierzy metodą eliminacji Gaussa B = 1-1 2 2 0 1 3 0 0 0-3 -4 0 0 0 0 oblicz rząd macierzy A korzystając z funkcji rank» rank(a)