Senin, 13 Mei 2013

Tutorial Matlab Sederhana


1 Pendahuluan
MATLAB, yang merupakan singkatan dari Matrix Laboratory, merupakan program yang sangat kuat untuk melakukan perhitungan numerik dan simbolik, dan secara luas digunakan dalam sains dan teknik, serta dalam matematika. Tutorial ini dirancang untuk memberikan pembaca dengan pemahaman dasar tentang bagaimana MATLAB bekerja, dan bagaimana menggunakannya untuk memecahkan masalah dalam aljabar linear dan kalkulus multivariabel.
Hal ini dimaksudkan untuk melengkapi bahan-bahan kursus reguler. Jadi, meskipun kita sering mengingat banyak definisi dasar dan hasil, kita asumsikan pembaca sudah memiliki beberapa keakraban dengan mereka. Semua perintah dalam dokumen ini dieksekusi menggunakan versi 5.3, dan juga harus bekerja dalam versi 6.
2 Memulai
Ketika MATLAB dimulai (baik dengan mengetik Matlab pada command prompt pada mesin Unix, atau menjalankan dieksekusi pada PC atau Mac) prompt MATLAB
>>

muncul. Semua perintah MATLAB dijalankan dari prompt ini.
>> 2,3 4,2

ans =

    6,5000

Secara default MATLAB mengembalikan ekspresi numerik desimal dengan 5 angka. Fungsi format digunakan untuk mengubah format output. Jenis tikus Format untuk memiliki MATLAB kembali ekspresi rasional.
>> Tikus Format
>> 5,1-3,3

ans =

     9/5
 

Untuk menghilangkan jarak ekstra jenis format kompak.
>> Format kompak
>> 5 * 7
ans =
     35

Empat operasi dasar penambahan, pengurangan, perkalian dan pembagian dilakukan dengan menggunakan simbol +, -, * dan /, masing-masing. Eksponen dilakukan dengan cara ^ simbol.
>> 2 ^ 7
ans =
   128

MATLAB memiliki fungsi matematika paling standar built-in. Fungsi sqrt menghitung akar kuadrat.
Format >> panjang
>> Sqrt (2)
ans =
   1,41421356237310

Fungsi trigonometri dasar (cos, sin, tan, sec, csc, cot), invers mereka (acos, asin, atan, ASEC, ACSC, acot), fungsi exp eksponensial, dan log logaritma natural juga built-in.  / 6) dihitung sebagai berikut.pMisalnya, ln (4) + cos (
>> Log (4) + cos (pi / 6)
ans =
   2,25231976490433

Untuk informasi tentang fungsi MATLAB, ketik bantuan diikuti dengan nama fungsi.
>> Bantuan abs

 ABS nilai mutlak.
    ABS (X) adalah nilai absolut dari elemen X. Ketika
    X adalah kompleks, ABS (X) adalah modulus kompleks (magnitude) dari
    unsur X.
 
    Lihat juga DAFTAR, SUDUT, bukalah.

 Metode kelebihan beban
    membantu sym / abs.m

Untuk menghindari mengetik ulang ekspresi lama menggunakan tombol panah ¬ untuk menggulir melalui jalur sebelumnya diketik. Mengetik satu atau lebih karakter dan kemudian tombol panah atas menampilkan garis sebelumnya yang dimulai dengan karakter. Jenis untuk keluar MATLAB berhenti.
3 Variabel
Untuk memberikan nilai pada variabel dalam MATLAB cukup ketik nama variabel, diikuti oleh operator penugasan, =, diikuti oleh nilai.
>> X = 7
x =
     7

Perhatikan bahwa nama variabel dalam MATLAB bersifat case sensitive, sehingga X dan x tidak sama. Kita dapat melakukan semua operasi biasa dengan x.
>> X ^ 2-3 * x +2
ans =
    30
>> Log (x)
ans =
   1,94591014905531
>> Sin (x)
ans =
   ,65698659871879

Variabel baru dapat didefinisikan dengan menggunakan variabel yang ada.
>> Y = 8 x *
y =
    56

Ini, bagaimanapun, tidak berarti hubungan permanen antara x dan y. Jika kita mengubah x, nilai y tidak berubah.
>> X = x +5
x =
    12
>> Y
y =
    56

Perintah yang mengembalikan daftar semua variabel dalam ruang kerja saat ini, sementara whos mengembalikan daftar yang sama dengan informasi yang lebih rinci tentang masing-masing variabel.
>> Yang

Variabel Anda adalah:

ans x y

>> Whos
  Bytes Ukuran Nama Kelas

  ans 1x1 8 array yang ganda
  x 1x1 8 array yang ganda
  y 1x1 8 array yang ganda

Grand total adalah 3 elemen menggunakan 24 byte

Perhatikan bahwa ukuran masing-masing variabel adalah 1 × 1. Semua variabel dalam MATLAB adalah matriks. Skalar seperti x dan y hanya 1 × 1 matriks. Kami akan menjelaskan cara memasukkan matriks pada bagian berikutnya. Untuk menghapus satu atau lebih variabel dari ruang kerja, ketik jelas diikuti dengan nama variabel. Mengetik hanya jelas membersihkan semua variabel.
>> Jelas
>> Yang
>> X
??? Undefined fungsi atau variabel 'x'.

4 Matriks dan Vektor
Untuk memasukkan matriks dalam MATLAB, gunakan tanda kurung siku dan entri terpisah dalam baris dengan spasi dan baris terpisah menggunakan titik koma.
>> A = [2 1 -1 8; 1 0 8 -3, 7 1 2 4]
A =
     2 1 -1 8
     1 0 8 -3
     7 1 2 4

Seringkali kita tidak ingin MATLAB untuk menampilkan respon, terutama ketika berhadapan dengan matriks yang sangat besar. Untuk menekan output, menempatkan titik koma di akhir baris. Ketikan
>> B = [2 0 -3; -1 1 3];

masih akan mendefinisikan variabel B berisi 2 × 3 matriks, tapi MATLAB tidak akan bergema apapun.
>> Whos
  Bytes Ukuran Nama Kelas

  Sebuah 3x4 96 Array ganda
  B 2x3 48 array yang ganda
  v 3x1 24 array yang ganda

Grand total adalah 21 elemen menggunakan 168 byte

Untuk melihat isi dari variabel B, ketikkan namanya.
B >>
B =
     2 0 -3
    -1 1 3

Vektor (vektor kolom) hanya matriks dengan satu kolom.
>> V = [2, 3, -4]
v =
     2
     3
    -4

Sebuah vektor baris adalah matriks dengan satu baris.
>> W = [3 -2 5 11]
w =
     3 -2 5 11

Hal ini sering diperlukan untuk menentukan vektor dengan entri merata spasi. Dalam MATLAB, usus besar (:) memberikan singkatan untuk menciptakan vektor tersebut.
02:05 >>
ans =
     2 3 4 5

Mengetik j: i: k mendefinisikan vektor baris dengan selisih i mulai j dan berakhir di k.
>> 03:02:09
ans =
     3 5 7 9

Ingat bahwa transpos dari matriks A adalah matriks AT yang dalam baris i kolom j adalah sama seperti dalam baris j kolom i A. Dalam MATLAB, A 'merupakan transpos dari matriks A.
>> A = [5 -2 9; 11 7 8]
A =
     5 -2 9
    11 7 8
>> A '
ans =
     5 11
    -2 7
     9 8

Untuk menentukan vektor kolom jarak teratur, kita dapat mengambil transpos dari vektor baris jarak teratur.
>> [01:03:10] '
ans =
     1
     4
     7
    10

Entri dalam baris i, kolom j dari matriks A adalah A (i, j).
>> A = [3 -2 7 8; 4 3 2 1; 10 15 -2 9]
A =
     3 -2 7 8
     4 3 2 1
    10 15 9 -2

>> A (3,2)
ans =
    15

Hal ini juga memungkinkan untuk melihat beberapa entri dalam setiap baris atau kolom. Misalnya, entri kedua dan keempat di baris ketiga diakses sebagai berikut.
>> A (3, [2 4])
ans =
    15 9

Baris i dari A adalah A (i, :) dan kolom j dari A adalah A (:, j).
>> A (3, :)
ans =
    10 15 9 -2
>> A (:, 3)
ans =
     7
     2
    -2

Selanjutnya kita menampilkan pertama, kedua dan keempat kolom.
>> A (:, [1 2 4])
ans =
     3 -2 8
     4 3 1
    10 15 9

Entri dari vektor (baris atau kolom) dapat diakses menggunakan indeks tunggal.
>> W = [7; 13; 11]
w =
     7
    13
    11
>> W (2)
ans =
    13

Matriks dengan jumlah baris yang sama dapat digabungkan secara horizontal, dan matriks dengan jumlah kolom yang sama dapat digabungkan secara vertikal.
>> A = [1 2 3; 4 5 6]
A =
     1 2 3
     4 5 6
>> B = [7 8; 9 10]
B =
     7 8
     9 10
>> [A B]
ans =
     1 2 3 7 8
     4 5 6 9 10
>> C = [7 8 9]
C =
     7 8 9
>> [A; C]
ans =
     1 2 3
     4 5 6
     7 8 9

Untuk menghapus baris atau kolom dari matriks, hanya mendefinisikan mereka untuk menjadi matriks kosong.
>> A = [4 7 2 1 3; 8 7 12 -2 5; 11 1 14 -2 0]
A =
     4 7 2 1 3
     8 7 12 -2 5
    11 1 14 -2 0
>> A (2, :) = []
A =
     4 7 2 1 3
    11 1 14 -2 0
>> A (:, [1 3]) = []
A =
     7 1 3
     1 -2 0

5 Dot Produk dan Palang Produk
Fungsi dot menghitung perkalian titik dari dua vektor di Rn.
>> V = [7, 23, 15, 2], w = [5, -2, 1, -8]
v =
     7
    23
    15
     2
w =
     5
    -2
     1
    -8
>> Dot (v, w)
ans =
   -12

Perhatikan bahwa produk titik simetris.
>> Dot (w, v)
ans =
   -12

 {v • v}.Ö v = | | | |Ingat bahwa panjang vektor v adalah 
>> Vlength = sqrt (dot (v, v))
vlength =
   28,4077

Panjang vektor juga dapat ditemukan secara langsung menggunakan fungsi norma.
>> Norma (v)
ans =
   28,4077

.q cos | | w | | | | v | | adalah sudut antara dua vektor v dan w maka v • w = qJuga ingat bahwa jika   w).| | | | | | v | | = arccos ((v • w) / qPemecahan untuk sudut kami memiliki 
>> Theta = acos (dot (v, w) / (norma (v) * norma (w)))
theta =
    1.6144
>> Theta * 180/pi
ans =
   92,4971

.°Jadi sudut antara v dan w adalah sekitar 92,5 
Fungsi silang menghitung perkalian silang dari dua vektor dalam R3.
>> V = [3, 2, 1], w = [4, 15; 1]
v =
     3
     2
     1
w =
     4
    15
     1
>> X = salib (v, w)
x =
   -13
     1
    37

Palang produk anti-simetris.  v × w.-Artinya, w × v = 
>> Silang (w, v)
ans =
    13
    -1
   -37

Hasil kali silang v × w adalah ortogonal terhadap v dan w. Kita dapat memverifikasi ini dengan mengambil produk dot dengan baik v dan w. Ingat bahwa dua vektor ortogonal jika dan hanya jika produk titiknya sama dengan nol.
>> Titik (x, y)
ans =
     0
>> Dot (x, w)
ans =
     0

6 Operasi Matrix Dasar
Penambahan (dan pengurangan) dari matriks dimensi yang sama dilakukan componentwise.
>> A = [5 -1 2, 3 4 7]
A =
     5 -1 2
     3 4 7
>> B = [2 2 1, 5 0 3]
B =
     2 2 1
     5 0 3
>> A + B
ans =
     7 1 3
     8 4 10

Perhatikan bahwa hanya matriks dengan dimensi yang sama dapat disimpulkan.
>> C = [3 1; 6 4]
C =
     3 1
     6 4
>> A + C
??? Kesalahan menggunakan ==> +
Dimensi matriks harus setuju.

Perkalian skalar (dan pembagian dengan skalar bukan nol) juga dilakukan componentwise.
>> 2 * A
ans =
    10 -2 4
     6 8 14

The * dalam perkalian skalar tidak opsional.
2A >>
??? 2
    |
Operator Hilang, koma, atau semi-colon.

Penjumlahan vektor dan perkalian skalar dilakukan dengan cara yang sama.
>> V = [3; 5], w = [-2; 7]
v =
     3
     5
w =
    -2
     7
>> 10 * v-5 * w
ans =
    40
    15

Produk Matriks A * B didefinisikan jika A adalah m × n dan B adalah n × k. Artinya, jumlah kolom A harus sama dengan jumlah baris A. Dalam hal ini produk A * B adalah matriks m × k.
>> A = [3 1 7 2, 6 -3 4 2, 9 4 -1 -2]
A =
     3 1 7 2
     6 -3 4 2
     9 4 -1 -2
>> B = [1 2, 3 4, 5 6, 7 8]

B =
     1 2
     3 4
     5 6
     7 8
>> A * B
ans =
    55 68
    31 40
     2 12

Entri dalam baris i, kolom j A * B adalah produk titik baris i dari A dengan kolom j B.
>> Dot (A (2, :), B (:, 1))
ans =
    31

MATLAB menghasilkan pesan kesalahan jika dimensi matriks batin tidak setuju.
>> B * A
??? Kesalahan menggunakan ==> *
Dimensi matriks batin harus setuju.

Pengecualian untuk aturan ini adalah ketika salah satu dari matriks adalah 1 × 1 matriks, yaitu skalar. Dalam hal ini produk ditafsirkan sebagai perkalian skalar.
>> C = [2]
C =
     2
>> A * C
ans =
     6 2 14 4
    12 -6 8 4
    18 8 -2 -4

Produk Matrix-vektor adalah kasus khusus dari produk matriks.
>> A = [13 -11 21; 16 9 10], v = [19; -7; 15]
A =
    13 -11 21
    16 9 10
v =
    19
    -7
    15
>> A * v
ans =
    639
    391

Seperti di atas, entri dari A * v adalah produk dot dari baris A dengan v
>> [Dot (A (1, :), v), titik (A (2, :), v)]
ans =
    639
    391

Selain itu, produk A * v sama dengan kombinasi linear dari kolom-kolom A yang koefisien adalah komponen v
>> V (1) * A (:, 1) + v (2) * A (:, 2) + v (3) * A (:, 3)
ans =
    639
    391

Sebuah matriks bujursangkar dapat dikalikan dengan sendirinya, dan dalam hal ini masuk akal untuk mengambil kekuasaan dari matriks. Misalnya, A ^ 6 sama dengan A * A * A * A * A * A.
>> A = [0 1; 1 1]
A =
     0 1
     1 1
>> A * A
ans =
     1 1
     1 2
>> A ^ 6
ans =
     5 8
     8 13

7 Reduced Row Formulir Eselon
Perintah rref digunakan untuk menghitung bentuk eselon baris tereduksi dari matriks.
>> A = [1 2 3 4 5 6; 1 2 4 8 16 32, 2 4 2 4 2 4; 1 2 1 2 1 2]
A =
     1 2 3 4 5 6
     1 2 4 8 16 32
     2 4 2 4 2 4
     1 2 1 2 1 2
>> Rref (A)
ans =
     1 2 0 0 -4 -8
     0 0 1 0 -1 -6
     0 0 0 1 3 8
     0 0 0 0 0 0

Setiap masalah yang dapat diutarakan dalam hal sistem persamaan linear demikian dapat diselesaikan dengan menggunakan rref. Sebagai contoh, mempertimbangkan set berikut vektor.
>> V1 = [1, 1, 1], v2 = [1; -2, 1], v3 = [1, 2, 3]; v4 = [2, 3, 4]; v5 = [1; -1 ; -3];

Misalkan kita ingin menulis v5 sebagai kombinasi linear dari vektor lainnya. Pertama kita mendefinisikan matriks yang diperbesar untuk sistem yang dihasilkan dari persamaan x1v1 + x2v2 + + x3v3 x4v4 = v5.
>> A = [v1 v2 v3 v4 v5]
A =
     1 1 1 2 1
     1 -2 2 3 -1
     1 1 3 4 -3

The bentuk eselon baris tereduksi kemudian menghasilkan solusi (s).
>> Rref (A)
ans =
     1 0 0 1 3
     0 1 0 0 0
     0 0 1 1 -2

Variabel x4 adalah variabel bebas, jadi mari kita memilih x4 = 0. .- 2, dan karena itu v5 = 3V1 2V3 -Kemudian x1 = 3, x2 = 0 dan x3 =  Mari kita periksa.
3 * v1-2 * v3
ans =
     1
    -1
    -3

Pilihan lain dari x4 akan menghasilkan cara yang berbeda dalam menulis v5 sebagai kombinasi linear dari vektor lainnya. Sekarang anggaplah kita ingin menulis v2 sebagai kombinasi linear dari v1, v3, v4 dan v5.
>> A = [v1 v3 v4 v5 v2]
A =
     1 1 2 1 1
     1 2 3 -1 -2
     1 3 4 -3 1
>> Rref (A)
ans =
     1 0 1 0 3
     0 1 1 0 -2
     0 0 0 0 1

Kali ini persamaan ketiga tereduksi menjadi 0 = 1, sehingga tidak ada solusi, dan karena itu v2 bukan merupakan kombinasi linear dari vektor lainnya.
Cara lain untuk menggunakan rref adalah dalam bentuk [R, p] = rref (A), yang mendefinisikan R menjadi bentuk eselon baris tereduksi dari A dan p menjadi vektor daftar kolom R yang mengandung pivot.
>> A = [1 2 1 5; 1 2 2 6; 1 2 3 7; 1 2 4 8]
A =
     1 2 1 5
     1 2 2 6
     1 2 3 7
     1 2 4 8
>> [R, p] = rref (A)
R =
     1 2 0 4
     0 0 1 1
     0 0 0 0
     0 0 0 0
p =
     1 3

Ekstrak kolom pivot A memberikan basis untuk ruang kolom dari A.
>> A (:, p)
ans =
     1 1
     1 2
     1 3
     1 4

Dengan bentuk eselon baris tereduksi dari A tangan kita bisa dengan mudah menemukan basis untuk ruang nol A. Perintah nol melakukan hal ini untuk kita.
>> Nol (A, 'r')
ans =
    -2 -4
     1 0
     0 -1
     0 1

The 'r' rasional dan berdiri untuk memberitahu MATLAB untuk menemukan ruang nol dari bentuk eselon baris tereduksi dari A. Tanpa 'r', MATLAB menemukan sebuah basis ortonormal untuk ruang nol - yaitu, dasar yang terdiri dari saling orthogonal Unit vektor.
>> N = null (A)
N =
   -0,9608 0
    0,1601 -0,8165
   -0,1601 -0,4082
    0,1601 0,4082

Untuk memverifikasi bahwa ini adalah basis ortonormal kita membentuk produk N '* N. Karena baris N 'adalah kolom N, dalam baris i, kolom j N' * N adalah produk titik kolom i dan kolom j N.
>> N 'N *
ans =
    1.0000 0
         0 1.0000

Yang pada diagonal menunjukkan bahwa kolom N adalah vektor satuan, dan nol menunjukkan bahwa mereka ortogonal satu sama lain.
Kita juga bisa menggunakan rref mencari invers dari matriks yang dapat dibalik. Ingat bahwa matriks A dapat dibalik jika dan hanya jika rref (A) = In, n × n -matriks identitas, dan bahwa dalam kasus ini rref [A | Dalam] = [In | A  1]. Sebagai contoh, perhatikan matriks berikut.
>> A = [1 1 1; 1 2 3; 1 3 6]
A =
     1 1 1
     1 2 3
     1 3 6

Dalam MATLAB, n × n matriks identitas In diberikan oleh mata (n). Mari kita menambah A dengan mata (3) dan menghitung bentuk eselon baris tereduksi.
>> B = [Sebuah mata (3)]
B =
     1 1 1 1 0 0
     1 2 3 0 1 0
     1 3 6 0 0 1
>> Rref (B)
ans =
     1 0 0 3 -3 1
     0 1 0 -3 5 -2
     0 0 1 1 -2 1

Jadi
>> Ainv = [3 -3 1; -3 5 -2, 1 -2 1]
Ainv =
     3 -3 1
    -3 5 -2
     1 -2 1

 1 = Di.- 1A = AA -adalah kebalikan dari A. Untuk memverifikasi ini, mengingat bahwa A 
>> Ainv * A
ans =
     1 0 0
     0 1 0
     0 0 1
>> A * Ainv
ans =
     1 0 0
     0 1 0
     0 0 1

8 Peringkat
Untuk menghitung pangkat matriks kita menggunakan perintah rank. Kami sebentar mengingat beberapa fakta penting tentang pangkat matriks.
• Rank dari matriks sama dengan dimensi ruang kolomnya.
• Kolom dari matriks bebas linear jika dan hanya jika peringkatnya sama dengan jumlah kolom.
• Sebuah n × n matriks persegi dibalik jika dan hanya jika peringkatnya sama dengan n.
Sebagai contoh,
>> A = [1 2 1 4, 2 3 1 3, 3 2 1 2, 4 3 1 1]
A =
     1 2 1 4
     2 3 1 3
     3 2 1 2
     4 3 1 1
>> Rank (A)
ans =
     3

Dengan demikian ruang kolom dari A berdimensi 3 dan kolom-kolom A di atas adalah linear. Menggunakan peringkat kita dapat menentukan kolom-kolom A membentuk basis untuk ruang kolomnya.
>> Rank (A (:, [1 2 3]))
ans =
     3
>> Rank (A (:, [1 2 4]))
ans =
     3
>> Rank (A (:, [1 3 4]))
ans =
     2
>> Rank (A (:, [2 3 4]))
ans =
     3

Jadi apapun pilihan tiga kolom membentuk basis untuk ruang kolom dari A kecuali kolom satu, tiga dan empat. Selanjutnya kita menggunakan peringkat sebagai ujian bagi keterbalikan.
>> A = [11 -21 3, 8 2 1, 16 -12 5]
A =
    11 -21 3
     8 2 1
    16 -12 5
>> Rank (A)
ans =
     3
>> B = [3 4 5, 6 7 8; 9 10 11]
B =
     3 4 5
     6 7 8
     9 10 11
>> Rank (B)
ans =
     2

Matriks A dapat dibalik, tapi B tidak.
Menggunakan rank adalah mungkin untuk menentukan apakah atau tidak sebuah vektor yang diberikan dalam ruang kolom dari matriks.
>> A = [5 8 -4, 3 19 11, -6 6 0; 12 4 1]
A =
     5 8 -4
     3 19 11
    -6 6 0
    12 4 1
>> V1 = [21, 16, -7, 33], v2 = [30; 7; 30; -16]
v1 =
    21
    16
    -7
    33
v2 =
    30
     7
    30
   -16
>> Rank (A)
ans =
     3

Jadi ruang kolom dari A adalah tiga dimensi. Sekarang perhatikan matriks yang diperbesar [A v]. Jika v adalah ruang kolom dari A, maka [A v] memiliki peringkat 3. Jika [A v] memiliki peringkat 4.
>> Rank ([A v1])
ans =
     4
>> Rank ([A v2])
ans =
     3

Jadi v2 adalah ruang kolom dari A, tapi v1 tidak.
9 Invers
Kebalikan dari matriks yang dapat dibalik A dapat ditemukan dengan menggunakan salah A ^ (-1) atau inv (A).
>> A = [2 1 1; 1 2 2, 2 1 2]
A =
      2 1 1
      1 2 2
      2 1 2
>> Ainv = inv (A)
Ainv =
     2/3 -1 / 3 0
     2/3 2/3 -1
     -1 0 1

Mari kita memverifikasi hasilnya.
>> A * Ainv
ans =
      1 0 0
      0 1 0
      0 0 1
>> Ainv * A
ans =
      1 0 0
      0 1 0
      0 0 1

MATLAB memberikan pesan peringatan jika matriks singular (tidak dapat dibalik).
>> B = [1 2 3; 4 5 6; 7 8 9]
B =
     1 2 3
     4 5 6
     7 8 9
>> Inv (B)

Peringatan: Matrix adalah dekat dengan tunggal atau buruk ditingkatkan.
         Hasil mungkin tidak akurat. RCOND = 2.055969e-018.
ans =
  1.0e 016 *
   -0,4504 0,9007 -0,4504
    0,9007 -1,8014 0,9007
   -0,4504 0,9007 -0,4504

Berikut MATLAB sebenarnya mengembalikan terbalik. Untuk melihat bahwa B benar-benar tunggal, menghitung peringkatnya.
>> Rank (B)
ans =
     2

Sejak pangkat B kurang dari 3, B adalah tunggal. Juga ingat bahwa matriks dibalik jika dan hanya jika determinannya adalah nol.
>> Det (B)
ans =
     0

Sayangnya, ada matriks yang dibalik MATLAB menganggap sebagai tunggal.
Format >> panjang
>> C = [1,00000000000001 1; 1 ,99999999999999]
C =
   1,00000000000001 1,00000000000000
   1,00000000000000 0,99999999999999
>> Inv (C)
Peringatan: Matrix adalah tunggal untuk presisi bekerja.
ans =
   Inf Inf
   Inf Inf
>> Rank (C)
ans =
     1
>> Det (C)
ans =
     0
>> Rref (C)
ans =
   1,00000000000000 0,99999999999999
                  0 0

Menurut MATLAB, C matriks memiliki peringkat 1 dan determinan nol, dan karena itu tunggal.  0, sehingga C dapat dibalik.¹ 2 e - 1 = -) e -) (1 e = 0,00000000000001, maka det (C) = (1 + eNamun, jika kita membiarkan  Masalahnya adalah bahwa dalam format panjang MATLAB akurat untuk 15 tempat dan  sebagai berbeda dari 1, tetapie - dan 1 ekarena itu mengakui 1 +  mengakui

 2 = ,9999999999999999999999999999e -) = 1 e -) (1 e(1 + 

sebagai 1. Contoh ini harus menjadi peringatan untuk tidak menerima begitu saja segala sesuatu yang MATLAB memberitahu kita.
Untuk memecahkan persamaan Ax = b bentuk di mana A dapat dibalik, kita hanya  1b.-kalikan dengan kebalikan dari A untuk mendapatkan x = A 
>> A = [11 -6 7 8; 3 -1 12 15, 1 1 1 7; -4 6 1 8]
A =
    11 7 -6 8
     3 -1 12 15
     1 1 1 7
    -4 6 1 8
>> B = [10; -23, -13, 4]
b =
    10
   -23
   -13
     4
>> Tikus Format
>> X = inv (A) * b
x =
      1
      5
      2
     -3

Mari kita memverifikasi hasil ini.
>> A * x
ans =
     10
    -23
    -13
      4

10 eigen dan Nilai Eigen
Perintah EIG digunakan untuk mencari nilai eigen dari matriks persegi.
>> A = [3 1 1; 1 3 1; 1 1 3]
A =
     3 1 1
     1 3 1
     1 1 3
>> Eig (A)
ans =
    2.0000
    2.0000
    5,0000
Jika A dapat didiagonalisasi, perintah eig juga dapat digunakan untuk menemukan eigenbasis, bersama dengan matriks diagonal yang sama.
>> [Q, D] = eig (A)
Q =
   -0,8164 -0,0137 0,5774
    0,3963 0,7139 0,5774
    0,4201 -0,7001 0,5774
D =
    2.0000 0 0
         0 2.0000 0
         0 0 5.0000
Di sini, kolom dari matriks Q membentuk eigenbasis A, dan Q-1AQ = D. Mari kita periksa.
>> Inv (Q) * A * Q
ans =
    2.0000 0 0.0000
    0.0000 2.0000 0.0000
   -0,0000 0,0000 5,0000
Matriks Q sebenarnya mengandung basis ortonormal dari vektor eigen.
>> Q 'Q *
ans =
    1.0000 0.0000 -0,0000
    0.0000 1.0000 -0,0000
   -0,0000 -0,0000 1,0000
Jika kita hanya ingin menemukan vektor eigen dalam'' biasa'' cara, kita akan menggunakan perintah null.
>> C1 = null (A-2 * eye (3), 'r')
C1 =
    -1 -1
     1 0
     0 1
>> C2 = null (A-5 * eye (3), 'r')
C2 =
     1
     1
     1
Mari kita sekarang memeriksa bahwa ketiga vektor membentuk eigenbasis.
>> C = [C1 C2]
C =
    -1 -1 1
     1 0 1
     0 1 1
>> Inv (C) * A * C
ans =
    2.0000 -0,0000 0.0000
         0 2.0000 -0,0000
         0 0 5.0000
Besar! Ini bekerja.
11 Operasi Componentwise
Produk componentwise dari dua matriks A dan B adalah matriks A. * B yang entri adalah produk dari entri yang sesuai dari A dan B.
>> A = [1 2 3; 4 5 6]
A =
      1 2 3
      4 5 6
>> B = [3 2 1, -1 2 2]
B =
      3 2 1
     -1 2 2
>> A. * B
ans =
      3 4 3
     -4 10 12

Divisi Componentwise dan eksponensial didefinisikan oleh A. / B dan A. ^ B, masing-masing. Setiap operasi componentwise harus masuk akal, atau MATLAB akan menghasilkan pesan kesalahan.
>> A. / B
ans =
     1/3 1 3
     -4 5/2 3
A. >> ^ B
ans =
      1 4 3
     1/4 25 36

12 Plotting Curves
Fungsi plot digunakan untuk plot data dalam pesawat. Mengingat vektor x x-koordinat x1 melalui xn dan vektor y dari y-koordinat y1 melalui yn, plot (x, y) grafik titik (x1, y1) sampai (xn, yn). Secara default titik-titik yang terhubung dalam rangka oleh segmen garis lurus.  1).-Sebagai contoh, di sini adalah bagaimana seseorang akan merencanakan segiempat dengan simpul (0,0), (1,1), (4,2) dan (5, 
>> X = [0 1 4 5 0];
>> Y = [0 1 2 -1 0];
>> Plot (x, y) 


 
Satu dapat perkiraan grafik fungsi dengan memplot sejumlah besar titik pada grafik. Ingat bahwa j: i: k merupakan vektor baris yang komponen berkisar dari j ke k dengan penambahan sebesar i. Untuk  2,2], pertama kita-plot grafik dari y = x3 pada interval [  2 ke 2 dengan-mendefinisikan vektor baris yang berkisar dari komponen  penambahan sebesar 05.
>> X = -2: .05:2;

Oleh karena itu vektor x adalah 1 oleh 81 matriks. Hal ini dapat dilihat berdasarkan ukuran mengetik (x). Selanjutnya, kita menggunakan exponentiation componentwise untuk menentukan vektor dengan ukuran yang sama seperti x yang komponennya berupa kubus komponen x.
>> Y = x ^ 3;.

Mengetik y = x ^ 3 akan menghasilkan kesalahan karena x bukan matriks persegi. Akhirnya kami menggunakan plot fungsi untuk menampilkan grafik.
>> Plot (x, y)

Sekarang mari kita memberikan angka kami gelar.
>> Title ('Grafik dari f (x) = x ^ 3') 


 
Kurva parametrik pesawat dapat diplot dengan cara yang sama. Misalnya, Îuntuk memplot kurva r (t) = (2tcost / (t +1), 2tsint / (t +1)) untuk t  ], pertama-tama kita masukkan vektor nilai t.p[0,4 
>> T = 0: .1:4 * pi;

Selanjutnya kita memasuki koordinat x dan y dan plot kurva.
>> X = 2 * t * cos (t) / (t +1).;.
>> Y = 2 * t * sin (t) / (t +1)..;

Perhatikan bahwa kita menggunakan perkalian dan pembagian componentwise antara ekspresi yang melibatkan vektor t. Karena perkalian skalar sudah operasi componentwise, skalar perkalian dengan 2 tidak memerlukan titik. Sekarang kita plot kurva.
>> Plot (x, y);
>> Title ('(2t cos t / (t +1), 2t sin t / (t +1))')

Perhatikan bahwa MATLAB secara otomatis skala sumbu sehingga grafik mengambil layar penuh. Untuk melihat grafik dengan skala yang tepat, jenis sumbu yang sama.
>> Sumbu yang sama 


 
Untuk plot lebih dari satu kurva pada gambar yang sama, ketik tunggu.  1) 2 = 1.- 1) 2 + (y -Sebagai contoh, mari kita plot dua lingkaran x2 + y2 = 4 dan (x  ].p [0,2 ÎIni parametrized, masing-masing, oleh r1 (t) = (2cost, 2sint) dan r2 (t) = (1 + biaya, 1 + sint) untuk t 
>> T = 0: pi/20: 2 * pi;
>> Plot (2 * cos (t), 2 * sin (t))
>> Berpegang pada
>> Plot (1 + cos (t), 1 + sin (t))
>> Sumbu yang sama
>> Title ('Lingkaran x ^ 2 + y ^ 2 = 4 dan (x-1) ^ 2 + (y-1) ^ 2 = 1') 


 
Analog tiga dimensi plot plot3. ] diplot sebagai berikut.p [0,8 ÎMisalnya, parametrik kurva r (t) = (cos (t), dosa (t), t) untuk t 
>> T = 0: .1:8 * pi;
>> Plot3 (cos (t), dosa (t), t)
>> Title ('(cos t, sin t, t)')
 
13 Permukaan Plotting 


Untuk plot grafik fungsi f (x, y) atas domain persegi panjang

 d},£ y £ b dan c £ x £R = [a, b] × [c, d] = {(x, y) | a 

kita perlu terlebih dahulu membuat grid poin dalam domain menggunakan fungsi meshgrid. 

 
Sebagai contoh, untuk membagi persegi panjang [0,4] × [0,3] menjadi empat persegi panjang lebar dan tinggi 1 .5, pertama kita mendefinisikan vektor x dan y yang menentukan jarak grid.
>> X = 00:04
x =
     0 1 2 3 4
>> Y = 0: .5:3
y =
         0 0,5000 1,0000 1,5000 2,0000 2,5000 3,0000

Berikutnya meshgrid mendefinisikan poin dalam grid.
>> [X, Y] = meshgrid (x, y)
X =
     0 1 2 3 4
     0 1 2 3 4
     0 1 2 3 4
     0 1 2 3 4
     0 1 2 3 4
     0 1 2 3 4
     0 1 2 3 4
Y =
         0 0 0 0 0
    0,5000 0,5000 0,5000 0,5000 0,5000
    1,0000 1,0000 1,0000 1,0000 1,0000
    1,5000 1,5000 1,5000 1,5000 1,5000
    2,0000 2,0000 2,0000 2,0000 2,0000
    2,5000 2,5000 2,5000 2,5000 2,5000
    3,0000 3,0000 3,0000 3,0000 3,0000

Ini 7 × 5 matriks menentukan 35 poin dalam grid. Matriks X berisi koordinat x dan Y mengandung koordinat y.  2y.-Misalkan sekarang kita ingin plot fungsi f (x, y) = 3x  Kami kemudian menentukan Z matriks z koordinat.
>> Z = 3 * X-2 * Y
Z =
     0 3 6 9 12
    -1 2 5 8 11
    -2 1 4 7 10
    -3 0 3 6 9
    -4 -1 2 5 8
    -5 -2 1 4 7
    -6 -3 0 3 6

Akhirnya, kita menggunakan surfing untuk plot permukaan.
>> Surfing (X, Y, Z)
>> Title ('Grafik dari f (x, y) = 3x-2y')

Itu benar-benar tidak diperlukan dalam contoh ini untuk menentukan variabel x dan y. Kita bisa mendefinisikan grid langsung dengan mengetikkan
>> [X, Y] = meshgrid (0:4,0: .5:3)

Juga, jika meshgrid diberikan suatu vektor tunggal sebagai argumen, mendefinisikan kotak persegi dengan jarak yang sama di x dan y. Jadi meshgrid (0: .5:2) adalah setara dengan meshgrid (0: .5:2,0.5:2).
 1,1].- 2,2] × [- 2y atas persegi panjang [-Berikutnya mari kita plot grafik fungsi f (x, y) = x2y  Kami akan menggunakan grid yang terdiri dari kotak dengan sisi panjang 0,1 dan menekan output sehingga MATLAB tidak menampilkan dihasilkan 11 × 21 matriks.
>> [X, Y] = meshgrid (-2: .1:2, -1: .1:1);

Selanjutnya kita menggunakan exponentiation componentwise dan perkalian untuk mendefinisikan Z.
>> Z = (X. ^ 2) * Y-2 * Y.;

Akhirnya kita plot permukaan.
>> Surfing (X, Y, Z)
>> Title ('Grafik dari f (x, y) = x ^ 2y-2y')

 
Salah satu isu yang harus diperhatikan ketika merencanakan permukaan adalah pembagian dengan nol.  1,1].- 1,1] × [- [(x2 + y2)] alun-alun [ÖMisalnya, kita ingin plot grafik dari f (x, y) = xy / 
>> [X, Y] = meshgrid (-1: .1:1);
>> Z = X. * Y / sqrt (X. ^ 2 + Y. ^ 2).;
Peringatan: Bagilah dengan nol.

Jika sekarang kita mencoba untuk merencanakan permukaan, titik grid di (0,0) hilang! Untuk menghindari kesulitan seperti itu, kita hanya bisa menggeser grid sedikit sehingga (0,0) bukan merupakan bagian dari grid.
>> [X, Y] = meshgrid (- .99: .1:1);
>> Z = X. * Y / sqrt (X. ^ 2 + Y. ^ 2).;
>> Surfing (X, Y, Z)
>> Title ('Grafik dari f (x, y) = xy / \ Surda (x ^ 2 + y ^ 2)')
>> Sumbu yang sama
 
Parametrik permukaan diplot sama. Mengingat parametrization a

r (u, v) = (x (u, v), y (u, v), z (u, v))

beberapa permukaan, di mana domain untuk (u, v) adalah beberapa persegi panjang, pertama-tama kita membuat kotak dalam parameter u dan v, dan kemudian menentukan x, y dan z koordinat dalam hal ini menggunakan meshgrid parametrization tersebut.  berpusat pada asal R3 parametrized olehrMisalnya, bola berjari-jari 

.p 2 £ q £, 0 p £ f £) 0 f cos r, q sin f sin r q cos f sin r) = (q, fr (

Mari kita gunakan ini untuk merencanakan unit bola. .q dan fPertama kita mendefinisikan meshgrid dalam parameter 
>> Phi = 0: pi/20: pi;
>> Theta = 0: pi/10: 2 * pi;
>> [Phi, Theta] = meshgrid (phi, theta);

 = 1.rSelanjutnya kita gunakan parametrization di atas, dengan 
>> X = sin (Phi) * cos (Theta).;
>> Y = sin (Phi) * sin (Theta);.
>> Z = cos (Phi);

Akhirnya kita plot permukaan, dan skala sumbu sehingga terlihat seperti sebuah bola!
>> Surfing (X, Y, Z)
>> Sumbu yang sama
>> Title ('lingkup Unit {\ bf R} ^ 3')

 
14 Kurva Tingkat
Ada beberapa cara untuk plot kurva tingkat fungsi dari dua variabel.  y2.-Pertimbangkan untuk contoh fungsi f (x, y) = x2  Untuk hanya memplot kurva tingkat f di pesawat, kita menggunakan kontur.
>> [X, Y] = meshgrid (-1: .1:1);
>> Z = X. ^ 2-Y ^ 2;.
>> Kontur (X, Y, Z)
>> Judul ('kurva Tingkat f (x, y) = x ^ 2-y ^ 2')

 
Baris berikut menambahkan label ke kurva tingkat.
>> [C, h] = kontur (X, Y, Z);
>> Clabel (C, h)
>> Judul ('kurva Tingkat f (x, y) = x ^ 2-y ^ 2 dengan label.')

 
Untuk menunjukkan kurva tingkat di R3 pada ketinggian mereka yang sebenarnya, gunakan contour3.
>> Contour3 (X, Y, Z)
>> Judul ('kurva Tingkat f (x, y) = x ^ 2-y ^ 2 pada ketinggian yang sebenarnya.')

 
Untuk menunjukkan kurva tingkat di bawah grafik fungsi, gunakan surfc.
>> Surfc (X, Y, Z)
>> Judul ('kurva Tingkat dan grafik dari f (x, y) = x ^ 2-y ^ 2.')

 
15 Vector Fields
Ingat , dan bahwa bidang®bahwa medan vektor pada Rn adalah fungsi F: Rn Rn  vektor diwakili grafis dengan menempatkan F vektor (x) pada setiap titik x dalam Rn. Dalam MATLAB, bergetar (X, Y, U, V) plot vektor (U, V) pada titik-titik (X, Y).  y, x) ditunjukkan di bawah ini.-Sebagai contoh, medan vektor F (x, y) = (
>> [X, Y] = meshgrid (-1: .2:1);
>> Bergetar (X, Y, Y-, X)
>> Sumbu yang sama
>> Axis ([-1 1 -1 1])

 
Perhatikan namun bahwa plot ini adalah tidak cukup akurat. Vektor di (0.8,0) tentu tidak (0, 0,8). MATLAB otomatis skala vektor sehingga mereka tidak tumpang tindih. Untuk mengubah skala ini menggunakan bergetar (X, Y, U, V, s), dimana s adalah skala yang diinginkan. Mengatur s = 0 menghilangkan skala otomatis dan menunjukkan yang benar gambar ``''.
>> Bergetar (X, Y, Y-, X, 0)

 
 R.® f skalar nilai fungsi f: Rn ÑSebuah contoh penting dari sebuah medan vektor adalah gradien   2y2 sebagai berikut.- 3x -Kami merencanakan bidang vektor gradien dari f (x, y) = x3  Pertama mendefinisikan kotak dan masukkan fungsi.
>> [X, Y] = meshgrid (-2: .2:2, -1: .2:1);
>> Z = X. ^ 3-3 * X-2 * Y. ^ 2;

Selanjutnya,
[DX, DY] = gradien (Z, .2, .2);

mendefinisikan [DX, DY] menjadi (kurang-lebih) gradien f. Yang penting di sini adalah bahwa argumen kedua dan ketiga setuju dengan jarak di meshgrid sebelumnya. Akhirnya, kita menggunakan bergetar untuk merencanakan lapangan.
>> Bergetar (X, Y, DX, DY)
>> Sumbu yang sama
>> Axis ([-2 2 -1 1])
>> Title ('medan vektor Gradient dari f (x, y) = x ^ 3-3x-2y ^ 2')

 
Sekarang mari kita plot kurva tingkat f pada plot yang sama. Menggunakan grid halus membuat plot kontur lebih akurat.
>> [X, Y] = meshgrid (-2: .1:2, -1: .1:1);
>> Z = X. ^ 3-3 * X-2 * Y. ^ 2;
>> Kontur (X, Y, Z, 10)
>> Title ('medan Gradient vektor dan kurva tingkat f (x, y) = x ^ 3-3x-2y ^ 2')

 
Perhatikan bahwa vektor gradien tegak lurus terhadap kurva tingkat, seperti yang diharapkan. Sekarang ingat bahwa titik di mana gradien f lenyap disebut titik kritis f.  1,0) dan (1,0) adalah titik-titik kritis.-Dari angka-angka tampak bahwa ( Juga ingat bahwa gradien dari f poin dalam arah peningkatan terbesar dari f. Karena  1,0) kita- 1,0) mengarah ke (-semua vektor gradien dekat (  1,0).-menyimpulkan bahwa f harus memiliki maksimum lokal di ( Pada (1,0), beberapa vektor gradien terdekat titik dari (1,0) dan beberapa titik arah (1,0). Hal ini menunjukkan bahwa f memiliki pelana di (1,0). Hal ini dapat dilihat pada grafik f.
>> Menunda
>> Surfing (X, Y, Z)
>> Title ('Grafik dari f (x, y) = x ^ 3-3x-2y ^ 2')

 
16 Variabel Simbolis dan Ekspresi
Salah satu paket yang lebih kuat dalam MATLAB adalah Math Toolkit Simbolik, yang berisi sejumlah fungsi untuk melakukan perhitungan simbolik. Variabel simbolis didefinisikan menggunakan fungsi simbol.
>> X = sym ('x')
x =
x

Ini mendefinisikan simbolis variabel bernama x yang nilainya adalah 'x'. Dua nama tidak perlu sama. Misalnya x = sym ('y') masuk akal, tapi sedikit membingungkan, terutama jika variabel y didefinisikan. Fungsi syms memberikan singkatan untuk mendefinisikan variabel simbolis. Garis
>> Syms x y z

setara dengan tiga baris x = sym ('x'), y = sym ('y') dan z = sym ('z'). Menggunakan variabel simbolis, kita dapat membuat ekspresi simbolik.
>> S = x ^ 2-y ^ 2
S =
x ^ 2-y ^ 2

Ini mendefinisikan variabel simbolis S mengandung ekspresi x ^ 2-y ^ 2. Mari faktor ungkapan ini.
>> Faktor (S)
ans =
(X-y) * (x + y)

Berikutnya mari kita cube S dan memperluas hasilnya.
>> S ^ 3
ans =
(X ^ 2-y ^ 2) ^ 3
>> Buka (ans)
ans =
x ^ 6-3 * x ^ 4 * y ^ 2 +3 * x ^ 2 * y ^ 4-y ^ 6

Fungsi menyederhanakan cukup berguna dalam berurusan dengan ekspresi simbolik.
>> S = (x ^ 3-4 * x) / (x ^ 2 +2 * x)
S =
(X ^ 3-4 * x) / (x ^ 2 +2 * x)
>> Menyederhanakan (S)
ans =
x-2

Ekspresi simbolik juga mungkin vektor dan matriks.
>> Syms b
>> A = [cos (a)-sin (a); sin (a) cos (a)]
A =
[Cos (a),-sin (a)]
[Sin (a), cos (a)]

Ini adalah matriks untuk rotasi berlawanan melalui sudut. Mari kita kalikan ini dengan matriks untuk rotasi melalui sudut b.
 
>> B = [cos (b)-sin (b); sin (b) cos (b)]
B =
[Cos (b),-dosa (b)]
[Sin (b), cos (b)]
>> C = A * B
C =
[Cos (a) * cos (b)-sin (a) * sin (b),-cos (a) * sin (b)-sin (a) * cos (b)]
[Sin (a) * cos (b) + cos (a) * sin (b), cos (a) * cos (b)-sin (a) * sin (b)]

Hal ini seharusnya menjadi matriks untuk rotasi melalui sudut a + b (Mengapa?).
Menyederhanakan >> (C)
ans =
[Cos (a) * cos (b)-sin (a) * sin (b),-cos (a) * sin (b)-sin (a) * cos (b)]
[Sin (a) * cos (b) + cos (a) * sin (b), cos (a) * cos (b)-sin (a) * sin (b)]

Hmm, menyederhanakan tidak melakukan apa-apa. Pilihan lain adalah dengan menggunakan sederhana, yang terlihat untuk ekspresi setara terpendek.
>> D = sederhana (C)
D =
[Cos (a + b),-sin (a + b)]
[Sin (a + b), cos (a + b)]

Seperti yang diharapkan, ini adalah matriks untuk rotasi melalui sudut a + b.
Hal ini menggoda untuk memikirkan ekspresi simbolik sebagai fungsi dari variabel simbolik yang dikandungnya. Mereka tidak.  y2 sebagai ekspresi simbolik dan menghitung f (1,2).- x2 - 1) e -Misalkan kita ingin masuk f (x, y) = (4x2 
>> Syms x y
>> F = (4 * x ^ 2-1) * exp (-x ^ 2-y ^ 2)
f =
(4 * x ^ 2-1) * exp (-x ^ 2-y ^ 2)
>> F (1,2)
??? Indeks melebihi dimensi matriks.

Karena f bukan fungsi, tapi variabel, MATLAB membaca f (1,2) sebagai entri di baris 1, kolom 2 dari f. Tapi f hanya memiliki satu entri, ekspresi (4 * x ^ 2-1) * exp (-x ^ 2-y ^ 2). Untuk mengevaluasi sebuah ekspresi simbolik kita harus mengganti nilai-nilai untuk variabel simbolis. Hal ini dilakukan dengan menggunakan fungsi subs.
>> Subs (f, {x, y}, {1,2})
ans =
    0,0202

Hal ini tidak perlu untuk menggantikan semua variabel dalam sebuah ekspresi simbolik.
>> Subs (f, x, 3)
ans =
35 * exp (-9-y ^ 2)

Nilai-nilai diganti juga mungkin ekspresi simbolik.
>> Syms u v
>> Subs (f, {x, y}, {u + v, u-v})
ans =
(4 * (u + v) ^ 2-1) * exp (- (u + v) ^ 2 - (u-v) ^ 2)

Perintah subs demikian menyediakan metode pembentukan fungsi komposit.
Kami berkomentar di sini bahwa ada cara untuk mendefinisikan fungsi dalam MATLAB yang berperilaku dengan cara biasa. Hal ini dilakukan menggunakan perintah inline.  3xy +2 didefinisikan sebagai berikut.-Misalnya, fungsi g (x, y) = x2 
>> G = inline ('x ^ 2-3 * x * y +2')
g =
     Fungsi inline:
     g (x, y) = x ^ 2-3 * x * y +2

Sekarang kita dapat mengevaluasi g (2,3) dengan cara yang biasa.
g (2,3)
ans =
   -12

Kerugian dari fungsi inline adalah bahwa mereka tidak dapat dimanipulasi secara simbolis.
>> G ^ 2
??? Kesalahan menggunakan ==> ^
Fungsi '^' tidak didefinisikan untuk variabel kelas 'inline'.

17 Menyelesaikan Persamaan aljabar
The memecahkan Perintah ini digunakan untuk mencari solusi dari persamaan yang melibatkan ekspresi simbolik.
>> Memecahkan ('sin (x) + x = 5')
ans =
5,6175550052726989176213921571114

Dalam ekspresi dengan lebih dari satu variabel, kita dapat memecahkan satu atau lebih dari variabel-variabel dalam hal yang lain. Di sini kita menemukan akar kuadrat ax2 + bx + c in x dalam hal a, b dan c. Secara default memecahkan set yang diberikan ekspresi sama dengan nol jika persamaan tidak diberikan.
>> Memecahkan ('a * x ^ 2 + b * x + c', 'x')
ans =
[1/2/a * (-b + (b ^ 2-4 * a * c) ^ (1/2))]
[1/2/a * (-b-(b ^ 2-4 * a * c) ^ (1/2))]

Sistem persamaan juga dapat ditangani oleh memecahkan.
>> S = memecahkan ('x + y + z = 1', 'x +2 * y-z = 3')
S =
    x: [1x1 sym]
    y: [1x1 sym]

Variabel S berisi solusi, yang terdiri dari x dan y dalam hal z.
>> S.x
ans =
-3 * Z-1
>> S.y
ans =
2 * z +2

 1) 2 = 1.- 1) 2 + (y -Sekarang mari kita cari titik perpotongan lingkaran x2 + y2 = 4 dan (x 
>> S = memecahkan ('x ^ 2 + y ^ 2 = 4', '(x-1) ^ 2 + (y-1) ^ 2 = 1')
S =
    x: [2x1 sym]
    y: [2x1 sym]
>> [S.x S.y]
ans =
[5/4-1/4 * 7 ^ (1/2), 5/4 +1 / 4 * 7 ^ (1/2)]
[5/4 +1 / 4 * 7 ^ (1/2), 5/4-1/4 * 7 ^ (1/2)]

 7) / 4).Ö - 7) / 4, (5 Ö 7) / 4) dan ((5 + Ö 7) / 4, (5 + Ö -Titik-titik persimpangan karena itu ((5 
18 Derivatif
Diferensiasi sebuah ekspresi simbolik dilakukan dengan menggunakan fungsi diff. Sebagai contoh, mari kita menemukan turunan dari f (x) = sin (ex).
>> Syms x
>> F = sin (exp (x))
f =
dosa (exp (x))
>> Diff (f)
ans =
cos (exp (x)) * exp (x)

-N turunan dari f adalah diff (f, n).
>> Diff (f, 2)
ans =
-Sin (exp (x)) * exp (x) ^ 2 + cos (exp (x)) * exp (x)

Untuk menghitung turunan parsial dari sebuah ekspresi dengan memperhatikan beberapa variabel kita tentukan variabel sebagai argumen tambahan di diff. Misalkan f (x, y) = x3y4 + ysinx.
>> Syms x y
>> F = x ^ 3 * y ^ 4 + y * sin (x)
f =
x ^ 3 * y ^ 4 + y * sin (x)

 x. f / Pertama kita menghitung 
>> Diff (f, x)
ans =
3 * x ^ 2 * y ^ 4 + y * cos (x)

 y. f / Selanjutnya kita menghitung 
>> Diff (f, y)
ans =
4 * x ^ 3 * y ^ 3 + sin (x)

 x3. 3 f / Akhirnya kita menghitung 
>> Diff (f, x, 3)
ans =
6 * y ^ 4-y * cos (x)

 Rm dapat ditemukan secara langsung menggunakan fungsi Jacobian.®Matriks Jacobian dari fungsi f: Rn   2y).- didefinisikan oleh f (x, y) = (sin (xy), x2 + y2, 3x ®Sebagai contoh, mari f: R2 R3 
>> F = [sin (x * y); x ^ 2 + y ^ 2, 3 * x-2 * y]
f =
[Sin (y * x)]
[X ^ 2 + y ^ 2]
[3 * x-2 * y]
>> Jf = Jacobian (f)
Jf =
[Cos (y * x) * y, cos (y * x) * x]
[2 * x, 2 * y]
[3, -2]

Dalam kasus transformasi linear, Jacobian ini cukup sederhana.
>> A = [11 -3 14 7; 5 7 9 2; 8 12 -6 3]
A =
    11 -3 14 7
     5 7 9 2
     8 12 -6 3
>> Syms x1 x2 x3 x4
>> X = [x1, x2, x3, x4]
x =
[X1]
[X2]
[X3]
[X4]
>> T = A * x
T =
[11 * x1-3 * x2 * x3 +14 +7 * x4]
[5 * x1 * x2 +9 +7 * x3 +2 * x4]
[8 * x1 +12 * x2-6 * x3 +3 * x4]

Sekarang mari kita cari Jacobian dari T.
>> JT = Jacobian (T)
JT =
[11 -3, 14, 7]
[5, 7, 9, 2]
[8, 12, -6, 3]

Jacobian T justru A.
 R adalah skalar fungsi dihargai.®Selanjutnya misalkan f: Rn  Kemudian Jacobian adalah hanya gradien nya. (Yah, hampir. Tegasnya, mereka adalah transpos dari satu sama lain karena Jacobian adalah vektor baris dan gradien adalah vektor kolom.) Sebagai  x2- 1) e -contoh, mari f (x, y) = (4x2   y2.-
>> Syms x y nyata
>> F = (4 * x ^ 2-1) * exp (-x ^ 2-y ^ 2)
f =
(4 * x ^ 2-1) * exp (-x ^ 2-y ^ 2)
>> Gradf = Jacobian (f)
gradf =
[8 * x * exp (-x ^ 2-y ^ 2) -2 * (4 * x ^ 2-1) * x * exp (-x ^ 2-y ^ 2), -2 * (4 * x ^ 2-1) * y * exp (-x ^ 2-y ^ 2)]
Selanjutnya kita gunakan memecahkan untuk menemukan titik kritis f.
>> S = memecahkan (gradf (1), gradf (2));
>> [S.x S.y]

ans =
[0, 0]
[1/2 * 5 ^ (1/2), 0]
[-1 / 2 * 5 ^ (1/2), 0]

 5/2, 0).Ö - 5/2, 0) dan (ÖJadi titik kritis adalah (0,0), (
 R adalah n × n matriks urutan kedua turunan parsial f.®The Hessian dari skalar nilai fungsi f: Rn  Dalam MATLAB kita dapat memperoleh Hessian dari f dengan menghitung Jacobian dari Jacobian dari f.  y2.- x2 - 1) e -Pertimbangkan sekali lagi fungsi f (x, y) = (4x2 
>> Syms x y nyata
>> Hf = Jacobian (Jacobian (f));
>> Hf = sederhana (Hf)
Hf =
[2 * exp (-x ^ 2-y ^ 2) * (2 * x +1) * (2 * x-1) * (2 * x ^ 2-5), 4 * x * y * exp (- x ^ 2-y ^ 2) * (-5 4 * x ^ 2)]
[4 * x * y * exp (-x ^ 2-y ^ 2) * (-5 4 * x ^ 2), 2 * exp (-x ^ 2-y ^ 2) * (-1 +2 * y ^ 2) * (2 * x +1) * (2 * x-1)]

Kita sekarang dapat menggunakan Uji Derivatif Kedua untuk menentukan jenis setiap titik kritis f ditemukan di atas.
>> Subs (Hf, {x, y}, {0,0})
ans =
    10 0
     0 2
>> Subs (Hf, {x, y}, {1/2 * 5 ^ (1/2), 0})
ans =
   -5,7301 0
         0 -2,2920
>> Subs (Hf, {x, y}, {-1 / 2 * 5 ^ (1/2), 0})
ans =
   -5,7301 0
         0 -2,2920

Jadi f memiliki minimum lokal di (0,0) dan maxima lokal di dua titik penting lainnya. Mengevaluasi f pada titik-titik kritis memberikan nilai maksimum dan minimum dari f.
>> Subs (f, {x, y}, {0,0})
ans =
    -1
>> Subs (f, {x, y}, {'1 / 2 * 5 ^ (1/2) ', 0})
ans =
4 * exp (-5 / 4)
>> Subs (f, {x, y}, {'-1 / 2 * 5 ^ (1/2)', 0})
ans =
4 * exp (-5 / 4)

 5/4.- 5/2, 0) = 4e Ö - 5/2, 0) = f (Ö 1 dan nilai maksimum adalah f (-Dengan demikian nilai minimum f adalah f (0,0) =  Grafik f ditampilkan di bawah.
 
Sebagai contoh terakhir, kita memecahkan masalah multiplier Lagrange. Untuk f (x, y) = xy (1 + y) mari kita menemukan maksimum dan minimum f pada unit lingkaran x2 + y2 = 1.  1.-Pertama kita masukkan fungsi f dan fungsi kendala g (x, y) = x2 + y2 
>> Syms x y mu
>> F = x * y * (1 + y)
f =
x * y * (1 + y)
>> G = x ^ 2 + y ^ 2-1
g =
x ^ 2 + y ^ 2-1

Selanjutnya  g (x, y)Ñ m - f (x, y) Ñkita memecahkan persamaan Lagrange multiplier  .m= 0 dan persamaan kendala g (x, y) = 0 untuk x, y dan 
>> L = Jacobian (f)-mu * Jacobian (g)
L = [y * (1 + y) -2 * mu * x, x * (1 + y) + x * y-2 * mu * y]
>> S = memecahkan (L (1), L (2), g)
S =
    mu: [5x1 sym]
     x: [5x1 sym]
     y: [5x1 sym]

Selanjutnya mari kita melihat titik kritis ditemukan.  sekarang.mKita bisa mengabaikan 
>> [S.x S.y]
ans =
[1/6 * (22-2 * 13 ^ (1/2)) ^ (1/2), 1/6 +1 / 6 * 13 ^ (1/2)]
[-1/6 * (22-2 * 13 ^ (1/2)) ^ (1/2), 1/6 +1 / 6 * 13 ^ (1/2)]
[1/6 * (22 +2 * 13 ^ (1/2)) ^ (1/2), 1/6-1/6 * 13 ^ (1/2)]
[-1/6 * (22 +2 * 13 ^ (1/2)) ^ (1/2), 1/6-1/6 * 13 ^ (1/2)]
[0, -1]

Selanjutnya kita perlu mengevaluasi f pada masing-masing poin.
>> Nilai = sederhana (subs (f, {x, y}, {S.x, S.y}))
nilai =
[1/216 * (22-2 * 13 ^ (1/2)) ^ (1/2) * (1 +13 ^ (1/2)) * (7 +13 ^ (1/2))]
[-1 / 216 * (22-2 * 13 ^ (1/2)) ^ (1/2) * (1 +13 ^ (1/2)) * (7 +13 ^ (1/2))]
[1/216 * (22 +2 * 13 ^ (1/2)) ^ (1/2) * (-1 +13 ^ (1/2)) * (-7 +13 ^ (1/2)) ]
[-1 / 216 * (22 +2 * 13 ^ (1/2)) ^ (1/2) * (-1 +13 ^ (1/2)) * (-7 +13 ^ (1/2) )]
[0]

Akhirnya kami mengubah hal ini menjadi ekspresi desimal untuk mengidentifikasi maksimum dan minimum. Hal ini dilakukan menggunakan perintah ganda.
>> Ganda (nilai)
ans =
    0,8696
   -0,8696
   -0,2213
    0,2213
         0

 0,8696.-Jadi maksimum f adalah sekitar 0,8696 dan minimum adalah sekitar 
19 M-Files
MATLAB juga dapat digunakan sebagai bahasa pemrograman. Program Matlab disebut M-file, dan disimpan dengan ekstensi. M. Ada dua jenis M-file, script dan fungsi. Kami hanya akan membahas script di sini. Sebuah script MATLAB adalah sebuah program yang hanya mengeksekusi baris kode MATLAB. Script sangat berguna untuk tugas-tugas yang memerlukan beberapa baris kode. Daripada mengetik ulang setiap baris ketika kita ingin membuat perubahan kecil, kita hanya bisa mengubah satu baris script. Sebuah skrip terdiri dari file teks biasa dengan daftar perintah MATLAB yang hendak kita mengeksekusi. Berikut adalah contoh dari script.
% <-% Adalah untuk komentar.
% MATLAB mengabaikan segala sesuatu yang mengikutinya pada baris yang sama.
% Test.m

A = [1 2, 3 4]
B = [5 6; 7 8]
A + B


Setelah membuat file yang berisi teks di atas, kita simpan dengan nama file test.m. Dalam MATLAB kita mengakses file ini dengan uji mengetik. Perhatikan bahwa, dalam rangka untuk bekerja kita harus yakin bahwa direktori saat ini di MATLAB berisi file. The Unix Perintah ls (daftar isi direktori saat ini), cd (change directory) dan pwd (nama daftar direktori saat ini) semua pekerjaan di dalam MATLAB.
>> Uji
A =
     1 2
     3 4
B =
     5 6
     7 8
ans =
     6 8
    10 12

MATLAB mengeksekusi perintah dalam M-file dalam rangka, seolah-olah kita telah mengetik mereka dalam MATLAB. Kita juga dapat melakukan loop di dalam script.
% Sumsquares.m
% Merangkum pertama n kotak hingga n = 10

s = 0;
untuk n = 1:10
   s = s + n ^ 2
akhir

Berikut adalah apa yang tampak seperti ini di MATLAB.
>> Sumsquares
s =
     1
s =
     5
s =
    14
s =
    30
s =
    55
s =
    91
s =
   140
s =
   204
s =
   285
s =
   385

Berikut ini salah satu contoh terakhir untuk mencoba. Ini menunjukkan animasi dari kurva r (t) = (2tcost / (t +1), 2tsint / (t +1)) yang diplot. Lihat bagian Plotting Curves untuk rincian tentang perintah yang digunakan.
% Curve.m
% Menampilkan animasi dari kurva parametrik yang diplot.

bertahan

untuk T = 0: .1:4 * pi
   t = [T T + .1];
   plot (2 * t. * cos (t). / (t +1), 2 * t. * sin (t). / (t +1))
   sumbu yang sama
   axis ([-2 2 -2 2])
   sumbu off
   jeda (01)
akhir




Referensi : Steven Levandosky Department of Mathematic stanford University

2 komentar: