Tampilan grafis dari suatu titik pada gambar yang kompleks.

Perhatikan gambar berikut.

Ini menunjukkan grafik fungsi y = x^3 - 3*x^2. Perhatikan beberapa interval yang memuat titik x = 0, misalnya dari -1 sampai 1. Interval tersebut disebut juga tetangga dari titik x = 0. Seperti yang dapat Anda lihat pada grafik, dalam lingkungan ini fungsi y = x^ 3 - 3*x^2 dibutuhkan nilai tertinggi tepat di titik x = 0.

Maksimum dan minimum suatu fungsi

Dalam hal ini, titik x = 0 disebut titik maksimum fungsi. Dengan analogi ini, titik x = 2 disebut titik minimum dari fungsi y = x^3 - 3*x^2. Karena ada lingkungan di titik ini di mana nilai pada titik ini akan menjadi minimal di antara semua nilai lain dari lingkungan ini.

dot maksimum fungsi f(x) disebut titik x0, asalkan ada lingkungan dari titik x0 sehingga untuk semua x tidak sama dengan x0 dari lingkungan ini, pertidaksamaan f(x)< f(x0).

dot minimum fungsi f(x) disebut titik x0, asalkan ada lingkungan dari titik x0 sedemikian rupa sehingga untuk semua x yang tidak sama dengan x0 dari lingkungan ini, pertidaksamaan f(x) > f(x0) terpenuhi.

Pada titik maksimum dan minimum fungsi, nilai turunan fungsi sama dengan nol. Tapi ini bukan kondisi yang cukup untuk keberadaan fungsi pada titik maksimum atau minimum.

Misalnya, fungsi y = x^3 di titik x = 0 memiliki turunan sama dengan nol. Tetapi titik x = 0 bukanlah titik minimum atau maksimum dari fungsi tersebut. Seperti yang Anda ketahui, fungsi y = x^3 meningkat pada seluruh sumbu nyata.

Dengan demikian, titik minimum dan maksimum akan selalu berada di antara akar persamaan f’(x) = 0. Tetapi tidak semua akar persamaan ini merupakan titik maksimum atau minimum.

Titik stasioner dan kritis

Titik-titik di mana nilai turunan suatu fungsi sama dengan nol disebut titik stasioner. Ada juga titik maksimum atau minimum pada titik di mana turunan fungsi tidak ada sama sekali. Misalnya, y = |x| pada titik x = 0 memiliki minimum, tetapi turunannya tidak ada pada titik ini. Titik ini akan menjadi titik kritis fungsi.

Titik kritis suatu fungsi adalah titik-titik di mana turunannya sama dengan nol, atau turunannya tidak ada pada titik ini, yaitu, fungsi pada titik ini tidak terdiferensiasi. Untuk menemukan maksimum atau minimum suatu fungsi, kondisi yang cukup harus dipenuhi.

Misalkan f(x) adalah suatu fungsi yang terdiferensiasi pada interval (a;b). Titik x0 termasuk dalam interval ini dan f'(x0) = 0. Maka:

1. jika melalui titik stasioner x0, fungsi f(x) dan turunannya berubah tanda, dari “plus” menjadi “minus”, maka titik x0 adalah titik maksimum fungsi tersebut.

2. jika melalui titik stasioner x0, fungsi f(x) dan turunannya berubah tanda, dari “minus” menjadi “plus”, maka titik x0 adalah titik minimum dari fungsi tersebut.

Halo untuk semua orang Habr. Saya ingin menyajikan kepada para pembaca yang budiman sebuah contoh ketika kering dan jauh dari kehidupan dalam pemahaman kita matematika yang lebih tinggi memberikan hasil praktis yang baik.

Pertama beberapa kenangan
Itu ketika saya masih mahasiswa di salah satu universitas teknik di tahun 90-an, mungkin tahun kedua. Saya entah bagaimana sampai ke Olimpiade dalam pemrograman. Dan di Olimpiade ini ada tugas: untuk mengatur koordinat segitiga, titik uji di pesawat, dan untuk menentukan apakah titik ini milik area segitiga. Secara umum, masalah sepele, tapi kemudian saya tidak menyelesaikannya. Tapi kemudian saya memikirkan tugas yang lebih umum - milik tempat pembuangan sampah. Saya ulangi - itu pertengahan 90-an, tidak ada Internet, tidak ada buku tentang geometri komputer, tetapi ada kuliah di menara dan laboratorium 286 dengan turbo pascal. Dan bintang-bintang itu bertepatan, bahwa pada saat saya memikirkan masalah itu, mereka membacakan teori variabel kompleks kepada kita di menara. Dan satu formula (tentang itu di bawah) jatuh di tanah yang subur. Algoritme ditemukan dan diimplementasikan dalam Pascal (sayangnya, sekrup satu setengah gigabyte saya mati dan membawa kode ini dan banyak perkembangan muda saya yang lain terlupakan). Setelah institut, saya mulai bekerja di salah satu institut penelitian. Di sana saya harus berurusan dengan pengembangan GIS untuk kebutuhan karyawan institut, dan salah satu tugas saya adalah menentukan apakah objek jatuh ke dalam kontur. Algoritme ditulis ulang dalam C++ dan terbukti sangat baik dalam pekerjaan.

Tugas untuk algoritma

Diberikan:
- poliline tertutup (selanjutnya disebut poligon) pada bidang, diberikan oleh koordinat simpulnya (xi, yi), dan koordinat titik uji (x0, y0)
Mendefinisikan:
apakah titik tersebut termasuk dalam area D yang dibatasi oleh poligon.

Derivasi rumus untuk penulisan algoritma selanjutnya sama sekali tidak mengklaim lengkap dan akurat secara matematis, tetapi hanya menunjukkan rekayasa (pendekatan konsumen) kepada Ratu bidang ilmu.

Penjelasan dari sudut pandang teknik buruh-tani:
- batas G adalah kontur yang diberikan,
- z0 - titik yang diuji
- f(z) - fungsi kompleks tidak menuju tak terhingga di mana pun dalam kontur dari argumen kompleks.

Artinya, untuk menentukan apakah suatu titik termasuk dalam kontur, kita perlu menghitung integral dan membandingkannya dengan nilai fungsi pada titik tertentu. Jika cocok, maka intinya terletak pada kontur. Catatan: Teorema integral Cauchy mengatakan bahwa jika titik tidak terletak pada kontur, maka integran tidak menuju tak hingga di mana pun, maka integral nol. Ini menyederhanakan masalah - Anda hanya perlu menghitung integral dan memeriksanya untuk kesetaraan ke nol: titiknya bukan kontur sama dengan nol, itu berbeda - itu terletak di kontur.
Mari kita lakukan perhitungan integral. Untuk f(z) kita ambil fungsi sederhana 1. Tanpa kehilangan sifat umum, kita dapat mengambil titik 0 sebagai z0 (Anda selalu dapat menggeser koordinat).

Kami menyingkirkan unit imajiner dalam penyebut integran dan membagi integral menjadi bagian nyata dan imajiner:

Kami telah memperoleh dua integral lengkung dari jenis kedua.
Hitung dulu

Syarat integral tidak bergantung pada lintasan terpenuhi, oleh karena itu, integral pertama sama dengan nol dan tidak perlu menghitungnya.

Dengan bagian imajiner, trik ini tidak berfungsi. Ingatlah bahwa perbatasan kami terdiri dari segmen garis, kami mendapatkan:

Dimana i adalah ruas (xi,yi)- (xi+1,y i+1)
Mari kita hitung integral ke-i. Untuk melakukan ini, kami menulis persamaan segmen ke-i dalam bentuk parametrik

Substitusi ke integral

Dan setelah transformasi yang rumit dan membosankan, kami mendapatkan formula menawan berikut:

Akhirnya kita mendapatkan

Algoritma dalam C++:

templat <kelas T>
bool pt_in_poligon( konstan T &test,const std::vektor &poligon)
{
jika (poligon.ukuran()<3) return false;

Std::vector::const_iterator end=polygon.end();

T last_pt=poligon.back();

Last_pt.x-=test.x;
last_pt.y-=test.y;

dobel jumlah = 0,0;

untuk(
std::vector::const_iterator iter=polygon.begin();
iter!=akhir;
++ iter
{
T cur_pt=*ter;
cur_pt.x-=test.x;
cur_pt.y-=test.y;

dobel del= last_pt.x*cur_pt.y-cur_pt.x*last_pt.y;
dobel xy= cur_pt.x*last_pt.x+cur_pt.y*last_pt.y;

Jumlah+=
atan((last_pt.x*last_pt.x+last_pt.y*last_pt.y - xy)/del)+
atan((cur_pt.x*cur_pt.x+cur_pt.y*cur_pt.y-xy)/del)
);

last_pt=skr_pt;

kembali hebat(jumlah)>eps;

T - tipe titik, misalnya:
struktur titik D
{
ganda x,y;
};

Kontrol:
klik kiri - tambahkan titik kontur baru
tombol kanan - tutup kontur
kiri dengan Shift ditahan - pindahkan titik tes

Tuan-tuan, yang tertarik, saya memberikan algoritma yang lebih cepat. Bukan milikku lagi.
Terima kasih khusus untuk artikelnya.
template bool pt_in_polygon2(const T &test,const std::vektor &poligon)
{

konstanta statis int q_patt= ( (0,1), (3,2) );

Jika(poligon.ukuran()<3) return false;

Std::vector::const_iterator end=polygon.end();
T pred_pt=poligon.back();
predict_pt.x-=test.x;
pred_pt.y-=test.y;

int pred_q=q_patt;

Untuk(std::vector::const_iterator iter=polygon.begin();iter!=end;++iter)
{
T cur_pt = * iter;

Cur_pt.x-=test.x;
cur_pt.y-=test.y;

int q=q_patt;

Beralih (q-pred_q)
{
kasus -3:++w;break;
kasus 3:--w;break;
case -2:if(pred_pt.x*cur_pt.y>=pred_pt.y*cur_pt.x) ++w;break;
case 2:if(!(pred_pt.x*cur_pt.y>=pred_pt.y*cur_pt.x)) --w;break;
}

Pred_pt = titik_skr;
prediksi_q = q;

Dalam ruang dua dimensi, dua garis berpotongan hanya pada satu titik, yang diberikan oleh koordinat (x, y). Karena kedua garis melewati titik perpotongannya, koordinat (x, y) harus memenuhi kedua persamaan yang menggambarkan garis-garis ini. Dengan beberapa keterampilan tingkat lanjut, Anda dapat menemukan titik persimpangan parabola dan kurva kuadrat lainnya.

Langkah

Titik potong dua garis

    Tuliskan persamaan setiap garis, pisahkan variabel "y" di ruas kiri persamaan. Istilah lain dari persamaan harus ditempatkan pada sisi kanan persamaan. Mungkin persamaan yang diberikan kepada Anda alih-alih "y" akan berisi variabel f ​​(x) atau g (x); dalam hal ini mengisolasi variabel tersebut. Untuk mengisolasi variabel, lakukan yang sesuai operasi matematika pada kedua sisi persamaan.

    • Jika persamaan garis tidak diberikan kepada Anda, berdasarkan informasi yang Anda ketahui.
    • Contoh. Diberikan garis lurus yang dijelaskan oleh persamaan dan y 12 = 2 x (\displaystyle y-12=-2x). Untuk mengisolasi "y" dalam persamaan kedua, tambahkan angka 12 ke kedua sisi persamaan:
  1. Anda mencari titik potong kedua garis, yaitu titik yang koordinatnya (x, y) memenuhi kedua persamaan. Karena variabel "y" ada di ruas kiri setiap persamaan, ekspresi di ruas kanan setiap persamaan dapat disamakan. Tulis persamaan baru.

    • Contoh. Sebagai y = x + 3 (\displaystyle y=x+3) dan y = 12 2x (\displaystyle y=12-2x), maka persamaan berikut dapat kita tuliskan: .
  2. Temukan nilai variabel "x". Persamaan baru hanya berisi satu variabel "x". Untuk mencari "x", pisahkan variabel ini di ruas kiri persamaan dengan melakukan matematika yang sesuai di kedua ruas persamaan. Anda harus mendapatkan persamaan seperti x = __ (jika Anda tidak dapat melakukannya, lihat bagian ini).

    • Contoh. x + 3 = 12 2 x (\displaystyle x+3=12-2x)
    • Menambahkan 2x (\gaya tampilan 2x) ke setiap sisi persamaan:
    • 3x + 3 = 12 (\displaystyle 3x+3=12)
    • Kurangi 3 dari setiap sisi persamaan:
    • 3x=9 (\displaystyle 3x=9)
    • Bagilah setiap ruas persamaan dengan 3:
    • x = 3 (\gaya tampilan x=3).
  3. Gunakan nilai yang ditemukan dari variabel "x" untuk menghitung nilai variabel "y". Untuk melakukan ini, substitusikan nilai yang ditemukan "x" dalam persamaan (apa saja) garis lurus.

    • Contoh. x = 3 (\gaya tampilan x=3) dan y = x + 3 (\displaystyle y=x+3)
    • y = 3 + 3 (\displaystyle y=3+3)
    • y=6 (\gaya tampilan y=6)
  4. Periksa jawabannya. Untuk melakukannya, substitusikan nilai "x" ke persamaan garis lurus lainnya dan temukan nilai "y". Jika Anda menerima arti yang berbeda"y", periksa kebenaran perhitungan Anda.

    • Contoh: x = 3 (\gaya tampilan x=3) dan y = 12 2x (\displaystyle y=12-2x)
    • y = 12 2 (3) (\displaystyle y=12-2(3))
    • y = 12 6 (\displaystyle y=12-6)
    • y=6 (\gaya tampilan y=6)
    • Anda mendapatkan nilai "y" yang sama, jadi tidak ada kesalahan dalam perhitungan Anda.
  5. Tuliskan koordinat (x,y). Dengan menghitung nilai "x" dan "y", Anda telah menemukan koordinat titik perpotongan dua garis. Tuliskan koordinat titik potong tersebut dalam bentuk (x,y).

    • Contoh. x = 3 (\gaya tampilan x=3) dan y=6 (\gaya tampilan y=6)
    • Jadi, dua garis berpotongan di suatu titik dengan koordinat (3,6).
  6. Perhitungan dalam kasus khusus. Dalam beberapa kasus, nilai variabel "x" tidak dapat ditemukan. Tapi itu tidak berarti Anda melakukan kesalahan. Kasus khusus terjadi ketika salah satu kondisi berikut terpenuhi:

    • Jika dua garis sejajar, mereka tidak berpotongan. Dalam hal ini, variabel "x" hanya akan dikurangi, dan persamaan Anda akan berubah menjadi persamaan yang tidak berarti (misalnya, 0 = 1 (\displaystyle 0=1)). Dalam hal ini, tuliskan dalam jawaban Anda bahwa garis tidak berpotongan atau tidak ada solusi.
    • Jika kedua persamaan menggambarkan satu garis lurus, maka akan ada banyak titik potong yang tak terhingga. Dalam hal ini, variabel "x" hanya akan dikurangi, dan persamaan Anda akan berubah menjadi persamaan yang ketat (misalnya, 3 = 3 (\displaystyle 3=3)). Dalam hal ini, tuliskan dalam jawaban Anda bahwa kedua garis itu bertepatan.

    Masalah dengan fungsi kuadrat

    1. Definisi fungsi kuadrat. Dalam fungsi kuadrat, satu atau lebih variabel memiliki derajat kedua (tetapi tidak lebih tinggi), misalnya, x 2 (\gaya tampilan x^(2)) atau y 2 (\gaya tampilan y^(2)). Grafik fungsi kuadrat adalah kurva yang tidak boleh berpotongan atau berpotongan pada satu atau dua titik. Pada bagian ini, kami akan memberi tahu Anda cara menemukan titik atau titik perpotongan kurva kuadrat.

    2. Tulis ulang setiap persamaan dengan mengisolasi variabel "y" di ruas kiri persamaan. Istilah lain dari persamaan harus ditempatkan di sisi kanan persamaan.

      • Contoh. Tentukan titik potong grafik x 2 + 2 x y = 1 (\displaystyle x^(2)+2x-y=-1) dan
      • Pisahkan variabel "y" di ruas kiri persamaan:
      • dan y = x + 7 (\displaystyle y=x+7) .
      • Dalam contoh ini, Anda diberikan satu fungsi kuadrat dan satu fungsi linier. Ingatlah bahwa jika Anda diberi dua fungsi kuadrat, perhitungannya mirip dengan langkah-langkah di bawah ini.
    3. Samakan ekspresi di ruas kanan setiap persamaan. Karena variabel "y" ada di ruas kiri setiap persamaan, ekspresi di ruas kanan setiap persamaan dapat disamakan.

      • Contoh. y = x 2 + 2 x + 1 (\displaystyle y=x^(2)+2x+1) dan y = x + 7 (\displaystyle y=x+7)
    4. Pindahkan semua suku dari persamaan yang dihasilkan ke ruas kiri, dan tulis 0 di ruas kanan. Untuk melakukan ini, lakukan operasi matematika dasar. Ini akan memungkinkan Anda untuk memecahkan persamaan yang dihasilkan.

      • Contoh. x 2 + 2 x + 1 = x + 7 (\displaystyle x^(2)+2x+1=x+7)
      • Kurangi "x" dari kedua sisi persamaan:
      • x 2 + x + 1 = 7 (\displaystyle x^(2)+x+1=7)
      • Kurangi 7 dari kedua sisi persamaan:
    5. Memutuskan persamaan kuadrat. Dengan memindahkan semua suku persamaan ke ruas kiri, Anda mendapatkan persamaan kuadrat. Ini dapat diselesaikan dengan tiga cara: menggunakan rumus khusus, dan.

      • Contoh. x 2 + x 6 = 0 (\displaystyle x^(2)+x-6=0)
      • Saat memfaktorkan persamaan, Anda mendapatkan dua binomial, yang, jika dikalikan, memberikan persamaan aslinya. Dalam contoh kita, anggota pertama x 2 (\gaya tampilan x^(2)) dapat didekomposisi menjadi x*x. Buatlah entri berikut: (x)(x) = 0
      • Dalam contoh kita, intersep -6 dapat difaktorkan sebagai berikut: 6 1 (\displaystyle -6*1), 3 2 (\displaystyle -3*2), 2 3 (\displaystyle -2*3), 1 6 (\displaystyle -1*6).
      • Dalam contoh kita, suku kedua adalah x (atau 1x). Tambahkan setiap pasangan faktor intersep (-6 dalam contoh kita) hingga Anda mendapatkan 1. Dalam contoh kita, pasangan faktor intersep yang benar adalah -2 dan 3 ( 2 3 = 6 (\displaystyle -2*3=-6)), sebagai 2 + 3 = 1 (\displaystyle -2+3=1).
      • Isi celah dengan pasangan angka yang ditemukan: .
    6. Jangan lupa tentang titik potong kedua dari dua grafik. Jika Anda menyelesaikan masalah dengan cepat dan tidak terlalu hati-hati, Anda bisa melupakan titik persimpangan kedua. Berikut cara mencari koordinat "x" dari dua titik potong:

      • Contoh (pemfaktoran). Jika dalam persamaan (x 2) (x + 3) = 0 (\displaystyle (x-2)(x+3)=0) salah satu ekspresi dalam kurung akan sama dengan 0, maka seluruh persamaan akan sama dengan 0. Oleh karena itu, kita dapat menulisnya seperti ini: x 2 = 0 (\displaystyle x-2=0)x = 2 (\gaya tampilan x=2) dan x + 3 = 0 (\displaystyle x+3=0)x = 3 (\displaystyle x=-3) (yaitu, Anda menemukan dua akar persamaan).
      • Contoh (gunakan rumus atau kuadrat lengkap). Jika Anda menggunakan salah satu metode ini, solusinya akan muncul Akar pangkat dua. Misalnya, persamaan dari contoh kita akan berbentuk x = (− 1 + 25) / 2 (\displaystyle x=(-1+(\sqrt (25)))/2). Ingatlah bahwa ketika mengambil akar kuadrat, Anda akan mendapatkan dua solusi. Dalam kasus kami: 25 = 5 5 (\displaystyle (\sqrt(25))=5*5), dan 25 = (− 5) (− 5) (\displaystyle (\sqrt (25))=(-5)*(-5)). Jadi tuliskan dua persamaan dan temukan dua nilai x.
    7. Grafik berpotongan di satu titik atau tidak berpotongan sama sekali. Situasi seperti itu terjadi ketika kondisi berikut terpenuhi:

      • Jika grafik berpotongan di satu titik, maka persamaan kuadrat didekomposisi menjadi faktor yang sama, misalnya (x-1) (x-1) = 0, dan akar kuadrat dari 0 muncul dalam rumus ( 0 (\displaystyle (\sqrt(0)))). Dalam hal ini, persamaan hanya memiliki satu solusi.
      • Jika grafik tidak berpotongan sama sekali, maka persamaan tidak memfaktorkan, dan akar kuadrat dari angka negatif muncul dalam rumus (misalnya, 2 (\displaystyle (\sqrt(-2)))). Dalam hal ini, tulis dalam jawaban bahwa tidak ada solusi.
Ini adalah bagian kedua dari artikel saya yang didedikasikan untuk geometri komputasi. Saya pikir artikel ini akan lebih menarik daripada yang sebelumnya, karena teka-tekinya akan sedikit lebih sulit.

Mari kita mulai dengan posisi relatif titik relatif terhadap garis, sinar, dan segmen.

Tugas 1
Tentukan posisi relatif titik dan garis: terletak di atas garis, di atas garis, di bawah garis.

Keputusan
Jelas bahwa jika garis lurus diberikan oleh persamaannya ax + by + c = 0, maka tidak ada yang harus diselesaikan di sini. Cukup dengan mengganti koordinat titik ke dalam persamaan garis lurus dan memeriksa persamaannya. Jika lebih besar dari nol, maka titik tersebut berada pada setengah bidang atas, jika sama dengan nol, maka titik tersebut berada pada garis, dan jika lebih kecil dari nol, maka titik tersebut berada pada setengah bidang bawah. Lebih menarik adalah kasus ketika garis diberikan, yang diberikan oleh koordinat dua titik, sebut saja mereka P 1 (x 1, y 1), P 2 (x 2, y 2). Dalam hal ini, seseorang dapat dengan aman menemukan koefisien a, b, dan c dan menerapkan alasan sebelumnya. Tapi kita harus berpikir dulu, apakah kita membutuhkannya? Tentu saja tidak! Seperti yang saya katakan, produk condong hanyalah permata geometri komputasi. Mari kita terapkan. Diketahui hasil kali kemiringan dua vektor adalah positif jika rotasi dari vektor pertama ke vektor kedua berlawanan arah jarum jam, sama dengan nol jika vektor-vektornya segaris dan negatif jika rotasi searah jarum jam. Oleh karena itu, kita cukup menghitung hasil kali miring dari vektor P 1 P 2 dan P 1 M dan menarik kesimpulan berdasarkan tandanya.

Tugas #2
Tentukan apakah suatu titik termasuk sinar.

Keputusan
Mari kita ingat apa itu sinar: sinar adalah garis lurus yang dibatasi oleh sebuah titik di satu sisi dan tak terbatas di sisi lain. Artinya, sinar diberikan oleh beberapa titik awal dan setiap titik yang terletak di atasnya. Biarkan titik P 1 (x 1 , y 1) menjadi awal sinar, dan P 2 (x 2 , y 2) adalah sembarang titik yang termasuk dalam sinar. Jelas bahwa jika suatu titik termasuk dalam sinar, maka itu juga termasuk dalam garis yang melalui titik-titik ini, tetapi tidak sebaliknya. Oleh karena itu, menjadi bagian dari sebuah garis adalah syarat yang diperlukan tetapi tidak cukup untuk menjadi bagian dari sebuah sinar. Oleh karena itu, kami tidak dapat menghindari memeriksa produk miring. Untuk kondisi yang cukup, juga perlu untuk menghitung produk skalar dari vektor yang sama. Jika kurang dari nol, maka titik tersebut bukan milik sinar; jika tidak negatif, maka titik tersebut terletak pada sinar. Mengapa demikian? Mari kita lihat gambarnya.

Jadi, agar titik M(x,y) terletak pada sinar dengan titik awal P 1 (x 1 , y 1), di mana P 2 (x 2 , y 2) terletak pada sinar, diperlukan dan cukup untuk memenuhi dua syarat:

2. (P 1 P 2 , P 1 M) 0 adalah perkalian skalar (titik terletak pada sinar)

Tugas #3
Tentukan apakah suatu titik termasuk dalam segmen.

Keputusan
Biarkan titik P 1 (x 1, y 1), P 2 (x 2, y 2) menjadi ujung segmen yang diberikan. Lagi kondisi yang diperlukan Kepunyaan suatu titik terhadap suatu segmen adalah kepunyaan titik tersebut pada suatu garis lurus yang melalui P 1 , P 2 . Selanjutnya, kita perlu menentukan apakah titik tersebut terletak di antara titik P 1 dan P 2, untuk ini kita dibantu oleh produk skalar vektor hanya kali ini lainnya: (MP 1 , MP 2). Jika kurang dari atau sama dengan nol, maka titik terletak pada segmen, jika tidak maka berada di luar segmen. Mengapa demikian? Mari kita lihat gambarnya.

Jadi, agar titik M(x,y) terletak pada ruas yang ujungnya P 1 (x 1 , y 1), P 2 (x 2 , y 2) perlu dan cukup memenuhi syarat:
1. \u003d 0 - produk miring (titiknya terletak pada garis)
2. (MP 1 ,MP 2) 0 – perkalian titik (titik terletak di antara P 1 dan P 2)

Tugas #4
Posisi relatif dua titik relatif terhadap garis lurus.

Keputusan
Dalam masalah ini, perlu untuk menentukan dua titik pada satu atau di sisi berlawanan dari garis lurus.

Jika titik-titik berada pada sisi yang berlawanan dari garis lurus, maka produk miring memiliki tanda yang berbeda, jadi produknya negatif. Jika titik-titik terletak pada sisi yang sama sehubungan dengan garis lurus, maka tanda-tanda produk miring bertepatan, yang berarti bahwa produknya positif.
Jadi:
1. * < 0 – точки лежат по разные стороны.
2. * > 0 – titik-titik terletak pada sisi yang sama.
3. * = 0 - satu (atau dua) titik terletak pada garis lurus.

Omong-omong, masalah menentukan keberadaan titik persimpangan garis dan segmen diselesaikan dengan cara yang persis sama. Lebih tepatnya, ini adalah masalah yang sama: segmen dan garis lurus berpotongan ketika ujung segmen berada di sisi yang berbeda relatif terhadap garis lurus atau ketika ujung segmen terletak pada garis lurus, yaitu perlu membutuhkan * 0.

Tugas #5
Tentukan apakah dua garis berpotongan.

Keputusan
Kami akan menganggap bahwa garis tidak bertepatan. Jelas bahwa garis tidak berpotongan hanya jika mereka sejajar. Oleh karena itu, setelah menemukan kondisi paralelisme, kita dapat menentukan apakah garis-garis tersebut berpotongan.
Misalkan garis diberikan oleh persamaannya a 1 x + b 1 y + c 1 = 0 dan a 2 x + b 2 y + c 2 = 0. Maka syarat garis sejajar adalah a 1 b 2 - a 2 b 1 = 0.
Jika garis diberikan oleh titik P 1 (x 1, y 1), P 2 (x 2, y 2), M 1 (x 3, y 3), M 2 (x 4, y 4), maka kondisinya untuk paralelismenya adalah dalam memeriksa produk miring dari vektor P 1 P 2 dan M 1 M 2: jika sama dengan nol, maka garis-garisnya sejajar.

Secara umum, ketika garis diberikan oleh persamaannya, kami juga memeriksa produk miring dari vektor (-b 1 , a 1), (-b 2 , a 2) yang disebut vektor arah.

Tugas #6
Tentukan apakah dua segmen garis berpotongan.

Keputusan
Ini adalah tugas yang sangat saya sukai. Segmen berpotongan ketika ujung setiap segmen terletak pada sisi yang berlawanan dari segmen lainnya. Mari kita lihat gambarnya:

Jadi, kita perlu memeriksa bahwa ujung masing-masing segmen terletak pada sisi yang berlawanan dari ujung relatif segmen lainnya. Kami menggunakan produk miring dari vektor. Lihat gambar pertama: > 0,< 0 => * < 0. Аналогично
* < 0. Вы наверно думаете, почему не меньше либо равно. А потому, что возможен следующий случай, при котором векторное произведение как раз и равно нулю, но отрезки не пересекаются:

Oleh karena itu, kita perlu melakukan satu pemeriksaan lagi, yaitu: apakah setidaknya satu ujung setiap segmen milik yang lain (milik titik segmen). Kami telah memecahkan masalah ini.

Jadi, agar segmen memiliki poin yang sama, perlu dan cukup:
1. Ujung segmen terletak pada sisi yang berbeda relatif terhadap segmen lain.
2. Setidaknya salah satu ujung dari satu segmen milik segmen lain.

Tugas #7
Jarak dari titik ke garis.

Keputusan
Biarkan garis diberikan oleh dua titik P 1 (x 1, y 1) dan P 2 (x 2, y 2).

Pada artikel sebelumnya, kita berbicara tentang fakta bahwa produk miring geometris adalah area berorientasi jajar genjang, jadi S P 1 P 2 M = 0,5*. Di sisi lain, setiap siswa mengetahui rumus untuk menemukan luas segitiga: setengah alas kali tinggi.
S P 1 P 2 M \u003d 0,5 * j * P 1 P 2.
Menyamakan daerah-daerah ini, kami menemukan

Modulo diambil karena berorientasi pada area pertama.

Jika garis diberikan oleh persamaan ax + by + c = 0, maka persamaan garis yang melalui titik M tegak lurus terhadap garis yang diberikan adalah: a (y - y 0) - b (x - x 0) = 0. Sekarang Anda dapat dengan mudah menyelesaikan sistem dari persamaan yang diperoleh, menemukan titik persimpangannya dan menghitung jarak dari titik awal ke yang ditemukan: itu akan menjadi tepat = (ax 0 + oleh 0 + c) / (a 2 + b 2).

Tugas #8
Jarak dari titik ke balok.

Keputusan
Masalah ini berbeda dari yang sebelumnya dalam hal ini dapat terjadi, sehingga tegak lurus dari titik tidak jatuh pada sinar, tetapi jatuh pada kelanjutannya.

Dalam kasus ketika garis tegak lurus tidak jatuh pada sinar, perlu untuk menemukan jarak dari titik ke awal sinar - ini akan menjadi jawaban untuk masalah tersebut.

Bagaimana menentukan apakah garis tegak lurus jatuh pada sinar atau tidak? Jika garis tegak lurus tidak jatuh pada sinar, maka sudut MP 1 P 2 tumpul, selain itu lancip (lurus). Oleh karena itu, dengan tanda produk skalar vektor, kita dapat menentukan apakah garis tegak lurus jatuh pada sinar atau tidak:
1. (P 1 M, P 1 P 2)< 0 перпендикуляр не попадает на луч
2. (P 1 M, P 1 P 2) 0 tegak lurus menumbuk sinar

Tugas #9
Jarak dari titik ke garis.

Keputusan
Kami berdebat mirip dengan masalah sebelumnya. Jika tegak lurus tidak jatuh pada segmen, maka jawabannya adalah jarak minimum dari titik yang diberikan ke ujung segmen.

Untuk menentukan apakah tegak lurus jatuh pada segmen, perlu, dengan analogi dengan tugas sebelumnya, menggunakan produk skalar vektor. Jika tegak lurus tidak jatuh pada segmen, maka sudut MP 1 P 2 atau sudut MP 2 P 1 akan tumpul. Oleh karena itu, sesuai dengan tanda produk skalar kita dapat menentukan apakah tegak lurus jatuh pada segmen atau tidak:
Jika (P 1 M, P 1 P 2)< 0 или (P 2 M, P 2 P 1) < 0 то перпендикуляр не падает на отрезок.

Tugas #10
Tentukan jumlah titik pada garis dan lingkaran.

Keputusan
Garis dan lingkaran dapat memiliki titik potong nol, satu atau dua. Mari kita lihat gambar-gambarnya:

Di sini, dari gambar, semuanya jelas. Kami memiliki dua titik persimpangan jika jarak dari pusat lingkaran ke garis kurang dari jari-jari lingkaran. Satu titik kontak jika jarak dari pusat ke garis sama dengan jari-jari. Dan terakhir, tidak ada titik potong jika jarak dari pusat lingkaran ke garis lurus lebih besar dari jari-jari lingkaran. Karena masalah menemukan jarak dari suatu titik ke garis telah diselesaikan oleh kami, masalah ini juga telah diselesaikan.

Tugas #11
Susunan dua lingkaran bersama.

Keputusan
Kemungkinan kasus pengaturan lingkaran: berpotongan, menyentuh, tidak berpotongan.

Pertimbangkan kasus ketika lingkaran berpotongan dan temukan luas persimpangannya. Saya sangat menyukai masalah ini, karena saya menghabiskan cukup banyak waktu untuk menyelesaikannya (sudah lama sekali - di tahun pertama).




Sekarang mari kita mengingat kembali apa itu sektor dan segmen.

Perpotongan lingkaran terdiri dari dua ruas O 1 AB dan O 2 AB.

Tampaknya perlu untuk menjumlahkan area segmen ini dan hanya itu. Namun, semuanya tidak begitu sederhana. Penting juga untuk menentukan apakah rumus-rumus ini selalu benar. Ternyata tidak!

Pertimbangkan kasus ketika pusat lingkaran kedua O 2 bertepatan dengan titik C. Dalam hal ini, d 2 = 0, dan kita ambil = untuk nilai . Dalam hal ini, kita memiliki setengah lingkaran dengan luas 1/2 R 2 2 .

Sekarang perhatikan kasus ketika pusat lingkaran kedua O 2 berada di antara titik O 1 dan C. Dalam hal ini, kita memperoleh nilai negatif dari d 2 . Menggunakan nilai negatif dari d 2 menghasilkan nilai negatif sebuah. Dalam hal ini, perlu untuk menambahkan 2π ke untuk jawaban yang benar.

Kesimpulan
Itu dia. Kami belum mempertimbangkan semua, tetapi masalah geometri komputasi yang paling umum mengenai posisi relatif objek.

Saya harap Anda menyukainya.

Untuk memecahkan masalah, kami membaginya menjadi beberapa tahap berikut:

  1. Pertimbangan masalah dari sisi ruang multidimensi.
  2. Pertimbangan masalah dari sisi ruang dua dimensi.
  3. Perhitungan jumlah titik potong.

Pertimbangan masalah dari sisi ruang multidimensi

Katakanlah garis-garis itu berada dalam ruang tiga dimensi, maka mereka mungkin tidak sejajar satu sama lain di salah satu bidang dan berdiri terpisah satu sama lain di bidang lainnya. Ini berarti bahwa garis-garis tersebut akan berpasangan non-paralel dan tidak akan memiliki titik potong.

Pertimbangan masalah dari sisi ruang dua dimensi

Dalam ruang dua dimensi (bidang) dua garis tidak sejajar, yang berarti bahwa mereka harus memiliki satu dan hanya satu titik perpotongan. Dengan syarat, garis tidak melewati satu titik persimpangan (umum), oleh karena itu, karena garis tidak sejajar berpasangan, masing-masing harus memotong yang tersisa.

Perhitungan jumlah titik potong

Saat menambahkan garis non-paralel baru ke pesawat, titik persimpangan dengan garis-garis yang telah diplot pada pesawat akan ditambahkan. Oleh karena itu, dua garis memberikan 1 titik persimpangan. Dengan menambahkan garis ketiga, kita mendapatkan 2 titik perpotongan lagi dengan dua garis yang sudah digambar; menambahkan garis lurus keempat, kita mendapatkan 3 titik persimpangan lagi; kelima - 4 titik persimpangan lagi. Jadi, secara total kita mendapatkan:

1 + 2 + 3 + 4 = 10 titik potong

Jawaban: 1) ruang multidimensi - 0 titik persimpangan; 2) ruang dua dimensi - 10 titik persimpangan.

Dua garis memiliki satu titik perpotongan. Dengan menambahkan satu garis lagi ke mereka, kita mendapatkan 2 titik perpotongan lagi dengan masing-masing dari dua garis ini. Dengan menambahkan satu garis lagi, itu juga akan memberikan titik persimpangan sebanyak garis yang sudah ada, yaitu. 3 lagi. Dan seterusnya. Setiap garis ke-n memberikan tambahan (n-1) titik potong dengan (n-1) garis.

1 + 2 + 3 + 4 = 10

Semua pernyataan di atas benar jika tidak ada 3 garis yang memiliki 1 titik perpotongan yang sama.

Namun, jika garis-garis tersebut dapat berpotongan pada satu titik, tetapi tidak sekaligus, maka dengan menempatkan 4 garis dengan bintang, kita memiliki 1 titik perpotongannya, dan dengan menambahkan garis ke-5 kita mendapatkan 4 titik lagi. Dalam hal ini, 5 garis akan memiliki 5 titik perpotongan yang sama.

Jawaban: 10 titik perpotongan akan dibentuk oleh 5 garis yang tidak sejajar jika lebih dari 2 garis tidak berpotongan di satu titik. Atau 5 titik potong jika lebih dari dua garis dapat berpotongan di satu titik.

Memuat...Memuat...