Advertisement
Guest User

Untitled

a guest
Feb 20th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. L = 8
  2. f <- function(x) {
  3. return(exp(1)^(-(x^2)))
  4. }
  5.  
  6. a <- function(n) {
  7. g <- function(x) {
  8. return(cos(n * 2 * pi / L * x) * f(x))
  9. }
  10. return(2/L * integrate(g, -L/2, L/2)$val)
  11. }
  12.  
  13. b <- function(n) {
  14. g <- function(x) {
  15. return(sin(n * 2 * pi / L * x) * f(x))
  16. }
  17. return(2/L * integrate(g, -L/2, L/2)$val)
  18. }
  19.  
  20. a0 = 1/L * integrate(f, -L/2, L/2)$val
  21. M = 2
  22. H <- function(x) {
  23. val <- a0
  24. for (n in 1:M) {
  25. val = val + a(n) * cos(n * 2 * pi / L * x) + b(n) * sin(n * 2 * pi / L * x)
  26. }
  27. return(val)
  28. }
  29. cat(c("a 0: ", a0, "\n"))
  30. for (i in 1:10) {
  31. cat(c("a", i, ": ", a(i), "\n"))
  32. }
  33. for (i in 1:10) {
  34. cat(c("b", i, ": ", b(i), "\n"))
  35. }
  36. vals = c(2, 6, 10)
  37. for (v in vals) {
  38. M = v
  39. png(paste('m', v, '.png', sep=''))
  40. curve(H, -L/2, L/2)
  41. }
  42. png('minf.png')
  43. curve(f, -L/2, L/2)
  44. png('m6diff.png')
  45. M = 6
  46. diff <- function(x) {
  47. f(x) - H(x)
  48. }
  49. curve(diff, -L/2, L/2)
  50. png('m10diff.png')
  51. M = 10
  52. curve(diff, -L/2, L/2)
  53.  
  54. av <- c(a(1))
  55. bv <- c(b(1))
  56. nv <- c(1)
  57. for (i in 2:10) {
  58. av <- append(av, a(i))
  59. bv <- append(bv, b(i))
  60. nv <- append(nv, i)
  61. }
  62.  
  63. png('abplot.png')
  64. plot(nv, av, col="red")
  65. points(nv, bv, col="green")
  66.  
  67. f <- function(x) {
  68. return((exp(1)^(-x^2)) * (1/2 * sin(4 * pi / L * x) + 1/2 * cos(6 * pi / L * x)))
  69. }
  70. a <- function(n) {
  71. g <- function(x) {
  72. return(cos(n * 2 * pi / L * x) * f(x))
  73. }
  74. return(2/L * integrate(g, -L/2, L/2)$val)
  75. }
  76.  
  77. b <- function(n) {
  78. g <- function(x) {
  79. return(sin(n * 2 * pi / L * x) * f(x))
  80. }
  81. return(2/L * integrate(g, -L/2, L/2)$val)
  82. }
  83.  
  84. a0 = 1/L * integrate(f, -L/2, L/2)$val
  85. M = 2
  86. H <- function(x) {
  87. val <- a0
  88. for (n in 1:M) {
  89. val = val + a(n) * cos(n * 2 * pi / L * x) + b(n) * sin(n * 2 * pi / L * x)
  90. }
  91. return(val)
  92. }
  93.  
  94. cat(c("a 0: ", a0, "\n"))
  95. for (i in 1:10) {
  96. cat(c("a", i, ": ", a(i), "\n"))
  97. }
  98. for (i in 1:10) {
  99. cat(c("b", i, ": ", b(i), "\n"))
  100. }
  101. vals = c(2, 6, 10)
  102. for (v in vals) {
  103. M = v
  104. png(paste('m2', v, '.png', sep=''))
  105. curve(H, -L/2, L/2)
  106. }
  107. png('m2inf.png')
  108. curve(f, -L/2, L/2)
  109.  
  110.  
  111. curve(f, -L/2, L/2)
  112. png('m26diff.png')
  113. M = 6
  114. diff <- function(x) {
  115. f(x) - H(x)
  116. }
  117. curve(diff, -L/2, L/2)
  118. png('m210diff.png')
  119. M = 10
  120. curve(diff, -L/2, L/2)
  121.  
  122. av <- c(a(1))
  123. bv <- c(b(1))
  124. nv <- c(1)
  125. for (i in 2:10) {
  126. av <- append(av, a(i))
  127. bv <- append(bv, b(i))
  128. nv <- append(nv, i)
  129. }
  130.  
  131. png('abplot2.png')
  132. plot(nv, av, col="red")
  133. points(nv, bv, col="green")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement