Biografi Ciri-ciri Analisis

Plot titik dalam matlab. Memplot matlab

3. Grafik 3D .

Graf fungsi dua pembolehubah ialah kepingan permukaan yang tergantung di atas kawasan definisi fungsi. Daripada ini jelas menunjukkan bahawa paparan graf fungsi dua pembolehubah memerlukan pelaksanaan "grafik tiga dimensi" pada paparan komputer skrin rata.

Subsistem grafik peringkat tinggi MATLAB secara automatik melaksanakan grafik 3D tanpa sebarang usaha khas dari pihak pengguna. Biarkan nilai fungsi z=f(x,y) dikira pada titik dengan koordinat x1,y1 dan ia bersamaan dengan z1. Pada titik lain (iaitu, dengan nilai argumen yang berbeza) x2,y2 hitung nilai fungsi z2. Meneruskan proses ini, kita mendapat tatasusunan (set) titik (x1,y1,z1), (x2,y2,z2), (xN,yN,zN) dalam jumlah N keping yang terletak dalam ruang tiga dimensi. Fungsi khas sistem MATLAB melukis permukaan licin melalui titik ini dan memaparkan unjurannya pada paparan komputer rata.

Selalunya, titik hujah disusun secara teratur dalam domain fungsi dalam bentuk grid segi empat tepat (iaitu, matriks). Grid mata sedemikian menghasilkan dua matriks struktur yang sama: matriks pertama mengandungi nilai koordinat pertama titik ini (x - koordinat), dan matriks kedua mengandungi nilai koordinat kedua (y - koordinat). Mari kita tetapkan matriks pertama sebagai X, dan yang kedua - sebagai Y. Terdapat juga matriks ketiga - matriks nilai fungsi z=f(x,y) dengan hujah-hujah ini. Matriks ini akan dilambangkan dengan huruf Z.

Fungsi paling mudah untuk memplot fungsi dua pembolehubah dalam sistem MATLAB ialah fungsi

plot3(X , Y , Z)

di mana X, Y dan Z ialah matriks yang sama saiznya, maksudnya yang baru kita jelaskan.

MATLAB mempunyai fungsi khas untuk mendapatkan tatasusunan dua dimensi X dan Y daripada tatasusunan satu dimensi x, y.

P P> Biarkan paksi-x diberi julat nilai sebagai vektor

u=-2:0.1:2

dan pada paksi-y julat ini ialah

v=-1:0.1:1

Untuk mendapatkan matriks X dan Y yang mewakili koordinat pertama dan kedua bagi grid segi empat tepat yang terhasil, gunakan fungsi khas sistem MATLAB:

[ X , Y ] = meshgrid(u, v)

Seperti yang dapat kita lihat, fungsi ini menerima sebagai input dua tatasusunan satu dimensi (vektor) yang mewakili tatasusunan titik pada paksi koordinat, dan segera mengembalikan dua tatasusunan dua dimensi yang diperlukan. Pada grid segi empat tepat titik, kami mengira nilai fungsi, sebagai contoh, fungsi exp:

Z = exp(- X.^2 - Y.^2)

Akhir sekali, menggunakan fungsi plot3 yang diterangkan di atas, kita mendapat imej berikut bagi graf tiga dimensi fungsi ini:

Daripada rajah ini, dapat dilihat bahawa plot3 berfungsi plot sebagai satu set garisan dalam ruang, yang setiap satunya adalah bahagian permukaan tiga dimensi oleh satah selari dengan satah yOz. Dengan cara lain, kita boleh mengatakan bahawa setiap baris diperoleh daripada segmen garis yang menghubungkan satu set titik yang koordinatnya diambil daripada lajur yang sama bagi matriks X, Y dan Z. Iaitu, baris pertama sepadan dengan lajur pertama bagi matriks X, Y Z; baris kedua - ke lajur kedua matriks ini dan seterusnya.

Untuk memplot garisan tiga dimensi yang ditetapkan secara parametrik, satu lagi bentuk panggilan fungsi plot3 digunakan:

plot3(x, y, z)

di mana x, y dan z ialah tatasusunan satu dimensi koordinat titik, yang mesti disambungkan secara bersiri mengikut segmen garis. Contohnya, coretan kod berikut

t = 0: pi/50: 10*pi ;

x = sin(t);

y = cos(t);

plot3(x, y, t);

grid dihidupkan

di mana arahan yang diketahui daripada graf rata digunakan

grid dihidupkan

untuk meletakkan grid nilai koordinat dalam bidang plot (ia juga mungkin menggunakan arahan dan fungsi untuk reka bentuk graf, yang sebelum ini dipertimbangkan untuk kes "rata"), membolehkan anda membina heliks , yang imejnya ditunjukkan dalam rajah berikut:

Sebagai tambahan kepada fungsi mudah ini, sistem MATLAB mempunyai beberapa fungsi yang membolehkan anda mencapai realisme yang lebih besar dalam paparan graf tiga dimensi. Ini ialah fungsi mesh, melayari dan melayari.

Fungsi mesh menghubungkan titik jiran yang dikira pada permukaan graf dengan segmen garisan dan menunjukkan dalam tetingkap grafik sistem MATLAB unjuran rata bagi badan "wireframe mesh" tiga dimensi sedemikian. Daripada graf fungsi yang ditunjukkan sebelum ini menggunakan fungsi plot3

exp(- X.^2 - Y.^2)

anda boleh mendapatkan imej ini

Untuk persepsi yang lebih baik tentang "kelantangan" imej, tepi yang berbeza secara automatik dicat dalam warna yang berbeza. Di samping itu (tidak seperti fungsi plot3), garisan tersembunyi dialih keluar. Jika anda berpendapat bahawa badan bergaris yang digambarkan adalah telus dan tidak sepatutnya menyembunyikan garis belakang, maka anda boleh memasukkan arahan tersembunyi, selepas itu garisan tersebut akan muncul pada imej. Imej permukaan yang lebih padat boleh dicapai jika sebaliknya

fungsi mesh menggunakan fungsi surf(X, Y, Z).

Hasilnya, imej berikut diperoleh, mewakili permukaan jejaring padat (legap), dan sel individu (muka) permukaan jejaring ini (segi empat rata) dicat secara automatik dalam warna yang berbeza.

Menggunakan fungsi melayari, walaupun diwarnakan secara buatan, tetapi imej yang sangat visual diperolehi. Jika kita ingin mencapai cara melukis permukaan yang lebih semula jadi dan objektif, maka kita harus menggunakan fungsi melayari.

Fungsi surfing merawat permukaan graf sebagai permukaan bahan dengan sifat fizikal tertentu pantulan cahaya. Secara lalai, sumber cahaya tertentu ditetapkan yang menerangi permukaan bahan sedemikian, selepas itu trajektori sinar pantulan yang memasuki kanta kamera bersyarat dikira. Imej dalam kamera sedemikian dipaparkan dalam tetingkap grafik sistem MATLAB.

Memandangkan bahan yang berbeza mencerminkan sinar kejadian secara berbeza, adalah mungkin untuk memilih beberapa bahan untuk mendapatkan imej terbaik (dari sudut pandangan pengguna). Khususnya, anda boleh menggunakan fungsi tersebut

peta warna (tembaga)

dengan bantuan satu set warna (dalam bahasa Inggeris - colormap) dipilih untuk imej graf, yang tipikal untuk cahaya yang dipantulkan dari permukaan tembaga (tembaga dalam bahasa Inggeris - tembaga). Selepas itu, gunakan fungsi tersebut

melayari(X, Y, Z)

bukannya surf(X,Y,Z) menghasilkan graf yang kelihatan sangat realistik dan sangat visual:

Adalah mungkin untuk mengalih keluar garis hitam yang mewakili tepi daripada graf sedemikian, serta mencapai peralihan pencahayaan permukaan yang lebih lancar, jika anda melaksanakan arahan

interp teduhan

bermakna kini warna (pencahayaan) akan berubah walaupun di dalam muka individu (sel). Hasilnya, imej yang sangat nyata bagi beberapa rajah tiga dimensi akan diperolehi. Untuk lebih baik atau lebih teruk untuk tugas memaparkan graf fungsi dua pembolehubah, terpulang kepada pengguna tertentu untuk menilai.

Memaparkan fungsi sebagai jadual adalah berguna apabila terdapat bilangan nilai fungsi yang agak kecil. Biarkan ia diperlukan untuk memaparkan dalam tetingkap arahan jadual nilai fungsi

pada mata 0.2, 0.3, 0.5, 0.8, 1.3, 1.7, 2.5.
Masalah diselesaikan dalam dua peringkat.
1. Vektor baris dicipta X, yang mengandungi koordinat titik-titik yang diberikan.
2. Nilai fungsi dikira y(X) daripada setiap elemen vektor X dan nilai yang terhasil ditulis pada vektor baris y.
Nilai fungsi mesti ditemui untuk setiap elemen vektor baris X, jadi operasi dalam ungkapan untuk fungsi mesti dilakukan unsur demi unsur.

» x =
x =
0.2000 0.3000 0.5000 0.8000 1.3000 1.7000 2.5000 y = sin(x).^2./(l+cos(x))+exp(-x).*log(x)
Y =

Ambil perhatian bahawa apabila cuba menggunakan eksponen ^, bahagi /, dan pendaraban * (yang tidak mengikut unsur-unsur), mesej ralat telah dipaparkan apabila sin(x) diduakan:

"y \u003d sin (x) ^ 2 / (1 + cos (x)) + exp (-x) * log (x)
??? Ralat menggunakan ==> ^
Matriks mestilah segi empat sama.

Hakikatnya ialah dalam MatLab operasi * dan ^ digunakan untuk mendarab matriks dengan saiz yang sepadan dan menaikkan matriks segi empat sama kepada kuasa.
Jadual boleh dibuat lebih mudah dibaca dengan meletakkan nilai fungsi terus di bawah nilai argumen:

"X
x =
0.2000 0.3000 0.5000 0.8000 1.3000 1.7000 2.5000 »
y=
-1.2978 -0.8473 -0.2980 0.2030 0.8040 1.2258 1.8764

Ia selalunya diperlukan untuk memaparkan nilai fungsi pada titik segmen yang dijarakkan antara satu sama lain dengan jarak yang sama (langkah). Katakan kita perlu memaparkan jadual nilai fungsi y(X) pada segmen dengan langkah 0.2. Anda boleh, sudah tentu, memasukkan vektor baris nilai argumen x= dari baris arahan dan hitung semua nilai fungsi seperti yang diterangkan di atas. Walau bagaimanapun, jika langkah itu bukan 0.2, tetapi, sebagai contoh, 0.01, maka terdapat banyak kerja yang perlu dilakukan untuk memasukkan vektor X.
MatLab menyediakan penciptaan vektor yang mudah, setiap elemen berbeza daripada yang sebelumnya dengan nilai tetap, i.e. satu langkah. Titik bertindih digunakan untuk memasukkan vektor tersebut (jangan keliru dengan pengindeksan kolon). Dua pengendali seterusnya menghasilkan pembentukan vektor baris yang sama. Anda boleh menulis bersyarat

» x =
x =
» x =
x =
1.0000 1.2000 1.4000 1.6000 1.8000 2.0000

Anda boleh menulis bersyarat

x = [nilai mula: langkah: nilai akhir]

Ia tidak perlu mengambil kira bahawa jumlah nilai langkah kedua terakhir adalah sama dengan nilai akhir, sebagai contoh, apabila melaksanakan pernyataan tugasan berikut

» x =
x =
1.0000 1.2000 1.4000 1.6000 1.8000

Vektor baris akan mengisi sehingga elemen yang tidak melebihi nilai akhir yang kami takrifkan. Langkah itu juga boleh menjadi negatif:

» x =
x =
1.9000 1.7000 1.5000 1.3000 1.1000

Dalam kes langkah negatif, untuk mendapatkan vektor baris bukan kosong, nilai mula mestilah lebih besar daripada nilai akhir.
Untuk mengisi vektor lajur dengan elemen bermula pada sifar dan berakhir pada 0.5 dalam kenaikan 0.1, isikan vektor baris dan kemudian gunakan operasi transpose:

"x="
x =
0
0.1000
0.2000
0.3000
0.4000
0.5000

Ambil perhatian bahawa unsur-unsur vektor yang diisi bertindih hanya boleh menjadi nyata, jadi anda boleh menggunakan apostrof dan bukannya titik diikuti dengan apostrof untuk transposisi.
Langkah yang sama dengan satu mungkin tidak ditentukan semasa pengisian automatik:

» x =
x =
1 2 3 4 5

Biarkan ia diperlukan untuk memaparkan jadual nilai fungsi

pada segmen dengan langkah 0.05,
Untuk menyelesaikan tugas ini, anda mesti melakukan langkah berikut:
1. Bentuk vektor baris X menggunakan kolon.
2. Kira nilai di(X) daripada unsur-unsur X.
3. Tulis hasilnya kepada vektor baris y.
4. Menarik diri X dan y.

» x = ;
» y = exp(-x).*sin(10*x);
"X
x =
Lajur 1 hingga 7
О 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000
Lajur 8 hingga 14
0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500
Lajur 15 hingga 21
0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000
» pada
Y =
Lajur 1 hingga 7
0 0.4560 0.7614 0.8586 0.7445 0.4661 0.1045
Lajur 8 hingga 14
-0.2472 -0.5073 -0.6233 -0.5816 -0.4071 -0.1533 0.1123
Lajur 15 hingga 21
0.3262 0.4431 0.4445 0.3413 0.1676 -0.0291 -0.2001

baris-vektor x dan y terdiri daripada dua puluh satu elemen, dan tidak muat pada skrin dalam satu baris, jadi ia dipaparkan dalam bahagian. Kerana X dan y disimpan dalam tatasusunan dua dimensi dimensi satu demi dua puluh satu, kemudian ia dipaparkan dalam lajur, setiap satunya terdiri daripada satu elemen. Lajur 1 hingga 7 dipaparkan dahulu (lajur 1 hingga 7), kemudian lajur 8 hingga 14 (lajur 8 hingga 14), dan akhirnya lajur 15 hingga 21 (lajur 15 hingga 21). Lebih visual dan mudah ialah perwakilan grafik fungsi.

2. Memplot fungsi satu pembolehubah

2.1. Graf fungsi pada skala linear

MatLab telah membangunkan keupayaan grafik dengan baik untuk visualisasi data. Pertimbangkan pada permulaan pembinaan graf termudah bagi fungsi satu pembolehubah menggunakan contoh fungsi

,

ditakrifkan pada segmen. Output fungsi dalam bentuk graf terdiri daripada langkah-langkah berikut:
1. Menentukan vektor nilai argumen X.
2. Pengiraan vektor di nilai fungsi y(X).
3. Memanggil arahan plot untuk memplot graf.
Perintah untuk Menentukan Vektor X dan adalah lebih baik untuk menamatkan pengiraan fungsi dengan koma bertitik untuk menekan output nilainya ke tetingkap arahan (tidak perlu meletakkan koma bertitik selepas arahan plot, kerana ia tidak mengeluarkan apa-apa ke tetingkap arahan).

» x = ;
» y = exp(-x).*sin(10*x);
»plot(x, y)

Selepas melaksanakan arahan, tetingkap muncul pada skrin. angka tidak. satu dengan graf fungsi. Tetingkap mengandungi menu, bar alat dan kawasan carta. Dalam yang berikut, arahan yang direka khas untuk reka bentuk carta akan diterangkan. Sekarang kami berminat dengan prinsip perancangan dan beberapa kemungkinan paling mudah untuk memvisualisasikan fungsi.
Untuk memplot graf fungsi dalam ruang kerja MatLab, dua vektor dengan dimensi yang sama mesti ditakrifkan, contohnya X dan y. Tatasusunan x yang sepadan mengandungi nilai argumen, dan y mengandungi nilai fungsi argumen tersebut. Arahan plot menghubungkan titik dengan koordinat (x(i), y(i)) dengan garis lurus, secara automatik menskala paksi untuk kedudukan optimum plot dalam tetingkap. Apabila memplot graf, adalah mudah untuk meletakkan tetingkap MatLab utama dan tetingkap dengan graf bersebelahan pada skrin supaya ia tidak bertindih.
Graf fungsi yang dibina mempunyai kekusutan. Untuk plot yang lebih tepat, fungsi mesti dikira y(X) pada bilangan mata yang lebih besar pada segmen , i.e. tetapkan langkah yang lebih kecil apabila memasukkan vektor X:

» x = ;
» y = exp(-x).*sin(10*x);
»plot(x, y)

Hasilnya ialah graf fungsi dalam bentuk lengkung yang lebih licin.
Adalah mudah untuk membandingkan beberapa fungsi dengan memaparkan graf mereka pada paksi yang sama. Sebagai contoh, pada selang [-1, -0.3], kami memplotkan graf bagi fungsi
,

menggunakan urutan perintah berikut:

» x = [-1:0.005:-0.3];
» f = sin(x.^-2);
» g = sin(1.2*x.^-2);
» plot(x, f, x, g)

Fungsi tidak perlu ditakrifkan pada segmen yang sama. Dalam kes ini, semasa merancang, MatLab memilih segmen maksimum yang mengandungi selebihnya. Ia hanya penting untuk menunjukkan vektor yang sepadan antara satu sama lain dalam setiap pasangan vektor absis dan ordinat, contohnya:

» x1 = [-1:0.005:-0.3];
» f = sin(x1.^-2);
» x2 = [-1:0.005:0.3];
» g = sin(1.2*x2.^-2);
» plot(x1, f, x2, g)

Begitu juga, dengan menentukan pasangan hujah dalam bentuk: vektor absis, vektor ordinat dalam plot, dipisahkan dengan koma, graf bagi bilangan fungsi sewenang-wenangnya diplotkan.

Catatan 1

Menggunakan plot dengan satu hujah, vektor, menghasilkan "plot vektor", i.e. pergantungan nilai elemen vektor pada nombor mereka. Hujah plot juga boleh menjadi matriks, dalam hal ini graf lajur dipaparkan pada paksi koordinat yang sama.
Kadang-kadang anda ingin membandingkan tingkah laku dua fungsi yang nilainya sangat berbeza antara satu sama lain. Graf fungsi dengan nilai kecil secara praktikal bergabung dengan paksi absis, dan penampilannya tidak dapat ditentukan. Dalam situasi ini, fungsi plotyy membantu, yang memaparkan graf dalam tetingkap dengan dua paksi menegak yang mempunyai skala yang sesuai.
Bandingkan, sebagai contoh, dua fungsi: dan

» x = ;
» f = x.^-3;
» F \u003d 1000 * (x + 0.5). ^-4;
» plotyy(x, f, x, F)

Semasa anda menjalankan contoh ini, perhatikan bahawa warna graf sepadan dengan warna paksi-y yang sepadan.
Fungsi plot menggunakan skala linear pada kedua-dua paksi koordinat. Walau bagaimanapun, MatLab menyediakan pengguna dengan keupayaan untuk memplot fungsi satu pembolehubah pada skala logaritma atau separa logaritma.

2.2. Graf fungsi dalam skala logaritma

Fungsi berikut digunakan untuk memplot skala logaritma dan semilogaritma:
- loglog (skala logaritma pada kedua-dua paksi);
- semilogx (skala logaritma hanya sepanjang paksi-x);
-semilogi (skala logaritma sahaja sepanjang paksi-y).

Argumen loglog, semilogx, dan semilogi ditentukan sebagai sepasang vektor nilai absis dan ordinat dengan cara yang sama seperti fungsi plot yang diterangkan dalam perenggan sebelumnya. Mari kita bina, sebagai contoh, graf fungsi dan pada segmen dalam skala logaritma sepanjang paksi X:

» x = ;
» f = log(0.5*x);
» g = sin(log(x));
» semilogx(x, f, x ,g)

2.3. Menetapkan sifat garis pada graf fungsi

Graf fungsi yang dibina hendaklah semudah mungkin untuk persepsi. Selalunya anda perlu menggunakan penanda, menukar warna garisan, dan sebagai persediaan untuk percetakan monokrom - tetapkan jenis garisan (pepejal, bertitik, titik sempang, dll.). MatLab menyediakan keupayaan untuk mengawal penampilan graf yang dibina menggunakan plot, loglog, semilogx dan semilogi, yang mana hujah tambahan diletakkan selepas setiap pasangan vektor. Argumen ini disertakan dalam apostrof dan terdiri daripada tiga aksara yang menentukan: warna, jenis penanda dan jenis baris. Satu, dua atau tiga kedudukan digunakan, bergantung kepada perubahan yang diperlukan. Jadual menunjukkan nilai yang mungkin bagi hujah ini dengan hasilnya.

jenis penanda

jenis baris

padu

bertitik

bertitik-titik

tanda tambah

putus-putus

bintang

Segitiga terbalik

segi tiga terbalik

Segi tiga menunjuk ke kiri

segi tiga menunjuk ke kanan

bintang berbucu lima

bintang berbucu enam

Jika, sebagai contoh, anda perlu memplot graf pertama dengan penanda titik merah tanpa garis, dan graf kedua dengan garis titik hitam, maka anda harus menggunakan plot(x, f, "r.", x, g, "k:") arahan.

2.4. Reka bentuk graf fungsi

Kemudahan menggunakan carta sebahagian besarnya bergantung pada elemen reka bentuk tambahan: grid koordinat, label paksi, tajuk dan legenda. Grid diplot dengan grid pada arahan, label untuk paksi diletakkan menggunakan xlabel, ylabel, tajuk diberikan oleh arahan tajuk. Mempunyai berbilang graf pada paksi yang sama memerlukan meletakkan legenda dengan arahan legenda dengan maklumat tentang garisan. Semua arahan di atas boleh digunakan untuk graf dalam kedua-dua skala linear dan logaritma dan separa logaritma. Perintah berikut memaparkan graf perubahan dalam suhu harian, yang disediakan dengan semua maklumat yang diperlukan.

» masa = ;
» temp1 = ;
» temp2 = ;
» plot(masa, temp1, "ro-", masa, temp2, "go-")
» grid dihidupkan
» tajuk("Suhu harian")
» xlabel("Masa (jam)")
» ylabel("Suhu (C)")
» lagenda("10 Mei, 11 Mei")

Apabila menambah legenda, perlu diingat bahawa susunan dan bilangan hujah perintah legenda mesti sepadan dengan baris pada carta. Hujah tambahan terakhir boleh menjadi kedudukan legenda dalam tetingkap grafik:

* -1 - di luar carta di sudut kanan atas tetingkap grafik;
* 0 - kedudukan terbaik dalam graf dipilih supaya graf itu sendiri bertindih sesedikit mungkin;
* 1 - di penjuru kanan sebelah atas carta (kedudukan ini digunakan secara lalai);
* 2 - di sudut kiri atas carta;
* 3 - di sudut kiri bawah carta;
* 4 - di penjuru kanan sebelah bawah carta.

Ia dibenarkan untuk menambah formula dan menukar gaya fon menggunakan format TeX dalam label tajuk carta, legenda dan paksi.
MatLab memaparkan graf dalam warna yang berbeza. Pencetak monokrom akan mencetak grafik dalam pelbagai warna kelabu, yang tidak selalunya mudah. Perintah plot membolehkan anda menetapkan gaya dan warna garisan dengan mudah, sebagai contoh

» plot(x,f,"k-",x,g,"k:")

melakukan pembinaan graf pertama dengan garis hitam pejal, dan yang kedua - dengan garis titik hitam. Argumen "k-" dan "k:" menentukan gaya dan warna baris pertama dan kedua. Di sini, k bermaksud hitam, dan tanda sempang atau titik bertindih bermaksud garis pepejal atau putus-putus. Tetingkap carta boleh ditutup dengan mengklik pada butang dengan salib di sudut kanan atas.

3. Memplot fungsi dua pembolehubah

Memplot fungsi dua pembolehubah dalam MatLab pada kawasan segi empat tepat definisi pembolehubah termasuk dua langkah awal:
1. Membahagikan domain definisi dengan grid segi empat tepat.
2. Pengiraan nilai fungsi pada titik persilangan garis grid dan kemasukannya ke dalam matriks.
Mari kita plot fungsi z(x,di)= X 2 + di 2 pada domain takrifan dalam bentuk segi empat sama X kepunyaan , y- . Adalah perlu untuk membahagikan segi empat sama dengan grid seragam (contohnya, dengan langkah 0.2) dan mengira nilai fungsi pada nod yang ditunjukkan oleh titik.
Adalah mudah untuk menggunakan dua tatasusunan dua dimensi x dan y, dengan dimensi enam kali enam, untuk menyimpan maklumat tentang koordinat nod. Tatasusunan x terdiri daripada rentetan yang sama yang mengandungi koordinat x 1, X 2, ..., X 6 dan tatasusunan di mengandungi lajur yang sama seperti y1, di 2, ..., di 6. Kami menulis nilai fungsi pada nod grid ke dalam tatasusunan z dimensi yang sama (6 x 6), dan untuk mengira matriks Z gunakan ungkapan untuk fungsi, tetapi dengan unsur demi unsur operasi matriks. Kemudian, sebagai contoh z(3,4) hanya akan sama dengan nilai fungsi z(x,y) pada titik (x3, di empat). Untuk menjana tatasusunan grid X dan di mengikut koordinat nod dalam MatLab, fungsi meshgrid disediakan, untuk memplot graf dalam bentuk permukaan rangka wayar, fungsi mesh. Pernyataan berikut menyebabkan tetingkap dengan graf fungsi muncul pada skrin (tiada koma bertitik pada penghujung pernyataan untuk mengawal penjanaan tatasusunan):

» = meshgrid(0:0.2:1,0:0.2:1)
X=

0 0.2000 0.4000 0.6000 0.8000 1.0000
0 0.2000 0.4000 0.6000 0.8000 1.0000
0 0.2000 0.4000 0.6000 0.8000 1.0000
0 0.2000 0.4000 0.6000 0.8000 1.0000
0 0.2000 0.4000 0.6000 0.8000 1.0000
y=
0 0 0 0 0 0
0.2000 0.2000 0.2000 0.2000 0.2000 0.2000
0.4000 0.4000 0.4000 0.4000 0.4000 0.4000
0.6000 0.6000 0.6000 0.6000 0.6000 0.6000
0.8000 0.8000 0.8000 0.8000 0.8000 0.8000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

» Z = X.^2+Y.^2

Z=
0 0.0400 0.1600 0.3600 0.6400 1.0000
0.0400 0.0800 0.2000 0.4000 0.6800 1.0400
0.1600 0.2000 0.3200 0.5200 0.8000 1.1600
0.3600 0.4000 0.5200 0.7200 1.0000 1.3600
0.6400 0.6800 0.8000 1.0000 1.2800 1.6400
1.0000 1.0400 1.1600 1.3600 1.6400 2.0000

Apakah kelemahan carta yang dibina? Dan bagaimana untuk menghapuskannya? Jadual yang dibina dan yang baru perlu dimasukkan ke dalam laporan elektronik mengenai kerja makmal.

MatLab membolehkan anda memplot maklumat tambahan pada carta, khususnya, kesesuaian warna dengan nilai fungsi. Mesh dijana menggunakan arahan meshgrid, yang dipanggil dengan dua argumen. Argumen adalah vektor yang unsur-unsurnya sepadan dengan grid pada kawasan segi empat tepat pembinaan fungsi. Satu hujah boleh digunakan jika kawasan di mana fungsi diplot ialah segi empat sama. Untuk mengira fungsi, anda harus menggunakan operasi mengikut unsur .

Pertimbangkan ciri utama yang disediakan oleh MatLab untuk menggambarkan fungsi dua pembolehubah, menggunakan contoh memplot graf fungsi

pada domain segi empat tepat X kepunyaan [-1, 1], y .
Mari sediakan matriks dengan koordinat nod grid dan nilai fungsi:

» = meshgrid(-1:0.05:1, 0:0.05:1);
» Z = 4*sin(2*pi*X).*cos(1.5*pi*Y).*(1-X.^2).*Y.*(1-Y);

Untuk membina permukaan rangka wayar, fungsi mesh digunakan, yang dipanggil dengan tiga argumen:

Warna garis permukaan sepadan dengan nilai fungsi. MatLab hanya melukis bahagian permukaan yang kelihatan.

Dengan bantuan arahan tersembunyi Anda boleh membuat permukaan rangka wayar "telus" dengan menambahkan bahagian tersembunyi. Perintah tersembunyi pada mengalih keluar bahagian permukaan yang tidak kelihatan, mengembalikan grafik kepada rupa asalnya.

Fungsi melayari membina permukaan rangka wayar graf fungsi dan mengisi setiap sel permukaan dengan warna tertentu, bergantung pada nilai fungsi pada titik yang sepadan dengan sudut sel. Dalam setiap sel, warna adalah malar. Lihat hasil arahan

Pasukan teduhan rata membolehkan anda mengalih keluar garisan wireframe. Perintah interp teduhan digunakan untuk mendapatkan permukaan yang diisi dengan warna yang lancar bergantung pada nilai fungsi.
Dengan teduhan faceted, anda boleh kembali ke permukaan dengan wireframes.
Plot 3D yang dihasilkan oleh arahan yang diterangkan di atas adalah mudah untuk mendapatkan idea tentang bentuk permukaan, tetapi sukar untuk menilai nilai fungsi daripadanya. MatLab mentakrifkan perintah bar warna, yang memaparkan bar di sebelah graf yang mewujudkan korespondensi antara warna dan nilai fungsi. Plot permukaan dengan melayari dan lengkapkan dengan maklumat warna.

»surf(X,Y,Z)
»bar warna

Perintah bar warna boleh digunakan bersama dengan semua fungsi yang melukis objek 3D.

Menggunakan permukaan berwarna, sukar untuk membuat kesimpulan tentang nilai fungsi pada titik tertentu dalam satah xy. Arahan meshc atau surfc membolehkan anda mendapatkan idea yang lebih tepat tentang kelakuan fungsi tersebut. Arahan ini membina permukaan rangka dawai atau permukaan rangka dawai penuh warna dan meletakkannya di atas satah xy garisan tahap fungsi (garisan ketekalan nilai fungsi):

»surfc(X,Y,Z)
»bar warna

MatLab membolehkan anda membina permukaan yang terdiri daripada garisan aras menggunakan fungsi contour3. Fungsi ini boleh digunakan dengan cara yang sama seperti mesh, surf, meshc, dan surfc di atas dengan tiga argumen. Dalam kes ini, bilangan baris tahap dipilih secara automatik. Adalah mungkin untuk menentukan sebagai argumen keempat dalam kontur3 sama ada bilangan baris tahap atau vektor yang elemennya sama dengan nilai fungsi yang dipaparkan sebagai garis tahap. Menentukan vektor (tahap, hujah keempat) adalah mudah apabila anda ingin meneroka kelakuan fungsi dalam julat tertentu nilainya (kepingan fungsi). Bina, sebagai contoh, permukaan yang terdiri daripada garis aras yang sepadan dengan nilai fungsi dari 0 hingga 0.5 dengan langkah 0.01:

» peringkat = ;
» kontur3(X, Y, Z, aras)
»bar warna

4. Membina plot kontur fungsi dua pembolehubah

MatLab menyediakan keupayaan untuk mendapatkan pelbagai jenis plot kontur menggunakan fungsi kontur dan kontur. Mari kita pertimbangkan keupayaan mereka pada contoh fungsi

Menggunakan kontur dengan tiga hujah

»kontur(X,Y,Z)

menghasilkan graf yang menunjukkan garis aras pada satah xy, tetapi tanpa menyatakan nilai berangka padanya . Graf sedemikian tidak bermaklumat, ia tidak membenarkan anda mengetahui nilai fungsi pada setiap baris tahap. Menggunakan arahan colorbar juga tidak akan membenarkan anda menentukan nilai fungsi dengan tepat. Setiap baris tahap boleh dibekalkan dengan nilai yang digunakan oleh fungsi yang dikaji, menggunakan fungsi klabel yang ditakrifkan dalam MatLab. Fungsi clabel dipanggil dengan dua hujah: matriks yang mengandungi maklumat tentang garis tahap dan penunjuk kepada carta untuk dilabel. Pengguna tidak perlu mencipta sendiri hujah clabel. Fungsi kontur, dipanggil dengan dua parameter keluaran, bukan sahaja melukis garisan aras, tetapi juga mencari parameter yang diperlukan untuk klabel. Gunakan kontur dengan argumen keluaran CMatr dan h (tatasusunan CMatr mengandungi maklumat tentang garis tahap dan tatasusunan h mengandungi penunjuk). Tamatkan panggilan ke kontur dengan koma bertitik untuk menyekat paparan nilai parameter output dan plot grid:

» = kontur(X, Y, Z);
» clabel(CMatr, h)
» grid dihidupkan

Argumen tambahan kepada fungsi kontur (sama seperti contour3 yang diterangkan di atas) boleh sama ada bilangan garis aras atau vektor yang mengandungi nilai fungsi yang mana garis aras hendak dilukis.
Maklumat visual tentang menukar fungsi diberikan dengan mengisi segi empat tepat pada satah xy warna bergantung kepada nilai fungsi pada titik satah. Untuk membina graf sedemikian, fungsi kontur adalah bertujuan, penggunaannya tidak berbeza daripada penggunaan kontur. Contoh berikut memaparkan graf yang terdiri daripada dua puluh garis tahap, dan jurang di antaranya diisi dengan warna yang sepadan dengan nilai fungsi yang dikaji:

» kontur(X, Y, Z, 20)
»bar warna

5. Reka bentuk graf fungsi

Cara mudah dan berkesan untuk menukar skema warna graf adalah dengan menetapkan palet warna menggunakan fungsi peta warna. Contoh berikut menunjukkan cara menyediakan plot fungsi untuk mencetak pada pencetak monokrom menggunakan palet kelabu.

» melayari(X, Y, Z)
»bar warna
» peta warna(kelabu)
» tajuk("Graf fungsi z(x,y)")
» xlabel("x")
» ylabel("y")
» zlabel("z")

Ambil perhatian bahawa arahan colormap(kelabu) menukar palet tetingkap grafik, i.e. graf berikut akan dipaparkan dalam tetingkap ini juga dalam nada kelabu. Untuk memulihkan nilai asal palet, gunakan perintah colormap("default"). Palet warna yang tersedia dalam MatLab ditunjukkan dalam Jadual. 2.

jadual 2


Palet

Perubahan warna

Smooth change merah - oren - kuning.

Sama seperti palet kelabu, tetapi dengan sedikit warna biru.

Setiap warna berubah dari gelap kepada terang.

Warna biru dan ungu.

Warna tembaga.

Berbasikal merah - putih - biru - hitam.

Warna kelabu.

Smooth change hitam - merah - oren - kuning - putih.

Perubahan halus seperti warna pelangi.

Smooth change biru - cyan - merah - hijau - kuning - merah.

Sama seperti palet kelabu, tetapi dengan sedikit warna coklat

Berbasikal merah - oren - kuning - hijau - biru - ungu.

Warna ungu dan kuning.

Warna hijau dan kuning.

Palet Windows enam belas warna.

Satu warna putih.

Warna biru dan hijau.

6. Memaparkan berbilang graf pada paksi yang sama

Untuk memaparkan beberapa graf fungsi satu pembolehubah pada paksi yang sama, kemungkinan fungsi telah digunakan plot, plotyy, semilogx, semilogi, loglog. Mereka membenarkan anda memplot berbilang fungsi dengan menentukan argumen vektor yang sesuai secara berpasangan, seperti plot(x,f,x,g). Walau bagaimanapun, ia tidak boleh digunakan untuk menggabungkan plot 3D. Untuk menggabungkan graf sedemikian, perintah hold on bertujuan, yang mesti dinyatakan sebelum merancang. Dalam contoh berikut, menggabungkan dua graf (satah dan kon) menghasilkan persilangan mereka. Kon ditentukan secara parametrik oleh kebergantungan berikut:

, , , .

Untuk memaparkan kon secara grafik, anda perlu terlebih dahulu menghasilkan vektor lajur dan vektor baris menggunakan titik bertindih, yang mengandungi nilai parameter dalam selang waktu tertentu (penting untuk u M. Vektor lajur dan vektor baris ialah matriks dengan satu dimensi sama dengan satu. Sebenarnya, DARI = abT, di mana pendaraban berlaku mengikut peraturan produk matriks. Operator asterisk digunakan untuk mengira produk matriks dalam MatLab. Mari kita tentukan produk luar untuk dua vektor:

» a = ;
» b = ;
»C=a*b"
C=
5 6 7
10 12 14
15 18 21

Mari kita bentuk matriks X,Y, diperlukan untuk paparan grafik kon:

» X = 0.3*u*cos(v);
» Y = 0.3*u*sin(v);

Matriks Z mestilah sama saiz dengan matriks X dan Y. Di samping itu, ia mesti mengandungi nilai yang sepadan dengan nilai parameter. Jika fungsi termasuk produk dan dan v, kemudian matriks Z boleh diisi dengan cara yang sama seperti matriks X dan Y dengan bantuan produk luar. Sebaliknya, fungsi z(u, v) boleh diwakili sebagai , di mana . Oleh itu, untuk mengira Z seseorang boleh menggunakan hasil darab luar vektor dan , di mana vektor baris mempunyai dimensi yang sama seperti v, tetapi terdiri daripada unit:

» Z = 0.6*u*satu(saiz(v));

Semua matriks yang diperlukan untuk memaparkan kon telah dibuat. Pesawat ditakrifkan seperti berikut:

» = meshgrid(-2:0.1:2);
» Z = 0.5*X+0.4*Y;

Sekarang tidak sukar untuk menulis urutan lengkap arahan untuk membina kon dan satah bersilang:

» u = [-2*pi:0.1*pi:2*pi]";
» v = [-2*pi:0.1*pi:2*pi];
» X = 0.3*u*cos(v);
» Y = 0.3*u*sin(v);
» Z = 0.6*u*satu(saiz(v));
» melayari(X, Y, Z)
» = meshgrid(-2:0.1:2);
» Z = 0.5*X+0.4*Y;
»bertahan
» jaringan(X, Y, Z)
» disembunyikan

Perintah hidden off digunakan untuk menunjukkan bahagian kon yang berada di bawah satah.
Sila ambil perhatian bahawa perintah tahan terpakai untuk semua output graf berikutnya ke tetingkap semasa. Untuk meletakkan carta dalam tetingkap baharu, laksanakan perintah tahan. Perintah tahan juga boleh digunakan untuk menyusun beberapa graf fungsi satu pembolehubah, contohnya,

»plot(x,f,x,g)

adalah bersamaan dengan urutan

»plot(x,f)
»bertahan
» plot(x,g)

Hasil kerja saya:

MatLab menyediakan kit alat yang kaya untuk visualisasi data. Menggunakan bahasa dalaman, anda boleh memaparkan plot 2D dan 3D dalam koordinat Cartesian dan kutub, memaparkan imej dengan kedalaman warna yang berbeza dan peta warna yang berbeza, mencipta animasi ringkas hasil simulasi semasa pengiraan dan banyak lagi.

3.1. fungsi plot

Memandangkan keupayaan MatLab untuk visualisasi data, mari kita mulakan dengan graf dua dimensi, yang biasanya dibina menggunakan fungsi plot (). Banyak pilihan untuk fungsi ini sebaiknya dipertimbangkan dengan contoh khusus.

Katakan anda ingin memplot fungsi sinus dalam julat dari 0 hingga . Untuk melakukan ini, kami menetapkan vektor (set) titik di sepanjang paksi Lembu, di mana nilai fungsi sinus akan dipaparkan:

Hasilnya ialah vektor lajur dengan satu set nilai dari 0 hingga dan dengan langkah 0.01. Kemudian, kami mengira set nilai fungsi sinus pada titik ini:

dan paparkan hasilnya pada skrin

Akibatnya, kita mendapat graf yang ditunjukkan dalam Rajah. 3.1.

Entri fungsi plot() yang dibentangkan menunjukkan bahawa argumen dengan set titik paksi Ox ditulis dahulu, dan kemudian argumen dengan set titik paksi Oy. Mengetahui nilai-nilai ini, fungsi plot() mempunyai keupayaan untuk memplot titik pada satah dan menginterpolasinya secara linear untuk memberikan plot berterusan.

nasi. 3.1. Memaparkan fungsi sinus menggunakan fungsi plot().

Fungsi plot() juga boleh ditulis dengan satu argumen x atau y:

plot(x);
plot(y);

Akibatnya, kami memperoleh dua graf berbeza yang ditunjukkan dalam Rajah. 3.2.

Analisis rajah. 3.2 menunjukkan bahawa dalam kes satu hujah, fungsi plot() memaparkan satu set titik di sepanjang paksi Oy dan secara automatik menjana satu set mata dengan langkah unit di sepanjang paksi Ox. Oleh itu, untuk memvisualisasikan vektor dengan mudah sebagai graf dua dimensi, cukup menggunakan fungsi plot() dengan satu hujah.

Untuk memplot berbilang plot pada paksi koordinat yang sama, fungsi plot() ditulis seperti berikut:

x = 0:0.01:pi;
y1 = sin(x);
y2 = cos(x);
plot(x,y1,x,y2);

Hasil serpihan program ini ditunjukkan dalam Rajah. 3.3.

nasi. 3.2. Hasil daripada fungsi plot() dengan satu hujah:

a – plot(x); b – plot(y).

nasi. 3.3. Memaparkan dua graf dalam paksi koordinat yang sama.

Begitu juga, dua plot boleh diplot menggunakan satu hujah untuk fungsi plot(). Katakan terdapat dua vektor nilai

y1 = sin(x);
y2 = cos(x);

untuk dipaparkan pada skrin. Untuk melakukan ini, kami menggabungkannya menjadi matriks dua dimensi

di mana lajur terdiri daripada vektor y1 dan y2, masing-masing. Matriks sedemikian akan dipaparkan oleh fungsi

plot(); % apostrof menterjemahkan vektor baris
% kepada vektor lajur

dalam bentuk dua graf (Rajah 3.4).

nasi. 3.4. Memaparkan matriks dua dimensi dalam bentuk dua graf.

Dua vektor dalam paksi yang sama hanya boleh dipaparkan jika dimensinya adalah sama. Apabila bekerja dengan vektor dengan dimensi berbeza, ia mesti sama ada dibawa kepada satu sama lain mengikut bilangan elemen, atau dipaparkan pada graf yang berbeza. Terdapat beberapa cara untuk memaparkan graf dalam paksi koordinat yang berbeza. Dalam kes yang paling mudah, anda boleh mencipta dua tetingkap grafik dan memaparkan grafik yang dikehendaki di dalamnya. Ini dilakukan dengan cara berikut:

x1 = 0:0.01:2*pi;
y1 = sin(x1);

x2 = 0:0.01:pi;
y2 = cos(x2);


angka; % penciptaan tetingkap grafik ke-2
plot(x2, y2); % menarik carta ke-2 dalam tetingkap ke-2

Fungsi angka yang digunakan dalam program ini mencipta tetingkap grafik baharu dan menjadikannya aktif. Fungsi plot(), dipanggil sejurus selepas fungsi angka, akan memaparkan plot dalam tetingkap grafik yang sedang aktif. Akibatnya, dua tetingkap dengan dua graf akan ditunjukkan pada skrin.

Kesulitan serpihan program di atas ialah panggilan berulang ke fungsi angka akan memaparkan satu lagi tetingkap baharu pada skrin, dan jika program itu dilaksanakan dua kali, maka tiga tetingkap grafik akan muncul pada skrin, tetapi hanya dua daripadanya akan mengandungi data sebenar. Dalam kes ini, adalah lebih baik untuk membina program supaya dua tetingkap dengan graf yang diperlukan sentiasa dipaparkan pada skrin. Ini boleh dicapai jika, apabila memanggil fungsi angka, sebagai hujah, nyatakan nombor tetingkap grafik yang akan dibuat atau aktifkan jika ia sudah dibuat. Oleh itu, program di atas boleh ditulis seperti berikut.

x1 = 0:0.01:2*pi;
y1 = sin(x1);

x2 = 0:0.01:pi;
y2 = cos(x2);

Rajah 1); %buat tetingkap nombor 1
plot(x1, y1); % melukis carta pertama
angka(2); % mencipta tetingkap grafik nombor 2
plot(x2, y2); % menarik carta ke-2 dalam tetingkap ke-2

Apabila melaksanakan program ini, hanya dua tetingkap grafik dengan nombor 1 dan 2 akan sentiasa dipaparkan pada skrin, dan masing-masing menunjukkan graf bagi fungsi sinus dan kosinus.

Dalam sesetengah kes, penyampaian maklumat yang lebih mudah boleh dicapai dengan memaparkan dua graf dalam satu tetingkap grafik. Ini dicapai dengan menggunakan fungsi subplot(), yang mempunyai sintaks berikut:

subplot(<число строк>, <число столбцов>, <номер координатной оси>)

Pertimbangkan contoh memaparkan dua graf di bawah satu sama lain bagi fungsi sinus dan kosinus di atas.

x1 = 0:0.01:2*pi;
y1 = sin(x1);

x2 = 0:0.01:pi;
y2 = cos(x2);

Rajah 1);
subplot(2,1,1); % membahagikan tetingkap kepada 2 baris dan satu lajur
plot(x1,y1); % paparan graf pertama
subplot(2,1,2); % membina paksi koordinat ke-2
plot(x2,y2); % memaparkan graf ke-2 dalam paksi baharu

Keputusan program ditunjukkan dalam Rajah. 3.5.

Begitu juga, anda boleh memaparkan dua atau lebih graf dalam lajur, dalam bentuk jadual, dsb. Selain itu, anda boleh menentukan koordinat tepat lokasi graf dalam tetingkap grafik. Untuk melakukan ini, gunakan parameter kedudukan dalam fungsi subplot():

subplot('kedudukan', );

di mana kiri ialah offset dari sebelah kiri tetingkap; bawah - mengimbangi dari bahagian bawah tetingkap; lebar, tinggi – lebar dan tinggi carta dalam tetingkap. Kesemua pembolehubah ini berjulat dari 0 hingga 1.

nasi. 3.5. Contoh fungsi subplot.

Di bawah ialah serpihan program untuk memaparkan graf fungsi sinus di tengah tetingkap grafik. Hasil kerja ditunjukkan dalam Rajah. 3.6.

x1 = 0:0.01:2*pi;
y1 = sin(x1);

subplot('kedudukan', );
plot(x1,y1);

Dalam contoh ini, fungsi subplot() mengimbangi plot sebanyak satu pertiga daripada sempadan kiri dan bawah tetingkap dan melukis plot dengan lebar dan ketinggian satu pertiga daripada tetingkap grafik. Akibatnya, kesan melukis fungsi sinus di tengah tetingkap utama diperolehi.

Oleh itu, menggunakan parameter kedudukan, anda boleh sewenang-wenangnya meletakkan elemen grafik dalam satah tingkap.

nasi. 3.6. Contoh cara fungsi subplot berfungsi dengan parameter kedudukan.

Pakej MatLab membolehkan anda memaparkan graf dengan warna dan jenis garis yang berbeza, menunjukkan atau menyembunyikan grid pada graf, melabelkan paksi dan graf secara keseluruhan, mencipta legenda dan banyak lagi. Dalam bahagian ini, kami akan mempertimbangkan fungsi paling penting yang membolehkan anda membuat hiasan sedemikian menggunakan contoh graf dua dimensi.

Fungsi plot() membolehkan anda menukar warna dan jenis baris yang dipaparkan. Untuk ini, parameter tambahan digunakan, yang ditulis seperti berikut:

plot( , , <’цвет линии, тип линии, маркер точек’>);

Sila ambil perhatian bahawa parameter ketiga ditulis dalam apostrof dan mempunyai simbol yang diberikan dalam jadual 3.1-3.3. Penanda di bawah ditulis satu demi satu, contohnya,

'ko' - pada carta memaparkan titik carta dengan bulatan hitam,
'ko-' - melukis carta dengan garis hitam dan meletakkan titik dalam bentuk bulatan.

Tab. 3.1. Penamaan warna garis graf

Warna garisan

ungu

Tab. 3.2. Penamaan jenis garis graf

Warna garisan

berterusan

putus-putus

bertitik

bertitik-titik

Tab. 3.3. Penetapan jenis titik graf

Warna garisan

bintang

Di bawah ialah contoh menulis fungsi plot() dengan set penanda yang berbeza.

x = 0:0.1:2*pi;
y = sin(x);

subplot(2,2,1); plot(x,y,"r-");
subplot(2,2,2); plot(x,y,"r-",x,y,"ko");
subplot(2,2,3); plot(y,"b--");
subplot(2,2,4); plot(y,"b--+");

Keputusan serpihan program ditunjukkan dalam Rajah. 3.7. Contoh yang dibentangkan menunjukkan bagaimana penanda boleh digabungkan untuk mencapai hasil yang diinginkan. Dan dalam rajah. 3.7 menunjukkan dengan jelas kesan visual yang dibawa oleh penanda berbeza yang digunakan dalam program. Perlu diingatkan terutamanya bahawa dalam baris keempat program, sebenarnya, dua graf dipaparkan: yang pertama dilukis dengan warna merah dan garis berterusan, dan yang kedua dilukis dengan bulatan hitam dari titik graf yang diberikan. . Pilihan yang selebihnya untuk menulis penanda adalah jelas.

nasi. 3.7. Contoh memaparkan graf dengan pelbagai jenis penanda

Daripada contoh dalam Rajah. 3.7 dapat dilihat bahawa skala graf sepanjang paksi Lembu adalah lebih besar sedikit daripada nilai sebenar. Hakikatnya ialah sistem MatLab secara automatik menskalakan sistem koordinat untuk perwakilan lengkap data. Walau bagaimanapun, pelarasan automatik sedemikian mungkin tidak selalunya sesuai dengan minat pengguna. Kadangkala diperlukan untuk memilih serpihan carta yang berasingan dan hanya menunjukkannya secara keseluruhan. Untuk ini, fungsi axis() bahasa MatLab digunakan, yang mempunyai sintaks berikut:

paksi([ xmin, xmax, ymin, ymax ]),

di mana nama-nama parameter yang ditentukan bercakap untuk diri mereka sendiri.

Mari gunakan fungsi ini untuk memaparkan graf fungsi sinus dalam julat dari 0 hingga :

x = 0:0.1:2*pi;
y = sin(x);

subplot(1,2,1);
plot(x,y);
paksi();

subplot(1,2,2);
plot(x,y);
paksi();

Daripada hasil program (Rajah 3.8) dapat dilihat bahawa walaupun pada hakikatnya fungsi sinus ditetapkan dalam julat dari 0 hingga , menggunakan fungsi paksi(), anda boleh memaparkan kedua-dua keseluruhan graf dan serpihannya dalam julat dari 0 hingga .

nasi. 3.8. Contoh bagaimana fungsi paksi() berfungsi

Sebagai kesimpulan bahagian ini, kami akan mempertimbangkan kemungkinan mencipta label carta, paksi, dan memaparkan grid pada carta. Untuk ini, fungsi bahasa MatLab yang disenaraikan dalam Jadual 1 digunakan. 3.4.

Jadual 3.4. Fungsi reka bentuk carta

Nama

Penerangan

Menghidupkan/mematikan grid pada carta

tajuk('tajuk carta')

Mencipta label tajuk carta

xlabel('label paksi lembu')

Mencipta label paksi-x

ylabel('label paksi Oy')

Mencipta label paksi Oy

teks(x,y,'teks')

Mencipta label teks pada koordinat (x,y).

Pertimbangkan operasi fungsi ini dalam contoh berikut:

x = 0:0.1:2*pi;
y = sin(x);

plot(x,y);
paksi();
grid dihidupkan;
title("Grafik fungsi sin(x)");
xlabel("Koordinat Lembu");
ylabel("Koordinat Oy");
text(3.05,0.16,"\leftarrow sin(x)");

Daripada hasil program ini, ditunjukkan dalam Rajah. 3.9, anda boleh melihat bagaimana fungsi untuk mencipta label pada carta berfungsi, serta memaparkan grid carta.

Oleh itu, menggunakan set fungsi dan parameter yang diterangkan, anda boleh mencapai cara yang diingini untuk mereka bentuk graf dalam sistem MatLab.

nasi. 3.9. Contoh cara fungsi reka bentuk carta berfungsi

Perwakilan visual khususnya permukaan diberikan oleh graf mesh menggunakan lorekan berfungsi sel. Contohnya, warna permukaan z(x, y) boleh laras dengan ketinggian z permukaan dengan pilihan ton gelap untuk ketinggian rendah, dan ton terang untuk ketinggian tinggi. Untuk membina permukaan sedemikian, arahan kelas digunakan pelayar (…):

  • melayari(X, Y, Z.C)- membina permukaan parametrik berwarna mengikut matriks X, Y dan Z dengan warna yang ditentukan oleh tatasusunan C;
  • melayari(X.Y.Z)- sama dengan arahan sebelumnya, di mana C=Z, supaya warna ditetapkan oleh ketinggian satu atau sel permukaan lain;
  • melayari(x.y.Z) dan melayari(x.y.Z.C) dengan dua argumen vektor x dan y - vektor x dan y menggantikan dua argumen matriks pertama dan mesti mempunyai panjang panjang(x)=n dan panjang(y)=m, di mana =saiz(Z). Dalam kes ini, bucu kawasan permukaan diwakili oleh tiga kali ganda koordinat (x(j), yd), Z(1,j)). Ambil perhatian bahawa x sepadan dengan lajur Z dan y sepadan dengan baris;
  • melayari(Z) dan melayari(Z.C) gunakan x = 1:n dan y = 1:m. Dalam kes ini, ketinggian Z ialah fungsi yang ditakrifkan secara unik yang diberikan oleh grid segi empat tepat geometri;
  • h=surf(...)- membina permukaan dan mengembalikan pemegang ke objek kelas permukaan.

Pasukan paksi, tembolok, peta warna, tahan, teduhan dan pandangan mentakrifkan paksi koordinat dan sifat permukaan yang boleh digunakan untuk mempamerkan permukaan atau bentuk dengan lebih berkesan.

Di bawah ialah contoh mudah membina permukaan - paraboloid:

> > = meshgrid([- 3: 0.15: 3 ]);

> > Z = X.^2 + Y.^2 ;

> > Layari(X,Y,Z)

Graf yang sepadan dengan contoh ini ditunjukkan dalam Rajah. 6.25.

nasi. 6.25. Plot paraboloid dengan pewarnaan sel berfungsi

Dapat dilihat bahawa, disebabkan oleh pewarnaan berfungsi, graf permukaan adalah lebih ekspresif daripada dalam pembinaan tanpa pewarnaan sedemikian yang dibentangkan lebih awal (dan walaupun dalam kes apabila graf warna dicetak dalam warna hitam dan putih).

Contoh berikut menggunakan pewarnaan skala kelabu berfungsi dengan keluaran skala ton warna:

> > = meshgrid([- 3: 0.1: 3 ]);

> > Z = sin(X). /(X.^2 + Y.^2 + 0.3);

> > melayari(X.Y.Z)

> > peta warna(kelabu)

> > interp teduhan

> > bar warna

Dalam contoh ini, arahan peta warna(kelabu) menetapkan ton warna kelabu, dan arahan teduhan Interp menyediakan penyingkiran imej grid dan menetapkan interpolasi untuk rona warna permukaan isipadu. Pada rajah. 6.26 menunjukkan paparan graf yang dibina dalam contoh ini.


nasi. 6.26. Plot permukaan dengan pewarna berfungsi dalam kelabu

Biasanya, menggunakan interpolasi untuk mewarna menjadikan permukaan dan bentuk kelihatan lebih realistik, tetapi bentuk rangka wayar memberikan data kuantitatif yang lebih tepat tentang setiap titik.