4.1 Fungsi vs persamaan

4.1.1 Dari Persamaan ke Nol Fungsi Bentuk umum dari masalah yang biasanya digunakan dalam perhitungan numerik di komputer adalah bahwa persamaan yang akan diselesaikan benar-benar merupakan fungsi yang akan dibalik. Artinya, untuk perhitungan numerik, masalahnya harus dinyatakan seperti ini:

Anda memiliki fungsi . Anda kebetulan mengetahui bentuk fungsi dan nilai keluaran untuk beberapa nilai masukan yang tidak diketahui . Masalah Anda adalah menemukan input yang diberikan fungsi dan nilai output . f(x)fkamuxxfkamu

Salah satu cara untuk menyelesaikan masalah tersebut adalah dengan mencari invers f.

library(mosaicCalc)
## Loading required package: mosaic
## Registered S3 method overwritten by 'mosaic':
##   method                           from   
##   fortify.SpatialPolygonsDataFrame ggplot2
## 
## The 'mosaic' package masks several functions from core packages in order to add 
## additional features.  The original behavior of these functions should not be affected by this.
## 
## Attaching package: 'mosaic'
## The following objects are masked from 'package:dplyr':
## 
##     count, do, tally
## The following object is masked from 'package:Matrix':
## 
##     mean
## The following object is masked from 'package:ggplot2':
## 
##     stat
## The following objects are masked from 'package:stats':
## 
##     binom.test, cor, cor.test, cov, fivenum, IQR, median, prop.test,
##     quantile, sd, t.test, var
## The following objects are masked from 'package:base':
## 
##     max, mean, min, prod, range, sample, sum
## Loading required package: mosaicCore
## 
## Attaching package: 'mosaicCore'
## The following objects are masked from 'package:dplyr':
## 
##     count, tally
## 
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
## 
##     D

Jika Anda dapat memplot fungsi untuk rentang , Anda dapat dengan mudah menemukan nolnya.

g <- makeFun(sin(x^2)*cos(sqrt(x^4 + 3 )-x^2) - x + 1 ~ x)
slice_plot(g(x) ~ x, domain(x = -3:3)) %>%
  gf_hline(yintercept  = 0, color = "red")

bisa mendapatkan lebih banyak detail dengan memperbesar sekitar solusi perkiraan: kamux = 1x = 2

slice_plot(g(x) ~ x, domain(x=1:2)) %>%
  gf_hline(yintercept = 0, color = "red")

x=1.6

findZeros(g(x) ~ x, xlim = range(1, 2))
##        x
## 1 1.5576

gambaran tentang solusi:

findZeros(g(x) ~ x, xlim = range(-1000,  1000))
##        x
## 1 1.5576

4.1.2 Beberapa solusi Fungsi findZeros( )akan mencoba menemukan beberapa solusi jika ada. Misalnya, persamaan memiliki jumlah solusi tak terhingga.

findZeros( sin(x) - 0.35 ~ x, xlim=range(-20,20) )
##           x
## 1  -12.2088
## 2   -9.7823
## 3   -5.9256
## 4   -3.4991
## 5    0.3576
## 6    2.7840
## 7    6.6407
## 8    9.0672
## 9   12.9239
## 10  15.3504

4.1.3 Menyiapkan Masalah Seperti namanya, findZeros( )menemukan fungsi nol. Anda dapat mengatur masalah solusi apa pun dalam formulir ini. Misalnya, Anda ingin menyelesaikan untuk , dengan membiarkan parameter.

g <- makeFun(4 + exp(k*t) - 2^(b*t) ~ b, k=0.00035, t=1)
findZeros( g(b) ~ b , xlim=range(-1000, 1000) )
##       b
## 1 2.322
findZeros( g(b, t=2) ~ b, xlim=range(-1000,1000) )
##        b
## 1 1.1611

4.1.4 Latihan 1. Selesaikan persamaan untuk . {0.0000,0.1328, 0.2098 ,0.3654,0.4217} dosa(karena(x2)−x)−x=0,5x jawab :

findZeros( sin(cos(x^2) - x) -x - 0.5 ~ x, xlim=range(-10,10))
##        x
## 1 0.2098
  1. Temukan sembarang nol dari fungsi yang berada di antara dan . 3e−t/5dosa(2π2t)t=t=10 a.Tidak ada nol dalam interval itu.} b.Tidak ada nol sama sekali!} c.$ 2, 4, 6, 8\(} d.\) 1, 3, 5, 7, 9$} e.{ } 1,2,3,4,5,6,7,8,9 jawab:
findZeros( 3*exp(-t/5)*sin(pi*t) ~ t, xlim=range(1,10))
##    t
## 1  0
## 2  1
## 3  2
## 4  3
## 5  4
## 6  5
## 7  6
## 8  7
## 9  8
## 10 9

Latihan3. Gunakan findZeros()untuk menemukan nol dari masing-masing polinomial ini: 1. 3x2+7x−10 jawab:

findZeros( 3*x^2 + 7*x - 10 ~ x, xlim=range(-100,100))
##         x
## 1 -3.3334
## 2  1.0000
  1. 4x^2-2x+20
findZeros(2*x^3 - 4*x^2 - 3*x - 10 ~ x, xlim=c(-10,10))
##        x
## 1 3.0363
  1. 7x4-2x3-4x^2-3x-10
findZeros( 7*x^4 -2*x^3 - 4*x^2 - 3*x - 10 ~ x, xlim=c(-10,10))
##         x
## 1 -1.0628
## 2  1.4123
  1. 6x5-7x4-2x3-4x2-3x-10
findZeros( 6*x^5-7*x^4 -2*x^3 - 4*x^2 - 3*x - 10 ~ x, xlim=c(-10,10))
##        x
## 1 1.8012