Mengira elemen seterusnya menggunakan yang sebelumnya dalam Matlab. Pengiraan mudah dalam MATLAB. Bar alat sistem MATLAB

1.Tetingkap Perintah(Tetingkap arahan).

Ungkapan matematik ditulis pada baris arahan selepas gesaan " >>". Sebagai contoh,

Untuk melakukan tindakan, tekan kekunci "Enter".

Secara lalai, program menulis hasilnya kepada pembolehubah khas ans.

Untuk menyimpan hasil di bawah nama yang berbeza, gunakan nama pembolehubah dan tanda tugasan “=”, contohnya

>> z = 1.25 / 3.11

Edit masuk Tetingkap Perintah Anda hanya boleh menggunakan baris arahan semasa. Untuk mengedit arahan yang dimasukkan sebelum ini, anda perlu meletakkan kursor dalam baris input dan menggunakan kekunci “ ” atau “ ”.

Jika arahan berakhir dengan ";", maka hasil tindakannya tidak dipaparkan pada baris arahan.

Tetingkap arahan boleh ditutup dengan butang “ ”, dan butang “ ” berfungsi untuk memisahkan tetingkap daripada antara muka sistem. Anda boleh kembali ke borang tetingkap standard menggunakan menu:

Menu utamaDesktopReka Letak DesktopLalai.

Anda boleh mengosongkan tetingkap arahan menggunakan menu:

Menu utamaSuntingKosongkan Tetingkap Perintah.

Menu utama sistem MatLab.

Menu utama MatLab mengandungi item berikut:

Fail(Fail) – bekerja dengan fail;

Sunting(Edit) – menyunting;

Lihat(Lihat) – pengurusan tetingkap;

Web– komunikasi dengan syarikat pembangun melalui Internet;

Tingkap(Tetingkap) – sambungan dengan tetingkap sistem;

Tolong(Bantuan) – pautan ke sistem bantuan MatLab.

Bar alat sistem MATLAB.

Butang bar alat mempunyai tujuan berikut:

Fail baharu(Baru) – memaparkan tetingkap editor fail;

Buka fail(Buka) – membuka tetingkap muat turun fail;

potong(Potong) – memotong serpihan yang dipilih dan meletakkannya pada papan keratan;

Salinan(Salin) – menyalin serpihan yang dipilih ke papan keratan;

tampal(Tampal) – memindahkan serpihan yang dipilih dari papan keratan ke baris input;

Buat asal(Batal) – membatalkan keputusan operasi sebelumnya;

Buat semula(Ulang) – mengulangi hasil operasi sebelumnya;

Simulink– mencipta model Simulink (sambungan MatLab);

Tetingkap Bantuan(Bantuan) – membuka tetingkap bantuan.

4. Format output hasil pengiraan .



Apabila memasukkan nombor nyata, titik digunakan untuk memisahkan bahagian pecahan!

>> s = 0.3467819

Hasil pengiraan dipaparkan dalam format pendek(notasi pendek untuk nombor), yang ditakrifkan secara lalai. Anda boleh menukar format kepada panjang(notasi nombor panjang).

>> format panjang

0.34678190000000

Dalam senarai Format berangka format nombor tersedia

pendek– notasi pendek nombor;

panjang– notasi nombor panjang;

pendek e– tatatanda pendek nombor dalam format titik terapung;

panjang e– rekod panjang nombor dalam format titik terapung;

pendek g– bentuk kedua tatatanda pendek nombor;

panjang g– bentuk kedua tatatanda panjang nombor;

Format untuk memaparkan data berangka boleh ditetapkan dalam menu Fail(fail) item Keutamaan(keutamaan). Pergi ke tab Tetingkap Perintah(tetingkap arahan). Dalam pilihan Paparan teks(paparan teks), dalam senarai Format angka(format angka) ditetapkan pendek g, dalam pilihan Paparan angka(nombor paparan) ditetapkan padat. Output ini memformatkan nombor output dalam bentuk universal lima digit bererti dan menyekat ruang putih antara baris.

Asas pengiraan dalam MatLab.

Untuk melaksanakan operasi aritmetik mudah dalam MatLab operator digunakan:

· penambahan dan penolakan +, – ;

· pendaraban dan pembahagian *, / ;

· eksponen ^ .

Beberapa pembolehubah khas:

ans – hasil operasi terakhir tanpa tanda tugasan;

eps – ralat relatif dalam pengiraan titik terapung;

pi – nombor;

i atau j – unit khayalan;

Inf – infiniti;

NaN – nilai tidak ditentukan.

Beberapa fungsi asas terbina dalamMatLab:

exp(x) – eksponen bagi nombor x;

log(x) – logaritma asli bagi nombor x;

sqrt(x) – punca kuasa dua nombor x;

abs(x) – modulus nombor x;

sin(x), cos(x), tan(x), cot(x) – sinus, kosinus, tangen, kotangen bagi nombor x;

asin(x), acos(x), atan(x), acot(x) – arcsine, arccosine, arctangent, arccotangent bagi nombor x;

sec(x), csc(x) – secant, cosecant bagi nombor x;

bulat(x) – membundarkan nombor x kepada integer terdekat;

mod(x,y) – baki pembahagian integer bagi x dengan y, dengan mengambil kira tanda;

tanda(x) – kembalikan tanda nombor x.

Mari kita hitung nilai ungkapan

>> exp(–2.5)*log(11.3)^0.3 – sqrt((sin(2.45*pi)+cos(3.78*pi))/tan(3.3))

Jika pengendali tidak boleh diletakkan pada satu baris, maka anda boleh terus memasukkannya dalam baris seterusnya jika anda menunjukkan tanda kesinambungan “…” di penghujung baris pertama, sebagai contoh,

>> exp(–2.5)*log(11.3)^0.3 – ...

sqrt((sin(2.45*pi)+cos(3.78*pi))/tan(3.3))

Fungsi untuk bekerja dengan nombor kompleks:

Memasukkan nombor kompleks

>> z = 3 + 4i

3.0000 + 4.0000i

Fungsi abs(z), sudut(z) mengembalikan modulus dan hujah bagi nombor kompleks, dengan , ;

kompleks(a,b) membina nombor kompleks daripada bahagian nyata dan khayalannya:

conj(z)mengembalikan nombor konjugat kompleks;

imag(z), real(z) mengembalikan bahagian khayalan dan nyata bagi nombor kompleks z.

6. Vektor.

Memasukkan, menambah, menolak, mendarab dengan nombor.

Vektor dalam MatLab dibentuk menggunakan operator kurungan segi empat sama. Dalam kes ini, elemen vektor lajur dipisahkan dengan koma bertitik ";", dan elemen vektor baris dipisahkan dengan ruang "" atau koma ",".

Mari perkenalkan vektor lajur.

>> x =

Mari perkenalkan vektor baris .

>> y =

Untuk menukar vektor, gunakan apostrof “’”:

>> z = y’

Untuk mencari jumlah dan perbezaan vektor, gunakan tanda “+” dan “–”:

>> c = x + z

Pendaraban vektor dengan nombor dijalankan di sebelah kanan dan di sebelah kiri menggunakan tanda “*”.

Vektor boleh menjadi hujah kepada fungsi terbina dalam, mis.

>> d = sin(c)

Untuk merujuk kepada unsur vektor, kurungan () digunakan, sebagai contoh,

>> x_2 = x(2)

Elemen terakhir vektor boleh dipilih dengan menaip arahan

>> X_end = x(end)

Daripada beberapa vektor, anda boleh membuat satu, sebagai contoh

>> r =

1.3 5.4 6.9 7.1 3.5 8.2

Aksara bertindih " : " digunakan untuk memisahkan berbilang elemen daripada vektor, sebagai contoh

>> w = r(3:5)

Aksara bertindih " : " juga membenarkan anda menggantikan elemen vektor, contohnya,

>> r(3:5)= 0

1.3 5.4 0 0 0 8.2

Simbol “:” juga boleh digunakan untuk membina vektor, setiap elemen berbeza daripada yang sebelumnya dengan nombor tetap, i.e. langkah, contohnya

>> h =

1 1.2 1.4 1.6 1.8 2

Langkahnya boleh negatif (dalam kes ini, nombor permulaan mestilah lebih besar daripada nombor akhir).

Satu langkah yang sama dengan satu boleh diabaikan

>> k =

Fungsi asas untuk bekerja dengan vektor.

  • panjang(x) – menentukan panjang vektor x;
  • prod(x) – pendaraban semua unsur vektor x;
  • jumlah(x) – penjumlahan semua elemen vektor x;
  • max(x) – mencari elemen maksimum bagi vektor x;
  • min(x) – mencari elemen minimum vektor x.

Jika anda memanggil fungsi min atau maks dengan dua argumen output = min(x),

maka pembolehubah pertama diberikan nilai elemen minimum (maksimum), dan pembolehubah kedua diberikan nombor elemen ini.

7 Matriks.

Pelbagai kaedah input matriks.

1. Matriks boleh dimasukkan sebagai vektor lajur yang terdiri daripada dua elemen, setiap satunya ialah vektor baris dan dipisahkan oleh koma bertitik. Sebagai contoh, mari kita perkenalkan matriks

>> A =

2. Matriks boleh dimasukkan baris demi baris dengan melaksanakan urutan arahan:

>> A = .

Algoritma yang dilaksanakan dalam operasi \ terdiri daripada langkah-langkah berikut:

  • 1. Dalam kes remeh, jika A jarang dan pepenjuru (bahagian Matriks Jarang dikhaskan kepada matriks jarang dalam MATLAB), penyelesaiannya didapati menggunakan formula mudah x k = b k /a kk , di mana k=1,2,. ..n.
  • 2. Jika A ialah matriks segi empat sama, jarang dan jalur, maka penyelesai matriks jalur digunakan. Mungkin terdapat dua pilihan:

    a. Jika A ialah matriks tridiagonal dan b ialah lajur tunggal nombor nyata, maka sistem itu diselesaikan dengan penyingkiran Gaussian (operasinya hanya dilakukan pada unsur pada pepenjuru). Jika semasa proses penyingkiran, pilih atur baris perlu dilakukan untuk mengekalkan kestabilan, atau jika matriks A bukan tridiagonal, maka titik berikut berfungsi.
    b. Jika A ialah pita dengan ketumpatan unsur bukan sifar lebih besar daripada parameter bandden, secara lalai sama dengan 0.5, atau syarat perenggan sebelumnya tidak dipenuhi, maka, bergantung pada jenis A dan b ( berganda atau bujang) prosedur perpustakaan LAPACK berikut dipanggil:

    A dan b adalah beregu sebenar - prosedur DGBTRF, DGBTRS
    A dan b kompleks jenis berganda - prosedur ZGBTRF, ZGBTRS
    A atau b jenis sebenar tunggal - prosedur SGBTRF, SGBTRS
    A atau b kompleks jenis tunggal - prosedur CGBTRF, CGBTRS

    Ketumpatan unsur bukan sifar difahami sebagai nisbah bilangan unsur bukan sifar dalam pita kepada bilangan semua unsur dalam pita matriks, contohnya, untuk matriks 7 dengan 7, yang templatnya diberikan di bawah, bilangan unsur bukan sifar

    nz = 1 (pada rajah No.-2) + 6 (pada rajah No.-1) + 7 (pada rajah No. 0) + 6 (pada rajah No. 1) + 1 (pada rajah No. 2) + 1 (pada rajah No. 3) = 22,

    dan bilangan semua elemen dalam pita

    band = 5 (pada rajah No.-2) + 6 (pada rajah No.-1) + 7 (pada rajah No. 0) + 6 (pada rajah No. 1) + 5 (pada rajah No. 2) + 4 (pada rajah No. 3) = 33

    dan ketumpatan unsur bukan sifar ialah 2/3. Sejak 2/3 > 0.5, penyelesai untuk matriks jalur akan digunakan
    Parameter bandden, seperti parameter lain yang mengawal algoritma matriks jarang dalam MATLAB, ditetapkan menggunakan fungsi spparms.

    Maksud langkah algoritma ini ialah menyelesaikan sistem dengan matriks pita tidak memerlukan tindakan di luar pita. Jika suapan agak penuh, maka tidak akan ada banyak tindakan dengan unsur sifar. Sebaliknya, jika pita agak jarang, maka pendekatan yang diberikan dalam langkah selanjutnya algoritma boleh membawa kesan yang lebih besar.

  • 3. Jika A ialah matriks segi tiga atas atau bawah, maka kaedah penggantian songsang digunakan, atau, dengan itu, kaedah penggantian terus, di mana komponen penyelesaian ditemui daripada terakhir (atau persamaan pertama) dan kemudian komponen yang ditemui adalah digantikan ke dalam persamaan berikut untuk mencari sistem komponen penyelesaian seterusnya bagi persamaan.
  • 4. Jika A - boleh dikurangkan kepada bentuk segi tiga dengan pilih atur, maka pengurangan yang sepadan dilakukan, dan kemudian sistem persamaan diselesaikan seperti dalam langkah 3.
  • 5. Jika A ialah matriks simetri (atau, dalam kes kompleks, Hermitian), dan pepenjurunya hanya mengandungi unsur nyata positif, maka bergantung kepada sama ada A jarang atau tidak, item a) atau item b) dipegang.

    a. Jika A tidak jarang, maka percubaan dibuat untuk melakukan penguraian Cholesky A = R T R diikuti dengan sistem penyelesaian dengan matriks segi tiga R T dan R: R T y = b dan Rx = y. Dalam kes ini, prosedur perpustakaan LAPACK berikut dipanggil:

    A dan b adalah nyata dan berganda - DLANGE, DPOTRF, DPOTRS, DPOCON
    A dan b adalah kompleks dan berganda - ZLANGE, ZPOTRF, ZPOTRS, ZPOCON
    A dan b adalah nyata dan jenis tunggal - SLANGE, SPOTRF, SPOTRS, SDPOCON
    A dan b kompleks dan jenis tunggal - CLANGE, CPOTRF, CPOTRS, CPOCON

    Penguraian Cholesky akan gagal jika matriks tidak pasti positif. Tetapi tidak ada pemeriksaan awal untuk kepastian positif, dan ia ditentukan dengan tepat semasa proses penguraian, kerana selalunya cukup untuk melakukan beberapa langkah penguraian Cholesky untuk menjelaskan fakta bahawa matriks tidak pasti positif (dalam proses pengiraan menjadi perlu untuk mengekstrak punca kuasa dua nombor negatif). Jika penguraian Cholesky tidak berpuas hati, kemudian teruskan ke titik seterusnya.

    b. Jika A jarang, maka pilih atur simetri baris dan lajur terlebih dahulu dilakukan menggunakan algoritma darjah minimum simetri (fungsi symmmd) untuk mengurangkan pengisian faktor penguraian Cholesky, i.e. untuk mengurangkan bilangan unsur bukan sifar baharu yang timbul semasa proses pengisian:

    p = symmmd(A) - vektor p mengandungi pilih atur

    R = chol(A(p, p));

    dan dua sistem dengan pengganda Cholesky diselesaikan, yang pertama dengan pengganda alih dan pilih atur yang sepadan dalam vektor sebelah kanan

    dan yang kedua, dengan faktor pengembangan dan dengan memasukkan komponen larutan ke dalam kedudukan yang sepadan dalam vektor x
    x(p, :) = R\y

  • 6. Jika A ialah matriks Hessenberg, maka ia dikurangkan kepada matriks segi tiga atas (dengan pengubahsuaian yang sesuai pada bahagian kanan) dan kemudian sistem diselesaikan dengan penggantian
  • 7. Jika A ialah matriks segi empat sama yang tidak memenuhi syarat perenggan 1-6, maka bergantung kepada sama ada ia jarang atau tidak, tindakan berikut dilakukan

    a. Jika A bukan matriks jarang, maka menggunakan penghapusan Gaussian dengan pilihan elemen utama (untuk memastikan kestabilan penguraian), penguraian LU matriks A = LU dilakukan, di mana

    U - matriks segi tiga atas
    L ialah matriks yang dikurangkan kepada segi tiga dengan pilih atur baris

    dan penyelesaian kepada sistem Ax = b didapati dengan menyelesaikan sistem secara berurutan dengan matriks segi tiga Ly = b, Ux = y.
    Untuk melakukan penguraian LU, prosedur perpustakaan LAPACK berikut dipanggil:

    A dan b adalah nyata dan berganda - DLANGE, DGESV, DGECON
    A dan b adalah kompleks dan berganda - ZLANGE, ZGESV, ZGECON
    A dan b adalah nyata dan jenis tunggal - SLANGE, SGESV, SGECON
    A dan b ialah jenis kompleks dan tunggal - CLANGE, CGESV, CGECON

    b. Jika A ialah matriks jarang, maka lajur disusun semula untuk mengurangkan pengisian faktor L dan U dalam proses mencari penguraian. Selanjutnya, dengan menyusun semula baris dalam proses penguraian LU, kestabilan pengiraan dipastikan, selepas itu sistem dengan matriks segi tiga diselesaikan semula. Untuk melakukan penguraian LU bagi matriks jarang, prosedur perpustakaan UMFPACK digunakan

    8. Jika titik sebelumnya dalam algoritma tidak berfungsi dan, oleh itu, A bukan matriks persegi, maka semuanya ditentukan oleh sparsitynya dan salah satu titik di bawah berfungsi:

    a. Jika A bukan matriks jarang, maka penguraian QR AP = QR dilakukan, di mana P ialah matriks pilih atur lajur, Q ialah matriks ortogon (Q T Q = I), dan R ialah segi tiga atas. Jika A ialah saiz m dengan n, maka Q ialah saiz m dengan m, dan R ialah saiz m dengan n. Seterusnya, penyelesaian kepada sistem didapati seperti berikut:

    x = P*(R \ (Q" * b))

    kerana dari Ax = b dan AP = QR ia berikut: QRx = bP dan Rx = Q T bP.

    b. Dalam kes matriks jarang dan segi empat tepat A, tidak ada gunanya mengira matriks Q, kerana ia berkemungkinan besar akan diisi. Oleh itu, algoritma penguraian QR mengira c = Q T b (iaitu, bahagian kanan yang diubah suai) dan menyelesaikan sistem Rx = c dengan matriks segi tiga untuk mendapatkan penyelesaian kepada sistem asal Ax = b.

Sebagai tambahan kepada semua perkara di atas, algoritma di atas menilai kesyaratan matriks dan memaparkan amaran tentang kemungkinan ralat dalam penyelesaian jika matriks dikondisikan dengan buruk (lihat bahagian Pengaruh ketersyaratan matriks pada ketepatan menyelesaikan sistem dengannya). Algoritma di atas mengandungi pelbagai semakan yang mungkin mengambil masa tambahan yang ketara. Bahagian seterusnya, Fungsi linsolve untuk menyelesaikan sistem persamaan linear, memperkenalkan fungsi linsolve, yang membolehkan anda menentukan jenis matriks, dengan itu mengurangkan masa pengiraan.

fungsi linsolve untuk menyelesaikan sistem persamaan linear

Daripada menyelesaikan sistem (atau sistem dengan berbilang sisi kanan yang ditakrifkan dalam matriks) persamaan algebra linear menggunakan tanda garis miring ke belakang, anda boleh menggunakan fungsi linsolve, yang tidak melakukan semua semakan matriks yang wujud dalam algoritma operasi \ ( lihat bahagian sebelumnya).

Fungsi linsolve dipanggil dalam bentuk termudah dengan dua argumen input dan satu argumen output
x = linsolve(A, b)
menyelesaikan sistem Ax = b dalam salah satu cara, bergantung pada sama ada matriks adalah segi empat sama atau tidak.

  • Jika A ialah matriks segi empat sama, maka penguraian LUnya mula-mula dikira dan kemudian dua sistem dengan matriks segi tiga L dan U diselesaikan.
  • Jika A ialah matriks segi empat tepat, maka penguraian QRnya terlebih dahulu dikira dan kemudian sistem dengan matriks segi tiga diselesaikan.

(Butiran lanjut tentang tindakan dengan faktor pengembangan yang terhasil ditulis dalam bahagian). Lebih-lebih lagi, jika matriks A tidak bersyarat atau A ialah matriks berpangkat tidak lengkap, maka amaran yang sepadan dipaparkan, contohnya:

A = ; b = ; x = linsolve(A,b) Amaran: Kedudukan kurang, pangkat = 1, tol = 4.4686e-015. x = 0 0 2.0000

Untuk menyekat mesej ini daripada dicetak dalam tetingkap arahan, panggil fungsi linsolve dengan dua argumen output
= linsolve(A, b)
maka penyelesaian yang terhasil akan ditulis dalam x, dan dalam r - sama ada pangkat matriks (jika A ialah matriks segi empat tepat), atau salingan anggaran untuk nombor keadaannya (lihat bahagian), contohnya

A = ; b = ; = linsolve(A,b) x = -1.0000e+000 9.9999e-001 3.3307e-006 r = 6.9444e-013

Kelebihan utama fungsi linsolve berbanding operasi \ muncul apabila menentukan jenis matriks sistem persamaan. Untuk melakukan ini, sebelum memanggil fungsi linsolve, anda perlu mengisi struktur dengan maklumat tentang matriks dengan medan berikut

  • SYM - simetri;
  • LT - segi tiga yang lebih rendah;
  • UT - segi tiga atas;
  • UHESS - Hessenberg;
  • POSDEF - simetri, pasti positif;
  • RECT - segi empat tepat;
  • TRANSA - sama ada perlu untuk menyelesaikan sistem dengan matriks yang ditukar kepada yang diberikan.

Setiap medan boleh sama ada benar atau salah. Sudah tentu, tidak semua gabungan nilai medan adalah sah; sebagai contoh, matriks tidak boleh berbentuk segi tiga dan pada masa yang sama simetri dan pasti positif. Gabungan nilai medan yang betul dikumpulkan dalam jadual berikut

LT UT UHESS SYM POSDEF BETUL TRANSA
benarsalahsalahsalahsalahbetul salahbetul salah
salahbenarsalahsalahsalahbetul salahbetul salah
salahsalahbenarsalahsalahsalahbetul salah
salahsalahsalahbenarbenarsalahbetul salah
salahsalahsalahsalahsalahbetul salahbetul salah

Jika matriks sistem adalah pasti positif, maka ini mesti diambil kira semasa menyelesaikan, kerana untuk matriks pasti positif penyelesaian adalah berdasarkan penguraian Cholesky, yang memerlukan operasi yang lebih sedikit daripada penguraian LU yang digunakan semasa menyelesaikan sistem dengan matriks persegi umum . Ini mudah untuk disahkan dengan bantuan contoh berikut, di mana matriks pasti positif simetri dicipta (matriks nombor rawak ditambah dengan transpose kepadanya dan nombor besar ditambah pada pepenjuru) dan sistem persamaan dengan matriks ini pertama kali diselesaikan sebagai sistem dengan matriks bentuk umum (opts. SYM = false dan opts.POSDEF = false), dan kemudian seperti dengan matriks pasti simetri dan positif (opts.SYM = true dan opts .POSDEF = benar).

% tetapkan semua medan struktur ops, kecuali SYM dan POSDEF opts. TRANSA = false; opts.UHESS = palsu; opts.RECT ​​​​= palsu; opts.UT = palsu; opts.LT = palsu; % mencipta vektor saiz matriks N = 2.^(8:12); % cipta tatasusunan kosong untuk merekod masa penyelesaian TimeGeneral = ; TimePosSym = ; % dalam gelung kita mencipta matriks dan membandingkan masa penyelesaian untuk n = N % kita mencipta matriks pasti simetri dan positif % dan vektor sebelah kanan A = rand(n); A = A + A" + 2*n*eye(n); b = sum(A, 2); % selesaikan sistem sebagai sistem dengan opts matriks umum.SYM = false; opts.POSDEF = false; Tstart = cputime; x = linsolve(A,b, opts); Tend = cputime; TimeGeneral = ; % selesaikan sistem sebagai sistem dengan simetri dan opts matriks kedudukan.SYM = true; opts.POSDEF = true; Tstart = cputime; x = linsolve( A,b, opts); Tend = cputime; TimePosSym = ; tamat % paparan graf masa angka loglog(N, TimeGeneral, N, TimePosSym) legend("TimeGeneral", "TimePosSym")

Kos pengiraan yang terhasil bagi kaedah penyelesaian sistem ini ditunjukkan dalam graf di bawah

Sudah tentu, jika matriks adalah segi tiga, maka sangat penting untuk menunjukkan ini, kerana menyelesaikan sistem dengan matriks segi tiga dilakukan dalam operasi O(n 2), dan jika algoritma penyelesaian direka untuk matriks bentuk umum digunakan pada sistem dengan matriks segi tiga, maka ia akan mengambil kira-kira operasi O(n 3).

Fungsi linsolve tidak menyemak sama ada matriks memenuhi sifat yang ditentukan, yang boleh mengakibatkan ralat. Contohnya, jika, semasa menyelesaikan sistem dengan matriks berikut dan sebelah kanan

A = ; b = ; tetapkan benar untuk medan UT (dan tetapkan semua yang lain kepada palsu). UT = benar; opts.TRANSA = palsu; opts.LT = palsu; opts.UHESS = palsu; opts.SYM = palsu; opts.POSDEF = palsu; opts.RECT ​​​​= palsu; maka apabila menyelesaikan sistem, fungsi linsolve akan menganggap matriks sebagai segi tiga atas dan memilih elemen yang diperlukan daripada segi tiga atas A x = linsolve(A,b, opts) Ini akan menghasilkan penyelesaian x = 1 1 1 sepadan dengan matriks A = ;

Pengaruh syarat matriks terhadap ketepatan menyelesaikan sistem dengannya

Dalam bahagian ini, kita melihat bagaimana ralat dalam unsur-unsur vektor sebelah kanan dan dalam matriks sistem persamaan linear Ax = b boleh menjejaskan penyelesaian sistem itu. Mari kita mula-mula beralih kepada kes memasukkan gangguan ke dalam vektor sebelah kanan b. Jadi kita selesaikan dua sistem

Selain itu, diandaikan bahawa kita menyelesaikan setiap sistem dengan tepat, dan persoalan utama yang timbul ialah sejauh mana penyelesaian x sistem (1) berbeza daripada penyelesaian sistem (2) dengan gangguan di sebelah kanan δb. Ini adalah soalan yang agak penting, kerana unsur-unsur di sebelah kanan boleh diperolehi hasil daripada beberapa ukuran, masing-masing mengandungi ralat δb k dalam setiap komponen b k. Saya ingin itu apabila mengukur kuantiti yang sama (setiap kali dengan ralat kecilnya sendiri), penyelesaian yang sepadan bagi sistem dengan sisi kanan yang sedikit berbeza juga tidak jauh berbeza antara satu sama lain. Malangnya, ini tidak selalu berlaku. Sebab untuk ini adalah ciri matriks yang dipanggilnya bersyarat. Ini akan dibincangkan lebih lanjut.

Pertama, anda perlu memperkenalkan ukuran kehampiran vektor dan x, i.e. vektor ralat. Ukuran magnitud vektor adalah norma (ia boleh ditakrifkan dengan cara yang berbeza). Buat masa ini, mari kita ambil sebagai norma norma Euclidean biasa bagi vektor (punca kuasa dua jumlah kuasa dua komponennya), i.e.

Sehubungan itu

di mana n ialah bilangan yang tidak diketahui dan persamaan dalam sistem. Sebagai tambahan kepada norma vektor untuk menganggar magnitud vektor, kita juga memerlukan norma matriks untuk menganggarkan magnitud matriks. Mari kita ambil norma matriks, yang ditakrifkan seperti berikut (ia dipanggil norma spektrum):

mereka. norma matriks spektrum adalah sama dengan punca kuasa dua nilai eigen maksimum matriks A T A. MATLAB mempunyai fungsi norma untuk mengira norma matriks dan vektor, yang, khususnya, boleh mengira norma di atas. Sebab kami memilih norma vektor dan matriks tertentu ini dijelaskan secara terperinci dalam bahagian, di mana beberapa pengiraan dan takrifan diberikan. Ini berkaitan dengan anggaran yang akan kami gunakan untuk ralat dalam menyelesaikan sistem (penerbitan ketaksamaan ini juga diberikan dalam bahagian yang disebutkan):

Di sini kita menandakan nombor keadaan matriks, yang ditakrifkan seperti berikut:

Daripada ketaksamaan di atas, semakin besar nombor keadaan matriks sistem, semakin besar ralat relatif dalam penyelesaian dengan ralat kecil di sebelah kanan.

Mari kita pertimbangkan contoh klasik matriks yang tidak bersyarat - matriks Hilbert - dan ketahui bagaimana ralat di sebelah kanan sistem mempengaruhi ralat dalam penyelesaian. Matriks Hilbert ditakrifkan seperti berikut

Untuk mencipta matriks Hilbert, MATLAB menyediakan fungsi hilb, yang argumen inputnya menentukan saiz matriks. Mari kita ambil matriks kecil 6 kali 6:

N = 6; H = hilb(n) H = 1.0000 0.5000 0.3333 0.2500 0.2000 0.1667 0.5000 0.3333 0.2500 0.2000 0.1667 0.14133 0.0.6000 .1429 0.1250 0.2500 0.2000 0.1667 0.1429 0.1250 0.1111 0.2000 0.1667 0.1429 0.1250 0.1111 0.1111 0.10421 0.10401 0.1000 0.0909

X = satu(n, 1); b = H*x b = 2.4500 1.5929 1.2179 0.9956 0.8456 0.7365

Kami melihat bahawa tiada apa-apa yang "mencurigakan" sama ada dalam matriks atau vektor di sebelah kanan; semua nombor tidak begitu berbeza antara satu sama lain. Sekarang mari kita bentuk sisi kanan terganggu b + δb dengan menambah nombor kecil tertib 10 -5 pada vektor b dan selesaikan sistem dengan sisi kanan terganggu untuk mendapatkan vektor .

Delta_b = 1e-5*(1:n)"; x_tilda = H\(b + delta_b) x_tilda = 0.9978 1.0735 0.4288 2.6632 -1.0160 1.8593

Ia boleh dilihat bahawa penyelesaian yang terhasil adalah jauh dari yang tepat, di mana semua unit sepatutnya. Mari kita hitung ralat relatif dalam penyelesaian dan di sebelah kanan (fungsi norma secara lalai mengira norma Euclidean vektor):

Delta_x = x - x_tilda; KIRI = norma(delta_x)/norm(x) KIRI = 1.1475 KANAN = norma(delta_b)/norm(b) KANAN = 2.7231e-005

Jadi, ralat dalam penyelesaian adalah tertib perpaduan, walaupun perubahan di sebelah kanan adalah tertib 10 -5. Ini sangat sesuai dengan ketidaksamaan di atas untuk ralat. Sesungguhnya, mari kita mengira nombor keadaan cond(H) menggunakan fungsi MATLAB yang dipanggil cond dan secara lalai mengira untuk norma spektrum matriks

C = cond(H) c = 1.4951e+007

KIRI ≈ 1.1475 kurang

C* BETUL? 1.4951e+07 * 2.7231e-05 ≈ 407

dan ketidaksamaan itu berpuas hati (walaupun dengan sedikit margin).

Apabila saiz matriks Hilbert bertambah, ralat dalam penyelesaian hanya akan meningkat (ini mudah untuk diperiksa dengan menetapkan n = 7, 8, ...). Lebih-lebih lagi, untuk n = 12 mesej akan dipaparkan yang menyatakan bahawa matriks tidak berhawa dingin dan penyelesaiannya mungkin tidak betul

Amaran: Matriks hampir kepada tunggal atau berskala teruk.
Keputusan mungkin tidak tepat. RCOND = 2.409320e-017.

Sebagai ukuran syarat, nilai yang dipilih di sini ialah RCOND bersamaan dengan satu dibahagikan dengan anggaran nombor keadaan (nombor syarat dianggarkan menggunakan algoritma yang agak pantas yang berfungsi lebih pantas daripada cond, yang diterangkan dengan lebih terperinci dalam bantuan pada fungsi rcond). Jika nilai RCOND kecil, maka matriks dianggap tidak bersyarat.

Peningkatan ralat dalam penyelesaian apabila saiz matriks Hilbert bertambah adalah disebabkan oleh fakta bahawa nombor keadaan matriks Hilbert berkembang dengan sangat cepat dengan saiznya. Ini mudah untuk disahkan menggunakan gelung mudah dan fungsi semilogi (skala sepanjang paksi ordinat adalah logaritma):

N = 1:20; C = sifar(1, 20); untuk n = N H = hilb(n); C(n) = cond(H); tamatkan grid semilogi(N, C), tajuk("cond(H)"), xlabel("n")

Dengan cara ini, oleh kerana fungsi cond mencari nombor keadaan menggunakan kaedah berangka (iaitu, pengembangan tunggal untuk mencari nombor tunggal), nombor keadaan selepas n = 12 tidak lagi dikira dengan betul; sebenarnya, ia sepatutnya berkembang lebih jauh, yang boleh disahkan menggunakan pengiraan simbolik dalam MATLAB dan operasi dengan bilangan angka bererti tertentu

N = 1:20; C = sifar(1, N); digit(60) untuk n = N H = vpa(sym(hilb(n))); % pengiraan matriks Hilbert tepat kepada sigma digit ke-60 = svd(H); % mencari nilai tunggal matriks Hilbert % mengira nombor keadaan matriks Hilbert C(n) = max(double(sigma))/min(double(sigma)); tamatkan grid semilogi(N, C), tajuk("cond(H)"), xlabel("n")

Sekarang mari kita pertimbangkan tiga perkara penting mengenai contoh ini.

Yang pertama daripada mereka - menyelesaikan sistem Hx = b (dengan vektor sebelah kanan sepadan dengan penyelesaian dari unit) menggunakan operator garis miring ke belakang tidak akan memberikan unit yang tepat, ralat akan berada dalam angka kesepuluh (walaupun dalam MATLAB semua pengiraan dilakukan dengan ketepatan berganda secara lalai)

Format panjang H\b ans = 0.99999999999916 1.00000000002391 0.99999999983793 1.00000000042209 0.999999999953391 1.00000000042209 0.999999999953360

Ini berlaku kerana apabila mengira vektor b apabila mendarab matriks H dengan vektor semua, kami telah memasukkan beberapa ralat di dalamnya. Di samping itu, ralat pembundaran dalam proses menyelesaikan sistem juga memainkan peranan dan keadaan matriks yang lemah (walaupun bersaiz kecil) menyebabkan ralat sedemikian dalam penyelesaian. Sesungguhnya, untuk matriks kecil dengan nombor keadaan kecil, kesan sedemikian tidak akan diperhatikan. Mari kita ambil matriks 6 kali 6 nombor rawak dan hitung nombor keadaannya

A = rand(n); cond(A) ans = 57.35245279907571

Kemudian kami membentuk bahagian kanan yang sepadan dengan penyelesaian tepat dari semua unit

X = satu(n, 1); b = A*x;

dan menyelesaikan sistem, menghasilkan ketepatan yang baik

>> A\b ans = 1.0000000000000 1.000000000000000 1.00000000000000 1.0000000000000 1.000000000000000 1.000000000

Perkara penting kedua adalah berkaitan dengan penentu matriks. Mari kita hitung penentu bagi matriks Hilbert 6 dengan 6 yang kita gunakan untuk menyelesaikan sistem

>> det(hilb(6)) ans = 5.3673e-018

Penentu ternyata cukup kecil, dari mana seseorang boleh membuat kesimpulan yang salah bahawa punca masalah ralat besar dalam penyelesaian dengan gangguan kecil di sebelah kanan sistem adalah kekecilan penentu. Pada hakikatnya, ini tidak berlaku; jika penentu sistem adalah kecil, ini tidak bermakna bahawa matriks berhawa dingin dan, oleh itu, terdapat ralat besar dalam penyelesaian. Sesungguhnya, mari kita ambil matriks

A = ;

Penentunya sangat kecil, kira-kira 10 -121

Det(A) ans = 9.9970e-121

(perkataan "sangat" sudah tentu bersyarat, tetapi ia lebih kecil daripada penentu matriks Hilbert 6 kali 6, yang kami menghadapi masalah semasa menyelesaikan sistem). Walau bagaimanapun, kekecilan penentu tidak akan sama sekali menjejaskan ralat dalam penyelesaian apabila bahagian kanan sistem terganggu, yang mudah ditunjukkan dengan membentuk sistem dengan penyelesaian yang diketahui, memperkenalkan gangguan ke bahagian kanan dan menyelesaikan sistem:

X = ; b = A*x; delta_b = 1e-5*; x_tilda = A\(b+delta_b); delta_x = x - x_tilda; KIRI = norma(delta_x)/norm(x) KANAN = norma(delta_b)/norm(b) KIRI = 2.1272e-005 KANAN = 2.1179e-005

Jadi, ralat relatif dalam penyelesaian hampir sama dengan ralat relatif di sebelah kanan, kerana nombor keadaan matriks A di atas lebih besar sedikit daripada 1, iaitu:

C = cond(A) c = 1.0303

Dan akhirnya, pertimbangkan soalan ketiga mengenai mencapai tanda sama dalam ketaksamaan untuk ralat dalam penyelesaian

Iaitu, dalam erti kata lain, mari kita ketahui: bolehkah terdapat situasi apabila kita membuat gangguan relatif kecil di sebelah kanan sistem, katakan 10 -5, nombor keadaan matriks sistem adalah sama dengan 10 10 , dan dalam penyelesaian ralat relatif 10 5 diperolehi. Anda boleh melalui banyak contoh, mencuba matriks yang berbeza, tidak mencapai kesaksamaan, dan tersilap membuat kesimpulan bahawa ini hanyalah anggaran yang terlalu tinggi dari atas untuk ralat dalam penyelesaian. Walau bagaimanapun, ini tidak berlaku, kerana contoh berikut meyakinkan kita.

di mana gangguan relatif bahagian kanan ialah 10 -5

KANAN = norma(delta_b)/norma(b) KANAN = 1.0000e-005

Ralat relatif dalam menyelesaikan sistem ternyata 10 5

X = A\b; x_tilda = A\(b+delta_b); delta_x = x - x_tilda; KIRI = norma(delta_x)/norma(x) KIRI = 1.0000e+005

Dan ini berlaku kerana
1) dalam contoh ini, nombor keadaan matriks A ialah 10 10;

C = cond(A) c = 1.0000e+010

2) ketidaksamaan untuk ralat dalam penyelesaian bertukar menjadi kesamaan.

Jika kita menetapkan format kepada panjang, kita melihat bahawa KIRI, KANAN dan nombor syarat masing-masing tidak betul-betul 10 5 , 10 -5 dan 10 10 , tetapi ini disebabkan oleh ralat pembundaran. Jika diselesaikan dalam aritmetik tepat, kesamaan adalah tepat, yang boleh ditunjukkan secara analitikal (lihat bahagian).

Dalam contoh sebelumnya, kami mengandaikan bahawa matriks tidak mengandungi ralat, dan ralat hanya boleh berada di sebelah kanan sistem persamaan linear. Dalam amalan, ia mungkin ternyata bahawa unsur-unsur matriks sistem ditentukan dengan ralat, i.e. bukannya sistem

|| Kapak || V = || b || V ⇒ || A || M || x || V ≥ || b || V

di mana || || M ialah beberapa norma matriks. Untuk melakukan ini, norma matriks || || M dan norma vektor || || V mesti memenuhi ketaksamaan berikut

|| A || M || x || V ≥ || Kapak || V

untuk sebarang matriks A dan vektor x. Jika ketidaksamaan ini berlaku, maka norma matriks || || M dipanggil dipersetujui dengan norma vektor || || V. Ia diketahui, sebagai contoh, bahawa norma spektrum

(akar kuasa dua bagi nilai eigen maksimum matriks A T) adalah konsisten dengan norma vektor Euclidean

Itulah sebabnya dalam bahagian ini kami menjalankan semua eksperimen menggunakan norma ini.

Setelah menerima ketidaksamaan || A || M || x || V ≥ || b || V selanjutnya ambil perhatian bahawa daripada Ax = b ia mengikuti bahawa . Oleh kerana matriks A bukan tunggal, maka δx = A -1 δb dan || δx || V = || A -1 δb || V. Sekali lagi kami menggunakan ketekalan norma dan mendapatkan ketidaksamaan || δx || V ≤ || A -1 || M || δb || V. Selanjutnya, dalam dua ketaksamaan yang diperolehi

|| A || M || x || V ≥ || b || V dan || δx || V ≤ || A -1 || M || δb || V

Kami membahagikan nilai yang lebih kecil bagi salah satu ketaksamaan dengan nilai yang lebih besar daripada ketaksamaan yang lain, dan nilai yang lebih besar, masing-masing, dengan yang lebih kecil.

dan melalui transformasi yang mudah kita akhirnya memperoleh ketidaksamaan yang diperlukan

di mana cond(A) = || A || M* || A -1 || M.

Ambil perhatian bahawa apabila memperoleh ketaksamaan untuk ralat, kami hanya menggunakan fakta bahawa norma matriks adalah konsisten dengan vektor satu. Ini benar bukan sahaja untuk norma spektrum matriks dan norma Euclidean vektor, tetapi juga untuk norma lain. Jadi, sebagai contoh, norma matriks lajur maksimum, dikira oleh formula

konsisten dengan norma vektor pertama

dan norma matriks baris maksimum, dikira dengan formula

selaras dengan norma vektor tak terhingga

Fungsi norma mengira bukan sahaja norma Euclidean bagi vektor dan norma spektrum matriks, tetapi juga norma vektor dan matriks yang disenaraikan di atas. Untuk melakukan ini, anda perlu memanggilnya dengan hujah kedua tambahan:

  • q = norma(A, 1) - norma lajur maksimum matriks A
  • q = norma(A, inf) - norma baris maksimum matriks A
  • q = norma(a, 1) - norma vektor pertama a
  • q = norma(a, inf) - norma vektor tak terhingga a

Nombor keadaan matriks cond(A) = || A || M* || A -1 || M berkenaan dengan pelbagai norma matriks boleh dikira menggunakan fungsi cond. Jika cond dipanggil dengan satu argumen input (matriks), maka nombor keadaan dikira relatif kepada norma matriks spektrum. Memanggil fungsi cond dengan argumen tambahan mengembalikan nombor keadaan berbanding dengan norma matriks yang ditentukan:

  • c = cond(A, 1) - nombor keadaan berbanding dengan norma lajur maksimum matriks
  • с = cond(A, inf) - nombor keadaan relatif kepada norma baris maksimum matriks

Sebagai contoh yang menunjukkan kepentingan ketekalan norma matriks dengan norma vektor dalam ketaksamaan ralat, kami memberikan contoh dengan matriks A, vektor sisi kanan b dan vektor ralat pada delta_b sebelah kanan.

A = ; b = [ -5.7373057243726833e-001 -1.5400413072907607e-001 -5.3347697688693385e-001 -6.0209490373259189]; delta_b = [-0.71685839091451e-5 0.54786619630709e-5 0.37746931527138e-5 0.20850322383081e-5];

Mari kita mengira bahagian kanan dan kiri anggaran menggunakan norma vektor pertama, dan nombor keadaan matriks berhubung dengan norma matriks spektrum

KANAN = norma(delta_b,1)/norm(b,1); c = cond(A); x = A\b; x_tilda = A\(b+delta_b); delta_x = x - x_tilda; KIRI = norma(delta_x,1)/norma(x,1); format short e disp()

Kami memperoleh nilai berikut untuk bahagian kiri dan kanan ketaksamaan
9.9484e+004 9.9323e+004

Bahagian kiri tidak boleh melebihi kanan (seperti yang dibuktikan di atas), tetapi ternyata lebih besar kerana pilihan norma yang tidak konsisten.

Sekarang mari kita periksa mengapa nombor keadaan matriks tidak boleh kurang daripada satu. Nombor keadaan matriks A ditakrifkan sebagai cond(A) = || A || M* || A -1 || M , di mana || A || M ialah beberapa norma matriks A. Norma matriks (iaitu peraturan yang mana nombor dikaitkan dengan setiap matriks) tidak boleh sembarangan; ia mesti memenuhi empat aksiom berikut:

A1. || A || ≥ 0 untuk mana-mana matriks A dan || A || = 0 jika dan hanya jika A ialah matriks sifar.

A2. || αA || = | α | * || A || untuk sebarang matriks A dan nombor α.

A3. || A + B || ≤ || A || + || B || untuk mana-mana matriks A dan B

A4. || AB || ≤ || A || * || B || bagi mana-mana matriks A dan B.

Dari aksiom terakhir adalah jelas bahawa norma ditakrifkan hanya untuk matriks persegi (walaupun dalam formula di atas untuk mengira pelbagai norma, pada dasarnya, tidak ada sekatan sedemikian). Di samping itu, dari aksiom terakhir ia mengikuti bahawa mana-mana norma matriks identiti I tidak kurang daripada satu, sememangnya

|| saya || = || saya*saya || ≤ || saya || 2 ⇒ || saya || ≥ 1.

Kemudian, sekali lagi menggunakan aksiom keempat, kita mendapati bahawa nombor keadaan matriks sentiasa lebih besar daripada satu (benar untuk nombor keadaan matriks berkenaan dengan norma matriks arbitrari)

1 ≤ || saya || = || AA -1 || ≤ || A || * || A -1 || = cond(A).

Mari kita lengkapkan bahagian ini dengan meneliti sebab kemunculan kesamaan tepat dalam anggaran ralat dalam penyelesaian apabila bahagian kanan terganggu:

dan membina contoh yang sepadan dalam MATLAB. (Perbincangan di bawah terkandung, sebagai contoh, dalam buku oleh J. Forsythe, K. Mohler. Penyelesaian berangka sistem persamaan algebra linear. M: "Mir", 1969.)

Peranan penting dalam penaakulan dimainkan oleh teorem mengenai penguraian tunggal matriks, mengikut mana mana-mana matriks nyata bersaiz n wujud dua matriks ortogon U dan V bersaiz n oleh n (U T U=UU T dan V T V = VV T) supaya hasil darab D = U T AV ialah matriks pepenjuru, dan kita boleh memilih U dan V supaya

di mana μ 1 ≥ μ 2 ≥…≥μ r ≥ μ r+1 =…=μ n =0,

dan r ialah pangkat bagi matriks A. Nombor μ k dipanggil nombor spektrum matriks A. Untuk matriks bukan tunggal A berikut adalah benar:

μ 1 ≥ μ 2 ≥ … ≥μ n ≥ 0.

Fakta penting seterusnya ialah pendaraban dengan matriks ortogon tidak mengubah norma Euclidean vektor, i.e. bagi mana-mana vektor x dengan n unsur dan sebarang matriks ortogonal U bersaiz n dengan n kesamaan adalah benar

|| Ux || = || x ||.

Oleh kerana pendaraban dengan matriks ortogon tidak mengubah norma spektrum, maka

oleh itu, untuk nombor keadaan matriks kesamaan berikut adalah benar:

Kami mempunyai dua sistem: Ax = b (dengan penyelesaian tepat x) dan (dengan penyelesaian tepat ). Jelas sekali, ralat δx ialah penyelesaian kepada sistem yang sebelah kanannya ialah gangguan δb, i.e. sistem Aδx = δb. Biarkan D = U T AV ialah penguraian nilai tunggal bagi matriks A, maka UDV T = A disebabkan oleh fakta bahawa U dan V ialah matriks ortogon. Selanjutnya

Ax = b ⇒ UDV T x = b.

Mari kita perkenalkan notasi

x" = V T x, b" = U T b,

maka sistem berikut adalah setara

Ax = b ⇔ Dx" = b"

Dengan cara yang sama sekali, pertimbangkan sistem berkenaan dengan ralat

Aδx = δb ⇒ UDV T δx = δb

Kami memperkenalkan notasi

δx" = V T δx, δb" = U T δb,

yang mana sistem berikut ternyata setara

Aδx = δb ⇔ Dδx" = δb"

Itu. kami telah memperoleh sistem setara mudah dengan matriks pepenjuru, pada pepenjurunya ialah nombor spektrum matriks A.

Sekarang marilah kita memilih bahagian kanan sistem ini dengan cara yang istimewa, iaitu, biarkan

di mana β > 0, maka penyelesaian yang sepadan dengan sistem Dx" = b" adalah

di mana μ 1 ialah nilai tunggal maksimum matriks A. Kita akan melakukan perkara yang sama dengan sistem Dδx" = δ b", iaitu, biarkan

di mana γ > 0, maka penyelesaian yang sepadan dengan sistem Dδx" = δb" akan menjadi

Daripada pengekalan norma vektor apabila ia didarab dengan matriks ortogon, ia berikutan bahawa

β/μ 1 = || x" || = || V T x || = || x || dan γ/μ n = || δx" || = || V T δx || = ||δx ||.

Dengan cara yang sama kita memperoleh kesamaan:

β = || b" || = || U T b || = || b || dan γ = || δb" || = || U T δb || = || δb ||.

dan sejak

maka akhirnya kita dapat

Jadi, bagi setiap matriks A adalah mungkin untuk membina vektor di sebelah kanan sistem dan gangguannya supaya ralat dalam penyelesaian akan menjadi hasil darab nombor keadaan matriks dan ralat di sebelah kanan. Dalam MATLAB, pembinaan yang sepadan boleh dilakukan tanpa menggunakan penguraian nilai tunggal (walaupun ia boleh didapati menggunakan fungsi svd).

Mula-mula kita tetapkan n dan dapatkan dua matriks ortogonal U dan V dengan melakukan penguraian QR bagi n dengan n matriks daripada nombor rawak:

N = 4; = qr(rand(n)); = qr(rand(n));

D = diag();

Selepas ini, kami membina matriks A menggunakan matriks pepenjuru D dan matriks ortogon U dan V

A = U*D*V";

Nombor keadaan matriks A akan bertepatan dengan nombor keadaan matriks D, yang dalam contoh kita adalah sama dengan 10 10

Beta = 1; gamma = 1e-5;

dan bina vektor b" dan δb"

B1 = "; db1 = ";

daripadanya kita dapati vektor b dan δb

X = A\b; x_tilda = A\(b+db);

hitung sisi kiri dan kanan ketaksamaan itu

dx = x - x_tilda; KANAN = norma(db)/norm(b); KIRI = norma(dx)/norm(x);

dan bawa mereka keluar

Format short e disp()

Kami mendapat kesaksamaan

Bahasa pengaturcaraan tafsiran sistem MATLAB dicipta sedemikian rupa sehingga mana-mana pengiraan (kadang-kadang sangat kompleks) boleh dilakukan dalam mod pengiraan langsung, iaitu, tanpa pengguna menyediakan program. Dalam kes ini, MATLAB melaksanakan fungsi superkalkulator dan berfungsi dalam mod baris arahan.

Bekerja dengan sistem adalah bersifat interaktif dan mengikut peraturan "tanya soalan dan terima jawapan." Pengguna menaip ungkapan yang dikira pada papan kekunci, mengeditnya (jika perlu) pada baris arahan, dan melengkapkan entri dengan menekan kekunci ENTER. Sebagai contoh, angka itu menunjukkan pengiraan yang paling mudah dan agak jelas.

Walaupun daripada contoh mudah itu, beberapa kesimpulan yang instruktif boleh dibuat:

* untuk menunjukkan input data awal, simbol >> digunakan;

* data dimasukkan menggunakan editor baris mudah;

* untuk menyekat output hasil pengiraan ungkapan tertentu, anda perlu menetapkan tanda selepasnya; (titik koma);

* jika pembolehubah tidak dinyatakan untuk nilai hasil pengiraan, maka MATLAB memperuntukkan pembolehubah sedemikian bernama ans;

* tanda tugasan ialah tanda sama =, biasa kepada ahli matematik, dan bukan tanda gabungan:=, seperti dalam banyak bahasa pengaturcaraan dan sistem matematik lain;

* fungsi terbina dalam (contohnya, sin) ditulis dalam huruf kecil, dan hujahnya ditunjukkan dalam kurungan;

* hasil pengiraan dipaparkan dalam baris keluaran (tanpa tanda >>);

* dialog berlaku dalam gaya "bertanya soalan - menerima jawapan."

Contoh berikut menggambarkan penggunaan MATLAB untuk melaksanakan beberapa operasi vektor mudah lain. Angka tersebut juga menunjukkan tetingkap penyemak imbas sistem fail, yang tersedia pada tab Direktori Semasa. Dalam mod arahan, adalah lebih mudah untuk memanggil tetingkap penyemak imbas sistem fail dari bar alat dengan mengaktifkan butang selepas senarai direktori sistem MATLAB. Mungkin terdapat kes di mana pengiraan ditinggalkan jika direktori semasa tidak ditetapkan dengan betul, jika fail-m yang diperlukan untuk pengiraan tidak dikesan.

Dalam kebanyakan sistem matematik, mengira sin(V) atau exp(V), dengan V ialah vektor, akan menghasilkan ralat kerana fungsi sin dan exp mesti mempunyai hujah skalar. Walau bagaimanapun, MATLAB ialah sistem matriks, dan vektor ialah sejenis matriks dengan saiz 1×n atau n×1. Oleh itu, dalam kes kami, hasil pengiraan akan menjadi vektor dengan saiz yang sama dengan hujah V, tetapi unsur-unsur vektor yang dikembalikan akan menjadi sinus atau eksponen bagi unsur-unsur vektor V.

Matriks ditentukan sebagai satu siri vektor yang mewakili barisnya, disertakan dalam kurungan segi empat sama. Ruang atau koma digunakan untuk memisahkan elemen vektor, dan koma bertitik digunakan untuk memisahkan satu vektor daripada yang lain. Untuk memilih elemen individu bagi matriks M, ungkapan dalam bentuk M(j,i) digunakan, dengan M ialah nama matriks, j ialah nombor baris dan i ialah nombor lajur.

Untuk melihat kandungan tatasusunan, adalah mudah untuk menggunakan penyemak imbas Ruang Kerja. Setiap vektor dan matriks di dalamnya diwakili sebagai segi empat sama dengan sel, di sebelah kanannya saiz tatasusunan ditunjukkan. Klik dua kali pada petak dengan tetikus membawa kepada kemunculan tetingkap Array Editor. Bekerja dengan editor tatasusunan agak jelas - anda bukan sahaja boleh melihat elemen tatasusunan, tetapi juga mengedit dan menggantikannya.

Seperti yang dapat dilihat daripada contoh yang diberikan, input ungkapan awal untuk pengiraan dalam sistem MATLAB dijalankan dalam format teks yang paling biasa. Hasil pengiraan, kecuali pengiraan grafik, dipaparkan dalam format yang sama. Berikut ialah contoh pengiraan rakaman yang dilakukan oleh MATLAB pada baris arahan:

Bekerja dengan editor tatasusunan

Untuk bermula, pilih "Bantuan MATLAB" daripada menu Bantuan.

>> taip dosa

dosa adalah fungsi terbina dalam.

>> membantu dosa

SIN(X) ialah sinus unsur X.

Kaedah terlebih beban

>>V=

0.8415 0.9093 0.1411 -0.7568

Ralat menggunakan ==> ^

Matriks mestilah segi empat sama.

Anda boleh memberi perhatian kepada bentuk respons apabila melakukan operasi mudah tanpa menyatakan pembolehubah yang hasilnya ditetapkan. Dalam kes sedemikian, MATLAB sendiri memberikan pembolehubah, ans, yang hasilnya ditetapkan dan nilainya kemudiannya dipaparkan.

Borang keluaran dan pemisah baris dalam sesi

Perlu diperhatikan ciri-ciri output dalam sistem MATLAB. Output bermula pada baris baharu, dengan data berangka diinden dan data teks diinden. Untuk menjimatkan ruang dalam buku ini, output masa hadapan akan diberikan tanpa baris baharu. Contohnya, mengeluarkan vektor baris

akan diberikan dalam bentuk:

Pengecualian ialah output vektor lajur dan matriks - di sini bentuk keluaran yang lebih visual dan lalai MATLAB akan dipelihara.

Dalam sesetengah kes, ungkapan matematik yang anda masukkan mungkin terlalu panjang sehingga satu baris tidak mencukupi untuknya. Kemudian sebahagian daripada ungkapan boleh dialihkan ke baris baharu menggunakan elipsis "..." (3 atau lebih titik), contohnya:

s = 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7 ...

1/8 + 1/9 - 1/10 + 1/11 - 1/12;

Bilangan maksimum aksara dalam satu baris mod arahan ialah 4096, dan dalam fail-m ia tidak terhad, tetapi ia menyusahkan untuk bekerja dengan baris yang begitu panjang. Dalam versi terdahulu, satu baris mempunyai maksimum 256 aksara.

Menjalankan Contoh MATLAB dari Baris Perintah

MATLAB mempunyai banyak contoh aplikasi, beberapa daripadanya boleh dijalankan terus dari baris arahan. Sebagai contoh, arahan

menjalankan bangku m-fail.m demo ujian sistem.

1. Anda boleh memulakan program menggunakan ikon pada desktop atau melalui butang Mula (di sudut kiri bawah skrin). Persekitaran kerja MatLab akan dibuka.

2. Klik dalam medan Tetingkap Perintah untuk menjadikannya aktif.

Taip 1+2 dalam baris dengan ikon " dan kursor menegak berkelip dan tekan Enter. Akibatnya, tetingkap arahan MatLab memaparkan perkara berikut:

Hasil pengiraan jumlah 1+2 ditulis kepada pembolehubah khas dan nilainya, sama dengan 3, dipaparkan dalam tetingkap arahan. Di bawah respons adalah baris arahan dengan kursor berkelip, menunjukkan bahawa MatLab bersedia untuk pengiraan selanjutnya. Anda boleh menaip ungkapan baharu pada baris arahan dan mencari maknanya.

3. Untuk terus bekerja dengan ungkapan sebelumnya, sebagai contoh, untuk mengira (1+2)/4.5, adalah dinasihatkan untuk menggunakan hasil yang sedia ada, yang disimpan dalam pembolehubah ans.

Taip ans/4.5 (titik digunakan apabila memasukkan perpuluhan) dan tekan Enter, anda mendapat:

4.Entri "ans = 0.6667" dipanggil gema.

Pelaksanaan setiap arahan dalam MatLab disertakan dengan gema yang serupa, yang sering menyukarkan untuk melihat operasi program.

Untuk melumpuhkan gema, ikut arahan dengan simbol; (titik bertitik). Sebagai contoh:

Di sini hasil darab pembolehubah ans dengan 3, yang merupakan perantaraan, tidak dicetak pada skrin. Hanya jawapan akhir ditunjukkan.

5. Simpan nilai pembolehubah. Untuk ini:

— pilih Simpan Ruang Kerja Sebagai daripada menu Fail;

— dalam kotak dialog Simpan Pembolehubah Ruang Kerja yang muncul, nyatakan direktori dan nama fail (secara lalai, adalah dicadangkan untuk menyimpan fail dalam subdirektori kerja direktori MatLab utama). Hasil kerja akan disimpan dalam fail dengan tikar sambungan.

6. Tutup MatLab.

7.Mulakan MatLab semula. Untuk memulihkan nilai pembolehubah daripada sesi kerja sebelumnya, buka fail yang disimpan menggunakan sub-item Buka menu Fail. Pembolehubah yang disimpan boleh digunakan dalam arahan yang baru dimasukkan.

8.Tulis arahan dan hasil boleh laku ke dalam fail teks, yang kemudiannya boleh dibaca atau dicetak daripada penyunting teks. Untuk ini:

— masukkan arahan diari;

— nyatakan nama fail di mana log kerja akan disimpan sebagai hujah kepada arahan diari.

Satu contoh diberikan dalam perenggan 1.3.

9. Untuk keluar dari sistem MatLab, masukkan arahan quit.

1. Kaji bahagian teori.

2. Dapatkan varian tugasan.

3. Ikuti contoh yang diberikan dalam perenggan 2.

4. Lakukan pengiraan mengikut pilihan anda.

5. Hantar laporan secara elektronik.

6. Pertahankan kerja makmal anda dengan menjawab soalan guru.

Pilihan

Artikel untuk dibaca:

Asas bekerja dengan Mathcad. Pengiraan mudah. Pelajaran 4

dengan syarat sempadan y(t 0 , t berakhir, hlm) = y, Di mana t berakhir, t 0 titik mula dan tamat selang. Parameter t(pembolehubah bebas) tidak semestinya bermakna masa, walaupun selalunya penyelesaian kepada DE dicari dalam domain masa. Sistem DE dalam bentuk Cauchy ditulis sama dengan (1.1), tetapi di bawah y dalam kes ini, vektor lajur pembolehubah bersandar adalah tersirat. vektor hlm menetapkan syarat awal.

Untuk menyelesaikan DE tertib kedua dan lebih tinggi, mereka perlu dikurangkan kepada sistem DE tertib pertama.

Terdapat kemungkinan persamaan pembezaan yang tidak dibenarkan berkenaan dengan terbitan:

F(t, y, dy/dt) = 0. (1.2)

Persamaan (1.2) biasanya tidak boleh dikurangkan secara analitik untuk membentuk (1.1). Walau bagaimanapun, penyelesaian berangka tidak menyebabkan sebarang kesulitan tertentu untuk ditentukan f(y, t) selesaikan (1.2) secara berangka berkenaan dengan terbitan bagi yang diberi y Dan t.

Penyelesai ODE

Pelbagai kaedah berangka dilaksanakan dalam MATLAB untuk menyelesaikan sistem ODE. Pelaksanaan mereka dinamakan penyelesai ODU.

Dalam bahagian ini, penyelesai nama generik bermaksud salah satu kaedah berangka yang mungkin untuk menyelesaikan ODE: ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb, bvp4c atau pdepe.

Penyelesai melaksanakan kaedah berikut untuk menyelesaikan sistem DE:

Ode45 kaedah Runge-Kutta eksplisit satu langkah bagi pesanan ke-4 dan ke-5 yang diubah suai oleh Dormand dan Prince. Ini ialah kaedah klasik yang disyorkan untuk mencuba penyelesaian pada mulanya. Dalam banyak kes ia memberikan hasil yang baik jika sistem persamaan yang diselesaikan tidak tegar.

Ode23 kaedah Runge-Kutta eksplisit satu langkah bagi pesanan ke-2 dan ke-4 seperti yang diubah suai oleh Bogacki dan Champine. Dengan ketegaran sederhana sistem ODE dan keperluan ketepatan yang rendah, kaedah ini boleh memberikan keuntungan dalam kelajuan penyelesaian.

Kaedah berbilang langkah Adams-Bashworth-Moulton Ode113 bagi kelas pembetul-peramal pesanan berubah. Ini adalah kaedah penyesuaian yang boleh memberikan penyelesaian yang sangat tepat.

Ode15s ialah kaedah tertib pembolehubah berbilang langkah (daripada 1 hingga 5, lalai 5) menggunakan formula "pembezaan ke belakang" berangka. Ini adalah kaedah penyesuaian dan harus digunakan jika penyelesai ode45 tidak menyediakan penyelesaian dan sistem kawalan jauh adalah tegar.

Ode23s ialah kaedah satu langkah menggunakan formula Rosenbrock pesanan ke-2 yang diubah suai. Boleh memberikan pengiraan kelajuan tinggi dengan ketepatan yang rendah untuk menyelesaikan sistem kawalan jauh yang tegar.

Kaedah trapezoid tersirat Ode23t dengan interpolasi. Kaedah ini memberikan hasil yang baik apabila menyelesaikan masalah yang menggambarkan sistem berayun dengan isyarat keluaran hampir harmonik. Untuk sistem sederhana tegar, DE boleh memberikan penyelesaian yang sangat tepat.

Kaedah Runge Kutta tersirat Ode23tb pada permulaan penyelesaian dan kaedah menggunakan formula pembezaan ke belakang tertib ke-2 kemudiannya. Walaupun ketepatan yang agak rendah, kaedah ini mungkin lebih berkesan daripada ode15s.

Bvp4c berfungsi untuk masalah nilai sempadan sistem kawalan jauh dalam bentuk y′ = f(t, y), F(y(a), y(b), hlm) = 0 (bentuk penuh sistem persamaan Cauchy). Masalah yang diselesaikannya dipanggil masalah nilai sempadan dua mata, kerana penyelesaian dicari dengan menentukan syarat sempadan kedua-dua pada permulaan dan pada akhir selang penyelesaian.

Semua penyelesai boleh menyelesaikan sistem persamaan eksplisit y′ = F(t, y), dan untuk menyelesaikan sistem persamaan tegar adalah disyorkan untuk menggunakan hanya penyelesai khas ode15s, ode23s, ode23t, ode23tb.

Menggunakan Penyelesai ODE

sudu kecil vektor yang menentukan selang penyepaduan [ t 0 t akhir]. Untuk mendapatkan penyelesaian pada titik masa tertentu t 0 , t 1 , …, t akhir(disusun mengikut urutan menurun atau meningkat) mesti digunakan sudu kecil = [t 0 t 1 … t akhir];

y 0 vektor keadaan awal;

Argumen pilihan yang dihasilkan oleh fungsi odeset (fungsi odeget atau bvpget lain (bvp4c sahaja) membolehkan anda mencetak pilihan yang ditetapkan secara lalai atau oleh fungsi odeset/bvpset);

hlm 1, hlm 2,... parameter sewenang-wenangnya diserahkan kepada fungsi F;

T, Y matriks keputusan Y, di mana setiap baris sepadan dengan masa yang dikembalikan dalam vektor lajur T.

Mari kita beralih kepada penerangan tentang sintaks fungsi untuk menyelesaikan sistem kawalan jauh (nama penyelesai bermaksud mana-mana fungsi yang dibentangkan di atas).

[T,Y]=pemecah(@ F,sudu kecil,y 0) menyepadukan sistem kawalan jauh borang y′ = F(t, y) pada selang waktu sudu kecil dengan syarat awal y 0 . @F deskriptor fungsi ODE (anda juga boleh menentukan fungsi dalam bentuk " F"). Setiap baris dalam tatasusunan penyelesaian Y sepadan dengan nilai masa yang dikembalikan dalam vektor lajur T.

[T,Y]=pemecah(@ F,sudu kecil,y 0 ,options) memberikan penyelesaian yang serupa dengan yang diterangkan di atas, tetapi dengan pilihan yang ditentukan oleh nilai argumen pilihan yang dicipta oleh fungsi odeset. Parameter yang biasa digunakan termasuk toleransi ralat relatif RelTol (lalai 1e3) dan vektor toleransi ralat mutlak AbsTol (semua komponen lalai 1e6).

[T,Y]=pemecah(@ F,sudu kecil,y 0, pilihan hlm 1 ,hlm 2...) memberikan penyelesaian yang serupa dengan yang diterangkan di atas, melepasi parameter tambahan hlm 1 , hlm 2 , ... dalam m-fail F bila-bila masa ia dipanggil. Gunakan pilihan= jika tiada pilihan dinyatakan.

Penyelesaian ODE pesanan pertama

PROSEDUR PELAKSANAAN KERJA

· tajuk muka surat;

· data awal pilihan;

· penyelesaian masalah;

· hasil penyelesaian masalah.

Contoh

Cari penyelesaian kepada persamaan pembezaan pada segmen yang di(1,7) = 5,3.

Buat fungsi pengguna dalam Tetingkap Perintah

g=@(x,y);

Dalam sintaks fungsi @(x,y) x pembolehubah bebas y pembolehubah bersandar x-cos( y/pi) sebelah kanan alat kawalan jauh.

Proses penyelesaian dijalankan dengan mengakses penyelesai (solver) dalam Tetingkap Perintah menggunakan operator berikut:

Ode23(g,,);

Pembinaan graf dengan grid dijalankan oleh operator berikut:

Hasilnya ditunjukkan dalam Rajah. 1.1

nasi. 1.2.1. Visualisasi penyelesaian berangka

SENAMAN

1. Cari penyelesaian kepada persamaan pembezaan tertib pertama , memenuhi syarat awal y(x 0 ) = y 0 pada selang [ a,b].

2. Bina graf bagi fungsi.

Pilihan tugas.

Pilihan No. y(x 0 )=y 0 [a,b]
y 0 (1,8)=2,6
y 0 (0,6)=0,8
y 0 (2,1)=2,5
y 0 (0,5)=0,6
y 0 (1,4)=2,2
y 0 (1,7)=5,3
y 0 (1,4)=2,5
y 0 (1,6)=4,6
y 0 (1,8)=2,6
y 0 (1,7)=5,3
y 0 (0,4)=0,8
y 0 (1,2)=1,4

Kerja makmal No. 2

Menyelesaikan sistem ODE

MATLAMAT KERJA

Untuk membentuk idea pelajar tentang penggunaan sistem kawalan jauh dalam pelbagai bidang; tanamkan keupayaan untuk menyelesaikan masalah Cauchy untuk sistem kawalan jauh.

PROSEDUR PELAKSANAAN KERJA

1. Kaji bahagian teori. Selesaikan tugasan yang sepadan dengan bilangan pilihan anda dan tunjukkan kepada guru.

2. Lengkapkan laporan makmal, yang sepatutnya mengandungi:

· tajuk muka surat;

· data awal pilihan;

· penyelesaian masalah;

· hasil penyelesaian masalah.

Contoh

Selesaikan sistem

menggunakan penyelesai ode23().

Penyelesaian:

1. Buat fail-m bagi fungsi untuk mengira sisi kanan alat kawalan jauh dalam editor.

Biarkan nama dalam editor fail menjadi sisdu.m, maka fungsinya boleh kelihatan seperti ini:

fungsi z=sisdu(t,y)

z1=-3*y(2)+cos(t)-exp(t);

z2=4*y(2)-cos(t)+2*exp(t);

>> t0=0;tf=5;y0=[-3/17,4/17];

>> =ode23("sisdu",,y0);

>>plot(t,y)

nasi. 1.3.1. Visualisasi penyelesaian berangka yang diperoleh menggunakan fungsi ode23.

1. Apakah yang dimaksudkan untuk menyelesaikan masalah Cauchy untuk sistem kawalan jauh?

2. Apakah kaedah yang wujud untuk menyelesaikan sistem kawalan jauh?

SENAMAN

1. Cari penyelesaian kepada sistem kawalan jauh

memenuhi syarat awal pada selang waktu ;

2. Bina graf fungsi.

Sebagai contoh, fungsi penyelesaian untuk pilihan ke-8 diberikan:

fungsi z=ssisdu(t,y)

% pilihan 8

z1=-a*y(1)+a*y(2);

z2=a*y(1)-(a-m)*y(2)+2*m*y(3);

z3=a*y(2)-(a-m)*y(3)+3*m*y(4);

z4=a*y(3)-3*m*y(4);

>> =ode23("ssisdu",,);

>> plot(t,100*y)

nasi. 1.3.2. Visualisasi penyelesaian berangka yang diperoleh menggunakan fungsi ode23.

Pilihan tugas.

Pilihan No. Tugasan
a m
0,1 1,2
0,2 1,5
0,3 1,7
0,4 1,9
0,5
0,6 1,9
0,7 2,3
0,8 2,7
0,9
0,1 1,5
0,2 1,1
0,3

Kerja makmal No. 3

1.4 Penyelesaian ODE n-perintah ke-

MATLAMAT KERJA

Untuk membentuk idea pelajar tentang aplikasi kawalan jauh peringkat tinggi dalam pelbagai bidang; tanamkan keupayaan untuk menyelesaikan masalah Cauchy untuk persamaan pembezaan peringkat tinggi menggunakan program aplikasi; mengembangkan kemahiran dalam menyemak keputusan yang diperolehi.

PROSEDUR PELAKSANAAN KERJA

1. Kaji bahagian teori. Selesaikan tugasan yang sepadan dengan bilangan pilihan anda dan tunjukkan kepada guru.

2. Lengkapkan laporan makmal, yang sepatutnya mengandungi:

· tajuk muka surat;

· data awal pilihan;

· penyelesaian masalah;

· hasil penyelesaian masalah.

Contoh 1.

Selesaikan persamaan pembezaan tertib kedua diberi syarat awal .

Penyelesaian:

Mula-mula kami membawa alat kawalan jauh ke sistem:

1. Buat fail-m bagi fungsi untuk mengira bahagian kanan alat kawalan jauh.

Biarkan nama fail menjadi sisdu_3.m, maka fungsinya boleh kelihatan seperti ini:

fungsi z=sisdu_3(x,y)

z2=6*x*exp(x)+2*y(2)+y(1);

2. Lakukan langkah berikut:

>> x0=0;xf=10;y0=;

>> =ode23("sisdu_3",,y0);

>> plot(x,y(:,1))

nasi. 1.4.1. Visualisasi penyelesaian berangka yang diperoleh menggunakan fungsi ode23.

CONTOH SOALAN UNTUK PERTAHANAN KERJA

1. Apakah yang dimaksudkan untuk menyelesaikan masalah Cauchy untuk persamaan pembezaan peringkat tinggi?

2. Bagaimana untuk membawa alat kawalan jauh m-perintah ke sistem kawalan jauh?

SENAMAN

1. Cari penyelesaian kepada persamaan pembezaan yang memenuhi syarat awal pada selang.

2. Bina graf fungsi.

Pilihan tugas.

Pilihan No. Tugasan
Persamaan Keadaan awal







Kerja makmal No. 4 – 5

Sistem dinamik (DS)

MATLAMAT KERJA

Memperkenalkan pelajar kepada konsep asas DS, klasifikasi mereka, ruang fasa DS, tafsiran kinematik sistem DS, evolusi DS. Persamaan gerakan bandul. Dinamik pengayun Van der Pol.

2. Sistem dinamik (DS) objek matematik yang sepadan dengan sistem sebenar (fizikal, kimia, biologi, dll.), yang evolusinya ditentukan secara unik oleh keadaan awal. DS ditentukan oleh sistem persamaan (pembezaan, perbezaan, kamiran, dll.) yang membenarkan kewujudan penyelesaian unik untuk setiap keadaan awal dalam selang masa yang tidak terhingga.

Keadaan DS diterangkan oleh satu set pembolehubah yang dipilih atas sebab keaslian tafsirannya, kesederhanaan perihalan, simetri, dsb. Set keadaan DS membentuk ruang fasa, setiap keadaan sepadan dengan titik di dalamnya, dan evolusi digambarkan oleh trajektori (fasa). Untuk menentukan kedekatan keadaan, konsep jarak diperkenalkan dalam ruang fasa DS. Satu set keadaan pada momen tetap dalam masa dicirikan oleh isipadu fasa.

Penerangan DS dalam erti kata menyatakan undang-undang evolusi juga membolehkan variasi yang besar: ia dijalankan menggunakan persamaan pembezaan, pemetaan diskret, menggunakan teori graf, teori rantai Markov, dll. Pilihan salah satu kaedah penerangan menentukan jenis model matematik khusus bagi DS yang sepadan.

Model matematik DS dianggap diberikan jika pembolehubah dinamik (koordinat) sistem diperkenalkan yang secara unik menentukan keadaannya, dan undang-undang evolusi keadaan dari semasa ke semasa ditunjukkan.

Bergantung pada tahap penghampiran, model matematik yang berbeza boleh diberikan kepada sistem yang sama. Kajian sistem sebenar mengikuti laluan mengkaji model matematik yang sepadan, penambahbaikan dan pembangunannya ditentukan oleh analisis keputusan eksperimen dan teori serta perbandingannya. Dalam hal ini, dengan sistem dinamik kita akan memahami dengan tepat model matematiknya. Dengan mengkaji sistem dinamik yang sama (contohnya, pergerakan bandul), bergantung pada tahap di mana pelbagai faktor diambil kira, kita akan memperoleh model matematik yang berbeza.