Numerical Zero Finding

Dalam buku ini, kita akan menggunakan fungsi R/mosaik Zeros(). Argumen pertama adalah ekspresi gelombang laut dan argumen kedua adalah interval domain yang akan dicari.

Zeros()diatur untuk mencari masukan di mana fungsi yang didefinisikan dalam ekspresi gelombang laut menghasilkan nol sebagai keluaran. Tapi misalkan Anda sedang menghadapi masalah seperti f(x)=10? Anda dapat memodifikasi ekspresi tilde sehingga mengimplementasikan fungsi yang sedikit berbeda: f(x)-10.Jika kita dapat menemukannya x0 seperti yang f(x0) seperti yang f(x)-10=0, itu juga akan menjadi x0 memuaskan f(x)=10.

Inti dari contoh ini adalah untuk menunjukkan cara menggunakan Zeros(), jadi kita akan mendefinisikan suatu fungsi f(x) menggunakan rfun()dari R/mosaik. Ini membangun suatu fungsi dengan mengambil kombinasi linier dari fungsi-fungsi lain yang dipilih secara acak. Argumennya seed=579menentukan fungsi mana yang akan berada dalam kombinasi linier.

f <- rfun( ~ x, seed=579)

Kami ingin mencari angka nol dari fungsi tersebut f(x)-10 yang sesuai dengan penyelesaian f(x)=10.

Zeros(f(x) - 10 ~ x, bounds(x=-4:4))
## # A tibble: 2 × 2
##         x      .output.
##     <dbl>         <dbl>
## 1 -2.92   -0.0000000344
## 2  0.0795 -0.00000118
## # A tibble: 2 × 2
##         x      .output.
##     <dbl>         <dbl>
## 1 -2.92   -0.0000000344
## 2  0.0795 -0.00000118

Keluaran yang dihasilkan Zeros()berupa bingkai data dengan satu baris untuk masing-masingnya x0 ditemukan. Di sini, dua nilai ditemukan : x0=-2.92 dan x0 0.0795. Kolom .output melaporkan f(x0) yang seharusnya nol. Tidak selalu mungkin untuk mencapai angka nol secara tepat, karena aritmatika komputer tidak selalu tepat. Pikirkan Zeros() sebagai cara untuk menyempurnakan jawaban yang Anda temukan secara grafis. Jadi sebelum menggunakan Zeros(), buatlah grafiknya.

slice_plot(f(x) ~ x, bounds(x=-4:4)) %>%
  gf_hline(yintercept = ~ 10, color="magenta")