13
Erori în calculul numeric 1 METODE NUMERICE – Curs şi aplicaţii Unitatea de învăţare nr. 1 ERORI ÎN CALCULUL NUMERIC Cuprins Pagina Obiectivele unităţii de învăţare nr. 1 2 1.1 Numere aproximative. Eroare absolută şi relativă. 2 1.2 Sursele erorilor de calcul 3 1.2.1 Erori de problemă 3 1.2.2 Erori de metodă 3 1.2.3 Erori ale datelor de intrare 4 1.2.4 Erori de aproximare 4 1.2.5 Erori de rotunjire 5 1.3 Lucrare de laborator 5 1.3.1 Prezentare MATLAB 5 1.3.2 Structura sistemului Matlab 6 1.3.3 Meniul principal 7 1.3.4 Informaţii generale. Funcţii de control general 8 1.3.5 Fişiere M 8 1.3.6 Definirea variabilelor 9 Test de autoevaluare 11 Lucrare de verificare – unitatea de învăţare nr. 1 12 Răspunsuri şi comentarii la întrebările din testele de autoevaluare 12 Bibliografie – unitatea de învăţare nr. 1 13

Unitatea de Invatare 1- Erori de Calcul

Embed Size (px)

DESCRIPTION

Metode numerice

Citation preview

  • Erori n calculul numeric

    1 METODE NUMERICE Curs i aplicaii

    Unitatea de nvare nr. 1 ERORI N CALCULUL NUMERIC Cuprins Pagina

    Obiectivele unitii de nvare nr. 1 2

    1.1 Numere aproximative. Eroare absolut i relativ. 2

    1.2 Sursele erorilor de calcul 3

    1.2.1 Erori de problem 3

    1.2.2 Erori de metod 3

    1.2.3 Erori ale datelor de intrare 4

    1.2.4 Erori de aproximare 4

    1.2.5 Erori de rotunjire 5

    1.3 Lucrare de laborator 5

    1.3.1 Prezentare MATLAB 5

    1.3.2 Structura sistemului Matlab 6

    1.3.3 Meniul principal 7

    1.3.4 Informaii generale. Funcii de control general 8

    1.3.5 Fiiere M 8

    1.3.6 Definirea variabilelor 9

    Test de autoevaluare 11

    Lucrare de verificare unitatea de nvare nr. 1 12

    Rspunsuri i comentarii la ntrebrile din testele de autoevaluare 12

    Bibliografie unitatea de nvare nr. 1 13

  • Erori n calculul numeric

    2 METODE NUMERICE Curs i aplicaii

    OBIECTIVELE unitii de nvare nr. 1

    Principalele obiective ale Unitii de nvare nr. 1 sunt: nelegerea noiunilor de eroare absolut i eroare

    relativ Recunoaterea tipurilor de erori Aplicarea cu succes a unor elemente simple de calcul n

    determinarea erorilor ce apar n calculele matematice

    1.1 Numere aproximative. Eroare absolut i eroarea relativ. Numrul a se numete aproximare a numrului A dac valorile lor se deosebesc nensemnat i a poate nlocui A n calcule numerice. Dac a < A vom numi a aproximare prin lips, dac a > A aproximare prin adaos. De exemplu pentru numrul 3.14 va fi aproximare prin lips, iar 3.142 aproximare prin adaos. ntr-adevr 3.14

  • Erori n calculul numeric

    3 METODE NUMERICE Curs i aplicaii

    Rezolvare:

    pentru prima msurare cm1101100 == , 01,0100

    1== .

    pentru a doua msurare m329973000 == , 001,03000

    3== .

    Deoarece eroarea relativ a celei de a doua msurri este mai mic, aceast msurare este mai exact.

    1.2 Sursele erorilor de calcul Erorile, care apar n timpul rezolvrii problemelor pot proveni din diferite surse. Cunoaterea curselor de apariie a erorilor permite ocolirea lor i minimizarea efectului cumulativ al erorilor. Cele mai des ntlnite tipuri de erori sunt: Erori de problem Erori de metod Erori ale datelor de intrare Erori de aproximare Erori de rotunjire.

    1.2.1 Erori de problem

    Aceast categorie de erori apare n situaiile cnd modelul matematic ales pentru rezolvarea

    problemei nu descrie complet procesul real cercetat. Astfel dac pentru a construi modelul matematic al sistemului bil-arc utilizm ecuaia oscilaiilor armonice pentru deformaii mici i n lipsa forei de frecare, rezultatul obinut prin utilizarea formulei va fi diferit de cel exact, diferena fiind cu att mai semnificativ cu ct e mai mare fora de frecare n sistemul real i deformarea arcului.

    1.2.2 Erori de metod

    Este o categorie de erori generat de imposibilitatea determinrii unei metode exacte de rezolvare a problemei. n acest caz problema iniial este rezolvat prin o metod euristic, care poate genera diferene destul de mari ntre rezultatul obinut i cel exact.

    Un exemplu elocvent este utilizarea metodei Greedy pentru rezolvarea problemei rucsacului., care are urmtoarea formulare:

    Este dat un rucsac de volum S i n obiecte cu volumele vi , i = 1.. n i costurile ci , i = 1.. n . S

    se pun n rucsac obiecte din setul propus astfel, nct costul total al obiectelor puse n rucsac s fie ct mai mare posibil.

    Dac pentru rezolvarea problemei este folosit metoda Greedy n majoritatea cazurilor soluia obinut va fi mai rea dect cea exact. Astfel, pentru un set din cinci obiecte cu volumele 5, 7, 13, 20, 10, preurile respectiv de 4, 8, 15, 23, 5, i un rucsac cu volumul de 30 uniti prin metoda Greedy se obine soluia cu valoarea 27 format din obiectele cu indicii 3, 2, 1. Pentru acelai set de date iniiale, soluia determinat prin metoda trierii sau relurii are valoarea 31, fiind format din obiectele cu indicii 2 i 4.

  • Erori n calculul numeric

    4 METODE NUMERICE Curs i aplicaii

    1.2.3 Erori ale datelor de intrare

    Deseori procesul de modelare matematic se bazeaz pe rezultatele unor experiene, adic pe cteva seturi de mrimi numerice, obinute n urma msurrilor. Aceste mrimi nu sunt exacte. (ex.: distana, masa, viteza). n cele ce urmeaz se va cerceta, cum pot influena erorile iniiale (a datelor de intrare) rezultatele finale.

    Exemplul 1: fie c se cerceteaz un model descris de funcia ( ) 12 ++= xxxf pe segmentul [0,1] [ ]( )1,0x Este cunoscut c x se calculeaz cu o exactitate de 0,01 (adic eroarea absolut la determinarea lui x nu depete 0,01). Dac z este valoarea exact a argumentului, atunci | z x | 0,01 . Vom ncerca s determinm n ce msur influeneaz eroarea la msurarea iniial a valorilor lui x rezultatul calculului: ( ) ( ) ( )( )111 22 ++=++= zxzxzzxxzfxf . Deoarece

    31++ zx i 01,0 xz , rezult ( ) ( ) 01,03 zfxf . Diferena dintre valoarea funciei de argument exact (z) i valoarea funciei de argument

    msurat (x) este o mrime constant. De aici rezult c erorile de calcul nu depind de x ci numai de exactitatea cu care acesta este msurat. Se consider c funcia RIf : posed proprietatea Lipschitz dac exist o constant 0>m

    astfel nct: ( ) ( ) zxmzfxf , Izx , . Se consider c determinarea valorilor funciei ( )xf este stabil la erori, dac ( )xf posed proprietatea Lipschitz. n ali termeni, stabilitatea funciei la erori presupune variaii mici ale valorilor funciei la variaii mici ale argumentului.

    1.2.4 Erori de aproximare

    Este o categorie de erori generate de anumite definiii i noiuni matematice. Prezena lor este acceptat, n special n problemele care folosesc noiunea de limit, convergen etc. Apariia este motivat de nsi structura definiiei care conine elemente de aproximare.

    Exemplul 2: Se consider c irul ( ) 0nnx este convergent i are limita x dac pentru orice 0> , exist un rang n astfel nct .

    Din punct de vedere al analizei numerice indic precizia cu care nx l aproximeaz pe x . Fie

    001,0= . Dac irul ( ) 0nnx este convergent i are limita x , nseamn c exist ( )001,0nn astfel nct nn > s avem 001,0

  • Erori n calculul numeric

    5 METODE NUMERICE Curs i aplicaii

    De reinut, c rezultatele obinute prin calcul numeric sunt acceptate doar ca rezultate cantitative, i nu pot servi drept demonstraie pentru cteva afirmaii matematice.

    1.2.5 Erori de rotunjire

    Este un tip aparte de erori, generate de faptul c n procesul prelucrrii mrimilor numerice n calculator ele pot fi pstrate doar cu un anumit numr de semne zecimale dup virgul. Exemplu poate servi constanta ; valorile funciilor trigonometrice etc.

    Fie { }naaaA ...,,, 21= mulimea tuturor numerelor care pot fi reprezentate n calculator. ( Se

    consider c naaa

  • Erori n calculul numeric

    6 METODE NUMERICE Curs i aplicaii

    Grafic tiinific i inginereasc Dezvoltare de aplicaii software, incluznd construcie de interfee grafice cu utilizatorul (GUI) Etc.

    MATLAB este un produs al companiei americane UThe Mathworks, IncTU

    U. [H http://www.mathworks.comUTH] i lucreaz sub Windows, Unix, LINUX i Machintosh. MATLAB include toate facilitile unui limbaj complet de programare, admind interfee cu limbajul de programare C, C++ i FORTRAN. Versiunea cea mai recent a pachetului de programe MATLAB este versiunea 7.

    MATLAB a cunoscut o puternic evoluie n decursul ultimilor ani, reprezentnd astzi n mediile universitare o unealt standard de calcul, fiind asociat diverselor cursuri introductive sau avansate n matematic, tiin i inginerie. n industrie, MATLAB este recunoscut ca un mijloc de investigaie numeric performant, utilizat n sprijinul unei activiti de cercetare, dezvoltare i analiz de nalt nivel.

    Versiunea complet a pachetului de programe MATLAB conine o ntreag familie de module specifice, denumite tool-box-uri, respectiv blockset-uri, care permit rezolvarea unor aplicaii din diverse domenii cum ar fi: maini, aparate i acionri electrice, control de sistem, aplicaii DSP, procesarea materialelor i electro-tehnologii, procesare de semnal, mecanic, industria aeronautic i de automobile, statistic, finane i multe altele.

    Aceste module sunt colecii de funcii MATLAB (M-files), uor de asimilat, care extind puterea de calcul a pachetului de programe MATLAB n vederea rezolvrii unor clase particulare de probleme. Colecia de module MATLAB conine: Simulink, DSP, Control System, SimPowerSystems, SimMechanics, Data Acquisition, Fuzzy Logic, Image Processing, Partial Differential Equations, Neural Network, Optimization, System Identification, Financial, Statistics, Communications, Database, Virtual Reality etc.

    1.3.2 Structura sistemului MATLAB Structura sistemului MATLAB const n cinci pri principale: Mediul de dezvoltare. Acesta este alctuit dintr-un set de unelte care faciliteaz folosirea funciilor

    i fiierelor MATLAB. Multe dintre acestea reprezint de fapt interfeele grafice i includ fereastra principal MATLAB sau MATLAB Desktop, fereastra de comenzi sau Command Window, fereastra ce memoreaz istoria comenzilor sau Command History, i browser-ele de Help, Workspace, Files, Search Path etc.

    Biblioteca de funcii matematice MATLAB. Aceasta const ntr-o vast colecie de algoritmi de calcul, pornind de la funcii elementare precum sum, sinus, cosinus i aritmetic complex, pan la funcii mai sofisticate precum inversare de matrici, calcul de valori proprii, funcii Bessel i transformata Fourier.

    Limbajul MATLAB. Limbajul MATLAB este un limbaj matrice/vector de nalt nivel ce include instruciuni de control al buclelor, funcii, structuri de date, comenzi de intrare/ieire i instruciuni de programare orientat pe obiecte. Limbajul MATLAB permite att programarea superficial pentru crearea rapid a unor mici programe de calcul specifice, ct i "programarea n detaliu" n vederea dezvoltrii unor programe complexe de nivel superior.

    Handle Graphics. Handle Graphics reprezint sistemul de grafic MATLAB i include att comenzi de nalt nivel pentru vizualizarea 2D i 3D a datelor, procesare de imagini, animaie i grafic,

  • Erori n calculul numeric

    7 METODE NUMERICE Curs i aplicaii

    ct i comenzi de jos nivel ce permit personalizarea complet a reprezentrilor grafice i construirea integral a interfeelor grafice (GUI) pentru aplicaiile MATLAB.

    MATLAB Application Program Interface (API). Aceasta este o bibliotec ce permite scrierea programelor C i Fortran ce interacioneaz cu MATLAB. Biblioteca conine faciliti de apel de subrutine din MATLAB (dynamic linking), de apelare a MATLAB-ului ca pe o main de calcul de citire i scriere de fiiere MAT-files.

    1.3.3 Meniul principal

    Pentru a deschide un fiier n Editorul/Debugger-ul MATLAB-ului din meniul de comand se procedeaz n felul urmtor:

    pentru un fiier nou, se selecteaz File, apoi New, apoi New M-file. pentru un fiier existent se selecteaz File, apoi Open M-file si apoi se selecteaz fiierul dorit.

    a) b)

    Figura 1. Selectarea din meniul principal a unui fiier nou (a) sau a unuia existent (b) Tot din meniul principal se pot seta anumite proprieti, legate de formatul dorit a fi afiat, fonturi

    si opiuni de copiere. se selecteaz File, apoi Preferences ca n figura 2

    Figura 2. Selectarea din meniul principal a comenzii Preferences

    MATLAB-ul lucreaz cu dou tipuri de ferestre: o fereastr de comenzi i una de reprezentri grafice.

    La un moment dat poate fi deschis numai o fereastr de comenzi. Fereastra grafic este utilizat n reprezentarea grafic a datelor. Pot fi deschise mai multe ferestre grafice n acelai timp.

    Selectarea ferestrei grafice se face n modul urmtor: din meniul File se selecteaz New apoi Figure. Pe monitor va aprea o fereastr grafic ca n fig. 3.

  • Erori n calculul numeric

    8 METODE NUMERICE Curs i aplicaii

    Figura 3. Subdomeniul File al ferestrei grafice

    Selectarea comenzii File (din aceasta fereastr) urmat de New, Figure sau New Figure determin trecerea ntr-o fereastr grafic nou.

    1.3.4 Informaii generale. Funcii de control general.

    Implicit, mediul de programare MATLAB este sensibil la tipul de litere (mari sau mici), dar exist comenzi care fac trecerea ntre modurile sensibil i nesensibil. Numele de funcie este obligatoriu s fie scris cu litere mici.

    Liniile de comentariu dintr-un fiier script / funcie sunt precedate de caracterul %. Pentru ajutor se tasteaz help pentru meniul ntreg sau help urmat de denumirea funciei sau

    fiierului .m. (Exemplu: help fft). Numrul de cifre zecimale n care sunt afiate diverse variabile nu reprezint precizia n care

    sunt efectuate calculele. Pentru a schimba formatul afiat se tasteaz format short e pentru 5 cifre zecimale, format long e pentru 15 cifre zecimale i format bank pentru plasarea a dou cifre zecimale la dreapta punctului zecimal. Acelai lucru se poate face din meniu, selectnd File, Preferences, General, iar aici formatul dorit (a se revedea fig. 4).

    cd apeleaz directorul curent. dir listeaz fiierele din directorul curent. dir numedirector listeaz fiierele din directorul numedirector. Comenzile who si whos furnizeaz numele variabilelor ce au fost definite n spaiul de lucru

    MATLAB. o who afieaz variabilele curente din memorie; o owhos afieaz variabilele, dimensiunile lor, precum si tipul acestora (reale sau

    complexe). what listeaza fiierele M, MAT si MEX din directorul curent.

    1.3.5 Fiiere M

    Fiierele M pot fi privite ca macro-uri ale comenzilor MATLAB salvate n fiiere cu extensia .m., adic numefisier.m . Un fiier M poate fi fie o funcie cu variabile de intrare i ieire, fie o list de comenzi.

    MATLAB cere ca fiierele M s fie salvate fie n directorul de lucru sau ntr-un director care este specificat n lista cilor din MATLAB. Pentru a putea accesa fiierul M dintr-un anumit director, trebuie s adugam directorul/fiierul la calea MATLAB.

    Se procedeaz n felul urmtor: se tasteaz butonul Path Browser din butoanele de comand

  • Erori n calculul numeric

    9 METODE NUMERICE Curs i aplicaii

    apare fereastra se tasteaz butonul Browse; apare fereastra:

    se caut directorul respectiv i se tasteaz OK, apoi Add to path din fereastra anterioar. path returneaz cile cu care lucreaz MATLAB-ul (n care sunt cutate fiierele apelate)

    Exemplu: path MATLABPATH C:\MATLABR11\toolbox\matlab\general C:\MATLABR11\toolbox\matlab\ops C:\MATLABR11\toolbox\matlab\lang ...... addpath dirname adaug directorul dirname la calea curent din MATLAB. Aceast comand este echivalent cu procedura prezentat anterior de adugare a unei noi ci. Exemplu:

    Comanda addpath c:\nume are ca efect adugarea noii ci, adic se vor putea apela fiierele cu extensia .m din directorul ce are calea c:\nume.

    Fiierele M pot utiliza variabile definite de utilizator, variabile definite cu comanda input. De exemplu, s presupunem c vrem s rulm un fiier M pentru diferite valori ale unei variabile N. Atunci, n fiierul M se utilizeaz urmtoarea comand: N=input(N=).

    1.3.6 Definirea variabilelor

    Variabilelor li se atribuie valori numerice, tiprindu-se direct expresia numeric. De exemplu a=1+2

  • Erori n calculul numeric

    10 METODE NUMERICE Curs i aplicaii

    conduce la rezultatul: a= 3

    Rezultatul nu se afieaz dac se pune punct i virgul la sfritul expresiei, de exemplu a=1+2; n MATLAB se utilizeaz urmtorii operatori aritmetici:

    Unei variabile i se poate atribui o formul ce utilizeaz operatorii menionai anterior i una sau mai multe mrimi definite anterior chiar n cadrul comenzii curente. De exemplu, presupunnd c aeste definit anterior: b=3^a va returna valoarea:

    b= 27 Exist variabile predefinite:

    i=sqrt(-1) j=sqrt(-1) pi=3,1416... etc. Exemplu : y=2*(1+4*j) conduce la y= 2.0000+8.0000i

    Pentru definirea variabilelor exist un numr de funcii predefinite, dintre care, cele mai uzuale pentru prelucrarea semnalelor sunt :

    De exemplu, cu y din exemplul anterior, comanda: c=abs(y) conduce la:

    abs valoarea absolut angle faza ataat unui numr complex, n radiani cos funcia cos, cu argumentul n radiani sin funcia sin, cu argumentul n radiani exp funcia exponenial cu baza e

    + adunare - scdere * multiplicare / mprire ^ ridicare la putere transpus

  • Erori n calculul numeric

    11 METODE NUMERICE Curs i aplicaii

    c= 8.2462

    sau: u=angle(y) la:

    u= 1.3258 Se face observaia c funcia exp se poate utiliza cu numere complexe, de exemplu, cu acelai y,

    comanda: d=exp(y) conduce la:

    d= -1.0751+7.3104i

    fapt evident, verificabil utiliznd formula lui Euler )8sin8(cos2ImRe +=== + jeeed yjyy

    De reinut! Eroare absolut, eroare relativ Sursele erorilor de calcul

    Test de autoevaluare 1.1 1. Explicai noiunea de eroare. Dai exemple de apariie a erorilor n situaii reale. 2. Definii noiunea de eroare absolut. Exemplificai. 3. Definii noiunea de eroare relativ. Exemplificai. Cum se va modifica formula de calcul a erorii relative, dac eroarea trebuie indicat n % de la valoarea exact amrimii cercetate? 4. O bar cu lungimea exact de 100 cm a fost msurat cu o eroare absolut de 2 cm. Care sunt valorile posibile, obinute n procesul de msurare? 5. Identificai principalele surse de erori. Exemplificai 6. Dai exemple de erori, generate de imposibilitatea formulrii exacte a problemei. Motivai imposibilitatea formulrii exacte. 7. Utilizarea metodei Greedy n rezolvarea problemelor de cele mai multe ori duce la obinerea unui soluii diferite de soluia optim. De ce? 8. Care funcii posed proprietatea de stabilitate a calculului valorilor fa de erori? 9. Este oare stabil fa de erori calculul valorilor funciei liniare? Dar al funciei

    xy = , [ ]2,1x . 10. Explicai noiunea de eroare de aproximare.

  • Erori n calculul numeric

    12 METODE NUMERICE Curs i aplicaii

    Lucrare de verificare la Unitatea de nvare nr. 1 1. Volumul exact al unui vas este de 20 l. Msurrile de volum au fost efectuate cu o eroare relativ de 0.001. Care sunt valorile posibile ale volumului msurat? 2. Soluia unei probleme se calculeaz iterativ dup formula 00 =x ,

    ii xx +=+ 21 . Va atinge oare irul soluiilor calculate valoarea soluiei exacte? Stabilii experimental sau analitic soluia exact. Dup cte iteraii eroarea absolut a soluiei calculate va deveni mai mic de 0.0001 ? 3. Calculai ctul i produsul numerelor 1.00000001 i 0.999999999. Explicai cauzele apariiei erorilor.

    Rspunsuri la ntrebrile din testele de autoevaluare 4. { }102,982100 == aa . 9. ( ) baxxf += . ( ) ( ) ( ) ayxayfxf = , adic f este funcie

    Lipschitz. zxzx

    zxzx +

    =

    21 , deoarece din [ ]2,1, zx obinem

    c [ ]22,2+ zx de unde 211

    + zx

    . Astfel xy = este funcie

    Lipschitz.

    Recapitulare Eroare absolut a valorii aproximative a se consider modulul

    diferenei dintre valoarea exact A i valoarea aproximativ a . =| A a |

    Eroare relativ a valorii aproximative se consider raportul dintre eroarea absolut i modulul numrului exact A (A 0)

    A

    = .

    Cele mai des ntlnite tipuri de erori sunt: Erori de problem Erori de metod Erori ale datelor de intrare Erori de aproximare Erori de rotunjire.

  • Erori n calculul numeric

    13 METODE NUMERICE Curs i aplicaii

    Concluzii Metodele numerice reprezint tehnici prin care problemele matematice sunt reformulate astfel nct s fie rezolvate numai prin operaii aritmetice. Prin trecerea de la infinit la finit, diferenial la algebric, neliniar la liniar problemele complicate sunt nlocuite de probleme mai simple care au aceeai sau aproape aceeai soluie. Astfel soluiile obinute prin aplicarea metodelor numerice reprezint doar aproximaii ale soluiilor problemelor originale, deci implic erori.

    Bibliografie 1. Constantinescu Eliodor, Mihai Bogdan, Matlab. Caiet de laborator, Editura Crizon, Constana, 2008 2. Pelican Elena, Analiz numeric. Complemente, exerciii i probleme. Programe de calcul, Editura MatrixRom, Bucureti, 2006