993

Методы поиска минимума функции на отрезке. Программная реализация

Курсовая

Информатика, кибернетика и программирование

Нахождение минимума функции на заданном отрезке - одна из простейших задач в разделе численных методов анализа. Существует множество различных способов определения минимума функции с разным количеством итераций и уровнем определения точности. Так же возможно комбинировать некоторые способы для достижения большей эффективности алгоритма.

Русский

2013-01-06

579.5 KB

290 чел.

Санкт-Петербургский

Государственный Университет

Факультет Прикладной Математики - Процессов Управления

Курсовая работа по технологии программирования

на тему: “ Методы поиска минимума функции на отрезке. Программная реализация”

                    

                                        Выполнил:

студент 1 курса 161 группы

Жуков Н.К.

                                 Руководитель:

Кривцов А.Н.

Санкт-Петербург. 2007г.

Содеожание:

  1.  Введение…………………………………………………………………. стр.3
  2.  Метод пассивного поиска...……………………………………………...стр.4
  3.  Метод половинного деления (дихотомии)……………………………...стр.5
  4.  Метод золотого сечения …………………………………………………стр.6
  5.  Метод Фибоначчи…………………………………………………………стр.8
  6.  Метод парабол…………...……………………………………………… стр.10
  7.  Таблицы промежуточных значений…………………………………….стр.12
  8.  Заключение……………………………………………………………….стр.18
  9.  Список литературы……………………………………………………….стр.19
  10.   Приложение………………………………………………………………стр.20

Введение

Нахождение минимума функции на заданном отрезке -  одна из простейших задач в разделе численных методов анализа. Существует множество различных способов определения минимума функции с разным количеством итераций и уровнем определения точности. Так же возможно комбинировать некоторые способы для достижения большей эффективности алгоритма. В этой работе будет рассмотрено пять классических примеров нахождения минимума функции: метод пассивного поиска, дихотомии, золотого сечения, Фибоначчи, и метод парабол. Нам предстоит выяснить какой же из этих способов наиболее эффективен при конкретной задаче.

Метод пассивного поиска

Метод половинного деления (дихотомии)

Метод золотого сечения

Метод Фибоначчи

Метод парабол

Существенное уменьшение числа итераций для вычислений минимума с высокой точностью даёт метод парабол. Хотя он и является наиболее трудоёмким в расчётах и выполнении, при использовании этого метода число шагов оказывается меньше, чем у остальных методов поиска.

Цель этого метода – найти параболу, максимально близко проходящую от графика исследуемой функции вблизи точки, подозрительной на минимум. Найти минимум функции, графиком которой является парабола, намного проще, чем для более сложных функций: минимум параболы совпадает с её вершиной, а вершину параболы совсем нетрудно найти с помощью средств математического анализа.

В этом методе парабола будет проходить через три заданные точки: любые близкие к минимуму точки из предыдущих методов. Сравнивая значения в точках экстремума параболы, можно предположить, какой из них наиболее близок к точке, в которой функция имеет минимальное на отрезке значение.

Каждое последующее приближение можно вычислять по формулам, приведённым ниже:

где  - три точки приближения

Мы будем строить параболу, соответствующую графику функции , начальные значения С0, С1, С2 могут быть вычислены по формулам:

где  - три точки приближения. Равенства имеют место в силу теоремы о среднем Лагранжа и выбора точек, через которые пройдёт парабола.

Метод пассивного поиска

 -----------------------------

 Ит|         x        |

  0 | -5.000  |  28.413159 |

  1 | -4.990  |  27.674924 |

  2 | -4.980  |  26.948390 |

  3 | -4.970  |  26.233414 |

  4 | -4.960  |  25.529860 |

  5 | -4.950  |  24.837589 |

  6 | -4.940  |  24.156466 |

  7 | -4.930  |  23.486355 |

  8 | -4.920  |  22.827125 |

  9 | -4.910  |  22.178643 |

 10 | -4.900  |  21.540780 |

 11 | -4.890  |  20.913405 |

 12 | -4.880  |  20.296392 |

 13 | -4.870  |  19.689614 |

 14 | -4.860  |  19.092946 |

 15 | -4.850  |  18.506265 |

 16 | -4.840  |  17.929448 |

 17 | -4.830  |  17.362374 |

 18 | -4.820  |  16.804923 |

 19 | -4.810  |  16.256977 |

 20 | -4.800  |  15.718418 |

 21 | -4.790  |  15.189130 |

 22 | -4.780  |  14.668998 |

 23 | -4.770  |  14.157909 |

 24 | -4.760  |  13.655750 |

 25 | -4.750  |  13.162410 |

 26 | -4.740  |  12.677778 |

 27 | -4.730  |  12.201745 |

 28 | -4.720  |  11.734205 |

 29 | -4.710  |  11.275049 |

 30 | -4.700  |  10.824172 |

 31 | -4.690  |  10.381471 |

 32 | -4.680  |  9.946841 |

 33 | -4.670  |  9.520179 |

 34 | -4.660  |  9.101386 |

 35 | -4.650  |  8.690361 |

 36 | -4.640  |  8.287004 |

 37 | -4.630  |  7.891217 |

 38 | -4.620  |  7.502904 |

 39 | -4.610  |  7.121969 |

 40 | -4.600  |  6.748316 |

 41 | -4.590  |  6.381851 |

 42 | -4.580  |  6.022482 |

 43 | -4.570  |  5.670117 |

 44 | -4.560  |  5.324664 |

 45 | -4.550  |  4.986033 |

 46 | -4.540  |  4.654136 |

 

47 | -4.530  |  4.328884 |

 48 | -4.520  |  4.010190 |

 49 | -4.510  |  3.697968 |

 50 | -4.500  |  3.392131 |

 51 | -4.490  |  3.092597 |

 52 | -4.480  |  2.799281 |

 53 | -4.470  |  2.512100 |

 54 | -4.460  |  2.230973 |

 55 | -4.450  |  1.955819 |

 56 | -4.440  |  1.686558 |

 57 | -4.430  |  1.423110 |

 58 | -4.420  |  1.165397 |

 59 | -4.410  |  0.913343 |

 60 | -4.400  |  0.666869 |

 61 | -4.390  |  0.425900 |

 62 | -4.380  |  0.190361 |

 63 | -4.370  |  -0.039821 |

 64 | -4.360  |  -0.264722 |

 65 | -4.350  |  -0.484412 |

 66 | -4.340  |  -0.698965 |

 67 | -4.330  |  -0.908450 |

 68 | -4.320  |  -1.112940 |

 69 | -4.310  |  -1.312502 |

 70 | -4.300  |  -1.507206 |

 71 | -4.290  |  -1.697121 |

 72 | -4.280  |  -1.882312 |

 73 | -4.270  |  -2.062847 |

 74 | -4.260  |  -2.238793 |

 75 | -4.250  |  -2.410213 |

 76 | -4.240  |  -2.577172 |

 77 | -4.230  |  -2.739735 |

 78 | -4.220  |  -2.897964 |

 79 | -4.210  |  -3.051921 |

 80 | -4.200  |  -3.201669 |

 81 | -4.190  |  -3.347268 |

 82 | -4.180  |  -3.488779 |

 83 | -4.170  |  -3.626261 |

 84 | -4.160  |  -3.759773 |

 85 | -4.150  |  -3.889375 |

 86 | -4.140  |  -4.015123 |

 87 | -4.130  |  -4.137074 |

 88 | -4.120  |  -4.255286 |

 89 | -4.110  |  -4.369813 |

 90 | -4.100  |  -4.480712 |

 91 | -4.090  |  -4.588037 |

 92 | -4.080  |  -4.691842 |

 93 | -4.070  |  -4.792180 |

 94 | -4.060  |  -4.889105 |

 95 | -4.050  |  -4.982668 |

 96 | -4.040  |  -5.072921 |

 97 | -4.030  |  -5.159916 |

 

98 | -4.020  |  -5.243702 |

 99 | -4.010  |  -5.324330 |

100 | -4.000  |  -5.401850 |

101 | -3.990  |  -5.476310 |

102 | -3.980  |  -5.547758 |

103 | -3.970  |  -5.616242 |

104 | -3.960  |  -5.681810 |

105 | -3.950  |  -5.744508 |

106 | -3.940  |  -5.804383 |

107 | -3.930  |  -5.861479 |

108 | -3.920  |  -5.915843 |

109 | -3.910  |  -5.967519 |

110 | -3.900  |  -6.016551 |

111 | -3.890  |  -6.062982 |

112 | -3.880  |  -6.106857 |

113 | -3.870  |  -6.148217 |

114 | -3.860  |  -6.187105 |

115 | -3.850  |  -6.223562 |

116 | -3.840  |  -6.257630 |

117 | -3.830  |  -6.289349 |

118 | -3.820  |  -6.318760 |

119 | -3.810  |  -6.345902 |

120 | -3.800  |  -6.370816 |

121 | -3.790  |  -6.393539 |

122 | -3.780  |  -6.414110 |

123 | -3.770  |  -6.432568 |

124 | -3.760  |  -6.448950 |

125 | -3.750  |  -6.463293 |

126 | -3.740  |  -6.475634 |

127 | -3.730  |  -6.486009 |

128 | -3.720  |  -6.494454 |

129 | -3.710  |  -6.501004 |

130 | -3.700  |  -6.505696 |

131 | -3.690  |  -6.508562 |

132 | -3.680  |  -6.509638 |

133 | -3.670  |  -6.508957 |

134 | -3.660  |  -6.506553 |

135 | -3.650  |  -6.502459 |

136 | -3.640  |  -6.496707 |

137 | -3.630  |  -6.489330 |

138 | -3.620  |  -6.480360 |

139 | -3.610  |  -6.469828 |

140 | -3.600  |  -6.457766 |

141 | -3.590  |  -6.444203 |

142 | -3.580  |  -6.429171 |

143 | -3.570  |  -6.412700 |

144 | -3.560  |  -6.394819 |

145 | -3.550  |  -6.375558 |

146 | -3.540  |  -6.354945 |

147 | -3.530  |  -6.333009 |

148 | -3.520  |  -6.309780 |

149 | -3.510  |  -6.285283 |

150 | -3.500  |  -6.259548 |

151 | -3.490  |  -6.232601 |

152 | -3.480  |  -6.204470 |

153 | -3.470  |  -6.175181 |

154 | -3.460  |  -6.144759 |

155 | -3.450  |  -6.113233 |

156 | -3.440  |  -6.080626 |

157 | -3.430  |  -6.046964 |

158 | -3.420  |  -6.012273 |

159 | -3.410  |  -5.976577 |

160 | -3.400  |  -5.939900 |

161 | -3.390  |  -5.902267 |

162 | -3.380  |  -5.863701 |

163 | -3.370  |  -5.824226 |

164 | -3.360  |  -5.783865 |

165 | -3.350  |  -5.742641 |

166 | -3.340  |  -5.700577 |

167 | -3.330  |  -5.657695 |

168 | -3.320  |  -5.614017 |

169 | -3.310  |  -5.569566 |

170 | -3.300  |  -5.524361 |

171 | -3.290  |  -5.478425 |

172 | -3.280  |  -5.431779 |

173 | -3.270  |  -5.384444 |

174 | -3.260  |  -5.336439 |

175 | -3.250  |  -5.287785 |

176 | -3.240  |  -5.238502 |

177 | -3.230  |  -5.188610 |

178 | -3.220  |  -5.138128 |

179 | -3.210  |  -5.087075 |

180 | -3.200  |  -5.035470 |

181 | -3.190  |  -4.983332 |

182 | -3.180  |  -4.930678 |

183 | -3.170  |  -4.877529 |

184 | -3.160  |  -4.823900 |

185 | -3.150  |  -4.769810 |

186 | -3.140  |  -4.715277 |

187 | -3.130  |  -4.660317 |

188 | -3.120  |  -4.604948 |

189 | -3.110  |  -4.549187 |

190 | -3.100  |  -4.493049 |

191 | -3.090  |  -4.436551 |

192 | -3.080  |  -4.379710 |

193 | -3.070  |  -4.322540 |

194 | -3.060  |  -4.265059 |

195 | -3.050  |  -4.207281 |

196 | -3.040  |  -4.149221 |

197 | -3.030  |  -4.090894 |

198 | -3.020  |  -4.032316 |

199 | -3.010  |  -3.973501 |

200 | -3.000  |  -3.914463 |

201 | -2.990  |  -3.855217 |

202 | -2.980  |  -3.795775 |

203 | -2.970  |  -3.736153 |

204 | -2.960  |  -3.676364 |

205 | -2.950  |  -3.616421 |

206 | -2.940  |  -3.556338 |

207 | -2.930  |  -3.496127 |

208 | -2.920  |  -3.435801 |

209 | -2.910  |  -3.375372 |

210 | -2.900  |  -3.314855 |

211 | -2.890  |  -3.254259 |

212 | -2.880  |  -3.193599 |

213 | -2.870  |  -3.132885 |

214 | -2.860  |  -3.072129 |

215 | -2.850  |  -3.011343 |

216 | -2.840  |  -2.950538 |

217 | -2.830  |  -2.889726 |

218 | -2.820  |  -2.828917 |

219 | -2.810  |  -2.768123 |

220 | -2.800  |  -2.707353 |

221 | -2.790  |  -2.646619 |

222 | -2.780  |  -2.585931 |

223 | -2.770  |  -2.525299 |

224 | -2.760  |  -2.464733 |

225 | -2.750  |  -2.404243 |

226 | -2.740  |  -2.343839 |

227 | -2.730  |  -2.283530 |

228 | -2.720  |  -2.223326 |

229 | -2.710  |  -2.163235 |

230 | -2.700  |  -2.103268 |

231 | -2.690  |  -2.043433 |

232 | -2.680  |  -1.983739 |

233 | -2.670  |  -1.924194 |

234 | -2.660  |  -1.864807 |

235 | -2.650  |  -1.805586 |

236 | -2.640  |  -1.746540 |

237 | -2.630  |  -1.687677 |

238 | -2.620  |  -1.629004 |

239 | -2.610  |  -1.570530 |

240 | -2.600  |  -1.512262 |

241 | -2.590  |  -1.454207 |

242 | -2.580  |  -1.396374 |

243 | -2.570  |  -1.338769 |

244 | -2.560  |  -1.281399 |

245 | -2.550  |  -1.224271 |

246 | -2.540  |  -1.167393 |

247 | -2.530  |  -1.110771 |

248 | -2.520  |  -1.054411 |

249 | -2.510  |  -0.998321 |

250 | -2.500  |  -0.942506 |

251 | -2.490  |  -0.886973 |

252 | -2.480  |  -0.831728 |

253 | -2.470  |  -0.776776 |

254 | -2.460  |  -0.722124 |

255 | -2.450  |  -0.667778 |

256 | -2.440  |  -0.613743 |

257 | -2.430  |  -0.560025 |

258 | -2.420  |  -0.506629 |

259 | -2.410  |  -0.453560 |

260 | -2.400  |  -0.400824 |

261 | -2.390  |  -0.348425 |

262 | -2.380  |  -0.296369 |

263 | -2.370  |  -0.244661 |

264 | -2.360  |  -0.193305 |

265 | -2.350  |  -0.142305 |

266 | -2.340  |  -0.091667 |

267 | -2.330  |  -0.041395 |

268 | -2.320  |  0.008506 |

269 | -2.310  |  0.058034 |

270 | -2.300  |  0.107182 |

271 | -2.290  |  0.155949 |

272 | -2.280  |  0.204328 |

273 | -2.270  |  0.252318 |

274 | -2.260  |  0.299913 |

275 | -2.250  |  0.347111 |

276 | -2.240  |  0.393907 |

277 | -2.230  |  0.440299 |

278 | -2.220  |  0.486283 |

279 | -2.210  |  0.531855 |

280 | -2.200  |  0.577013 |

281 | -2.190  |  0.621754 |

282 | -2.180  |  0.666074 |

283 | -2.170  |  0.709971 |

284 | -2.160  |  0.753442 |

285 | -2.150  |  0.796483 |

286 | -2.140  |  0.839094 |

287 | -2.130  |  0.881270 |

288 | -2.120  |  0.923009 |

289 | -2.110  |  0.964310 |

290 | -2.100  |  1.005170 |

291 | -2.090  |  1.045586 |

292 | -2.080  |  1.085557 |

293 | -2.070  |  1.125080 |

294 | -2.060  |  1.164154 |

295 | -2.050  |  1.202776 |

296 | -2.040  |  1.240945 |

297 | -2.030  |  1.278659 |

298 | -2.020  |  1.315917 |

299 | -2.010  |  1.352716 |

300 | -2.000  |  1.389056 |

301 | -1.990  |  1.424935 |

302 | -1.980  |  1.460351 |

303 | -1.970  |  1.495303 |

304 | -1.960  |  1.529791 |

305 | -1.950  |  1.563813 |

306 | -1.940  |  1.597367 |

307 | -1.930  |  1.630453 |

308 | -1.920  |  1.663070 |

309 | -1.910  |  1.695218 |

310 | -1.900  |  1.726894 |

311 | -1.890  |  1.758100 |

312 | -1.880  |  1.788833 |

313 | -1.870  |  1.819093 |

314 | -1.860  |  1.848881 |

315 | -1.850  |  1.878195 |

316 | -1.840  |  1.907034 |

317 | -1.830  |  1.935400 |

318 | -1.820  |  1.963290 |

319 | -1.810  |  1.990706 |

320 | -1.800  |  2.017647 |

321 | -1.790  |  2.044113 |

322 | -1.780  |  2.070104 |

323 | -1.770  |  2.095620 |

324 | -1.760  |  2.120661 |

325 | -1.750  |  2.145228 |

326 | -1.740  |  2.169319 |

327 | -1.730  |  2.192937 |

328 | -1.720  |  2.216080 |

329 | -1.710  |  2.238750 |

330 | -1.700  |  2.260947 |

331 | -1.690  |  2.282672 |

332 | -1.680  |  2.303924 |

333 | -1.670  |  2.324705 |

334 | -1.660  |  2.345015 |

335 | -1.650  |  2.364855 |

336 | -1.640  |  2.384226 |

337 | -1.630  |  2.403128 |

338 | -1.620  |  2.421562 |

339 | -1.610  |  2.439530 |

340 | -1.600  |  2.457032 |

341 | -1.590  |  2.474070 |

342 | -1.580  |  2.490644 |

343 | -1.570  |  2.506755 |

344 | -1.560  |  2.522405 |

345 | -1.550  |  2.537595 |

346 | -1.540  |  2.552326 |

347 | -1.530  |  2.566600 |

348 | -1.520  |  2.580417 |

349 | -1.510  |  2.593780 |

350 | -1.500  |  2.606689 |

351 | -1.490  |  2.619147 |

352 | -1.480  |  2.631154 |

353 | -1.470  |  2.642712 |

354 | -1.460  |  2.653824 |

355 | -1.450  |  2.664490 |

356 | -1.440  |  2.674712 |

357 | -1.430  |  2.684492 |

358 | -1.420  |  2.693832 |

359 | -1.410  |  2.702734 |

360 | -1.400  |  2.711200 |

361 | -1.390  |  2.719231 |

362 | -1.380  |  2.726830 |

363 | -1.370  |  2.733998 |

364 | -1.360  |  2.740737 |

365 | -1.350  |  2.747051 |

366 | -1.340  |  2.752940 |

367 | -1.330  |  2.758406 |

368 | -1.320  |  2.763453 |

369 | -1.310  |  2.768083 |

370 | -1.300  |  2.772297 |

371 | -1.290  |  2.776098 |

372 | -1.280  |  2.779488 |

373 | -1.270  |  2.782470 |

374 | -1.260  |  2.785045 |

375 | -1.250  |  2.787218 |

376 | -1.240  |  2.788989 |

377 | -1.230  |  2.790363 |

378 | -1.220  |  2.791340 |

379 | -1.210  |  2.791924 |

380 | -1.200  |  2.792117 |

381 | -1.190  |  2.791922 |

382 | -1.180  |  2.791342 |

383 | -1.170  |  2.790380 |

384 | -1.160  |  2.789037 |

385 | -1.150  |  2.787318 |

386 | -1.140  |  2.785224 |

387 | -1.130  |  2.782760 |

388 | -1.120  |  2.779926 |

389 | -1.110  |  2.776727 |

390 | -1.100  |  2.773166 |

391 | -1.090  |  2.769245 |

392 | -1.080  |  2.764968 |

393 | -1.070  |  2.760336 |

394 | -1.060  |  2.755355 |

395 | -1.050  |  2.750026 |

396 | -1.040  |  2.744353 |

397 | -1.030  |  2.738339 |

398 | -1.020  |  2.731987 |

399 | -1.010  |  2.725300 |

400 | -1.000  |  2.718282 |

401 | -0.990  |  2.710935 |

402 | -0.980  |  2.703264 |

403 | -0.970  |  2.695271 |

404 | -0.960  |  2.686960 |

405 | -0.950  |  2.678335 |

406 | -0.940  |  2.669397 |

407 | -0.930  |  2.660152 |

408 | -0.920  |  2.650602 |

409 | -0.910  |  2.640752 |

410 | -0.900  |  2.630603 |

411 | -0.890  |  2.620161 |

412 | -0.880  |  2.609428 |

413 | -0.870  |  2.598408 |

414 | -0.860  |  2.587105 |

415 | -0.850  |  2.575522 |

416 | -0.840  |  2.563663 |

417 | -0.830  |  2.551532 |

418 | -0.820  |  2.539132 |

419 | -0.810  |  2.526467 |

420 | -0.800  |  2.513541 |

421 | -0.790  |  2.500357 |

422 | -0.780  |  2.486920 |

423 | -0.770  |  2.473233 |

424 | -0.760  |  2.459300 |

425 | -0.750  |  2.445125 |

426 | -0.740  |  2.430712 |

427 | -0.730  |  2.416064 |

428 | -0.720  |  2.401185 |

429 | -0.710  |  2.386080 |

430 | -0.700  |  2.370753 |

431 | -0.690  |  2.355207 |

432 | -0.680  |  2.339446 |

433 | -0.670  |  2.323474 |

434 | -0.660  |  2.307296 |

435 | -0.650  |  2.290916 |

436 | -0.640  |  2.274337 |

437 | -0.630  |  2.257564 |

438 | -0.620  |  2.240600 |

439 | -0.610  |  2.223450 |

440 | -0.600  |  2.206119 |

441 | -0.590  |  2.188609 |

442 | -0.580  |  2.170926 |

443 | -0.570  |  2.153074 |

444 | -0.560  |  2.135057 |

445 | -0.550  |  2.116878 |

446 | -0.540  |  2.098543 |

447 | -0.530  |  2.080055 |

448 | -0.520  |  2.061420 |

449 | -0.510  |  2.042640 |

450 | -0.500  |  2.023721 |

451 | -0.490  |  2.004667 |

452 | -0.480  |  1.985482 |

453 | -0.470  |  1.966171 |

454 | -0.460  |  1.946738 |

455 | -0.450  |  1.927187 |

456 | -0.440  |  1.907523 |

457 | -0.430  |  1.887751 |

458 | -0.420  |  1.867874 |

459 | -0.410  |  1.847897 |

460 | -0.400  |  1.827825 |

461 | -0.390  |  1.807662 |

462 | -0.380  |  1.787413 |

463 | -0.370  |  1.767082 |

464 | -0.360  |  1.746673 |

465 | -0.350  |  1.726193 |

466 | -0.340  |  1.705644 |

467 | -0.330  |  1.685031 |

468 | -0.320  |  1.664360 |

469 | -0.310  |  1.643634 |

470 | -0.300  |  1.622859 |

471 | -0.290  |  1.602038 |

472 | -0.280  |  1.581178 |

473 | -0.270  |  1.560281 |

474 | -0.260  |  1.539354 |

475 | -0.250  |  1.518400 |

476 | -0.240  |  1.497425 |

477 | -0.230  |  1.476433 |

478 | -0.220  |  1.455429 |

479 | -0.210  |  1.434417 |

480 | -0.200  |  1.413403 |

481 | -0.190  |  1.392391 |

482 | -0.180  |  1.371385 |

483 | -0.170  |  1.350392 |

484 | -0.160  |  1.329415 |

485 | -0.150  |  1.308459 |

486 | -0.140  |  1.287530 |

487 | -0.130  |  1.266631 |

488 | -0.120  |  1.245769 |

489 | -0.110  |  1.224947 |

490 | -0.100  |  1.204171 |

491 | -0.090  |  1.183445 |

492 | -0.080  |  1.162775 |

493 | -0.070  |  1.142165 |

494 | -0.060  |  1.121621 |

495 | -0.050  |  1.101146 |

496 | -0.040  |  1.080747 |

497 | -0.030  |  1.060428 |

498 | -0.020  |  1.040193 |

499 | -0.010  |  1.020049 |

500 | -0.000  |  1.000000 |

501 |  0.010  |  0.980051 |

502 |  0.020  |  0.960207 |

503 |  0.030  |  0.940473 |

504 |  0.040  |  0.920853 |

505 |  0.050  |  0.901354 |

506 |  0.060  |  0.881981 |

507 |  0.070  |  0.862737 |

508 |  0.080  |  0.843628 |

509 |  0.090  |  0.824660 |

510 |  0.100  |  0.805837 |

511 |  0.110  |  0.787165 |

512 |  0.120  |  0.768648 |

513 |  0.130  |  0.750292 |

514 |  0.140  |  0.732102 |

515 |  0.150  |  0.714083 |

516 |  0.160  |  0.696240 |

517 |  0.170  |  0.678578 |

518 |  0.180  |  0.661102 |

519 |  0.190  |  0.643818 |

520 |  0.200  |  0.626731 |

521 |  0.210  |  0.609845 |

522 |  0.220  |  0.593167 |

523 |  0.230  |  0.576701 |

524 |  0.240  |  0.560452 |

525 |  0.250  |  0.544426 |

526 |  0.260  |  0.528628 |

527 |  0.270  |  0.513062 |

528 |  0.280  |  0.497736 |

529 |  0.290  |  0.482653 |

530 |  0.300  |  0.467818 |

531 |  0.310  |  0.453238 |

532 |  0.320  |  0.438917 |

533 |  0.330  |  0.424861 |

534 |  0.340  |  0.411074 |

535 |  0.350  |  0.397563 |

536 |  0.360  |  0.384332 |

537 |  0.370  |  0.371387 |

538 |  0.380  |  0.358733 |

539 |  0.390  |  0.346376 |

540 |  0.400  |  0.334320 |

541 |  0.410  |  0.322571 |

542 |  0.420  |  0.311135 |

543 |  0.430  |  0.300016 |

544 |  0.440  |  0.289220 |

545 |  0.450  |  0.278753 |

546 |  0.460  |  0.268620 |

547 |  0.470  |  0.258825 |

548 |  0.480  |  0.249375 |

549 |  0.490  |  0.240275 |

550 |  0.500  |  0.231531 |

551 |  0.510  |  0.223147 |

552 |  0.520  |  0.215129 |

553 |  0.530  |  0.207482 |

554 |  0.540  |  0.200212 |

555 |  0.550  |  0.193325 |

556 |  0.560  |  0.186825 |

557 |  0.570  |  0.180718 |

558 |  0.580  |  0.175010 |

559 |  0.590  |  0.169706 |

560 |  0.600  |  0.164812 |

561 |  0.610  |  0.160332 |

562 |  0.620  |  0.156272 |

563 |  0.630  |  0.152639 |

564 |  0.640  |  0.149436 |

565 |  0.650  |  0.146671 |

566 |  0.660  |  0.144347 |

567 |  0.670  |  0.142472 |

568 |  0.680  |  0.141049 |

569 |  0.690  |  0.140085 |

570 |  0.700  |  0.139585 |

571 |  0.710  |  0.139555 |

572 |  0.720  |  0.140000 |

573 |  0.730  |  0.140926 |

574 |  0.740  |  0.142338 |

575 |  0.750  |  0.144242 |

576 |  0.760  |  0.146642 |

577 |  0.770  |  0.149546 |

578 |  0.780  |  0.152958 |

579 |  0.790  |  0.156884 |

580 |  0.800  |  0.161329 |

581 |  0.810  |  0.166299 |

582 |  0.820  |  0.171800 |

583 |  0.830  |  0.177836 |

584 |  0.840  |  0.184415 |

585 |  0.850  |  0.191540 |

586 |  0.860  |  0.199218 |

587 |  0.870  |  0.207455 |

588 |  0.880  |  0.216255 |

589 |  0.890  |  0.225625 |

590 |  0.900  |  0.235570 |

591 |  0.910  |  0.246095 |

592 |  0.920  |  0.257207 |

593 |  0.930  |  0.268911 |

594 |  0.940  |  0.281212 |

595 |  0.950  |  0.294116 |

596 |  0.960  |  0.307629 |

597 |  0.970  |  0.321756 |

598 |  0.980  |  0.336503 |

599 |  0.990  |  0.351876 |

600 |  1.000  |  0.367879 |

601 |  1.010  |  0.384520 |

602 |  1.020  |  0.401803 |

603 |  1.030  |  0.419734 |

604 |  1.040  |  0.438319 |

605 |  1.050  |  0.457563 |

606 |  1.060  |  0.477472 |

607 |  1.070  |  0.498052 |

608 |  1.080  |  0.519308 |

609 |  1.090  |  0.541245 |

610 |  1.100  |  0.563871 |

611 |  1.110  |  0.587190 |

612 |  1.120  |  0.611208 |

613 |  1.130  |  0.635930 |

614 |  1.140  |  0.661363 |

615 |  1.150  |  0.687512 |

616 |  1.160  |  0.714382 |

617 |  1.170  |  0.741980 |

618 |  1.180  |  0.770311 |

619 |  1.190  |  0.799380 |

620 |  1.200  |  0.829194 |

621 |  1.210  |  0.859758 |

622 |  1.220  |  0.891078 |

623 |  1.230  |  0.923160 |

624 |  1.240  |  0.956008 |

625 |  1.250  |  0.989630 |

626 |  1.260  |  1.024030 |

627 |  1.270  |  1.059215 |

628 |  1.280  |  1.095189 |

629 |  1.290  |  1.131960 |

630 |  1.300  |  1.169532 |

631 |  1.310  |  1.207911 |

632 |  1.320  |  1.247103 |

633 |  1.330  |  1.287114 |

634 |  1.340  |  1.327950 |

635 |  1.350  |  1.369615 |

636 |  1.360  |  1.412117 |

637 |  1.370  |  1.455460 |

638 |  1.380  |  1.499651 |

639 |  1.390  |  1.544694 |

640 |  1.400  |  1.590597 |

641 |  1.410  |  1.637364 |

642 |  1.420  |  1.685002 |

643 |  1.430  |  1.733516 |

644 |  1.440  |  1.782912 |

645 |  1.450  |  1.833195 |

646 |  1.460  |  1.884372 |

647 |  1.470  |  1.936448 |

648 |  1.480  |  1.989430 |

649 |  1.490  |  2.043322 |

650 |  1.500  |  2.098130 |

651 |  1.510  |  2.153861 |

652 |  1.520  |  2.210520 |

653 |  1.530  |  2.268113 |

654 |  1.540  |  2.326645 |

655 |  1.550  |  2.386123 |

656 |  1.560  |  2.446552 |

657 |  1.570  |  2.507938 |

658 |  1.580  |  2.570287 |

659 |  1.590  |  2.633605 |

660 |  1.600  |  2.697897 |

661 |  1.610  |  2.763169 |

662 |  1.620  |  2.829427 |

663 |  1.630  |  2.896677 |

664 |  1.640  |  2.964924 |

665 |  1.650  |  3.034175 |

666 |  1.660  |  3.104435 |

667 |  1.670  |  3.175710 |

668 |  1.680  |  3.248006 |

669 |  1.690  |  3.321329 |

670 |  1.700  |  3.395684 |

671 |  1.710  |  3.471077 |

672 |  1.720  |  3.547514 |

673 |  1.730  |  3.625001 |

674 |  1.740  |  3.703544 |

675 |  1.750  |  3.783149 |

676 |  1.760  |  3.863821 |

677 |  1.770  |  3.945566 |

678 |  1.780  |  4.028390 |

679 |  1.790  |  4.112299 |

680 |  1.800  |  4.197299 |

681 |  1.810  |  4.283395 |

682 |  1.820  |  4.370594 |

683 |  1.830  |  4.458901 |

684 |  1.840  |  4.548321 |

685 |  1.850  |  4.638862 |

686 |  1.860  |  4.730529 |

687 |  1.870  |  4.823327 |

688 |  1.880  |  4.917262 |

689 |  1.890  |  5.012341 |

690 |  1.900  |  5.108569 |

691 |  1.910  |  5.205951 |

692 |  1.920  |  5.304495 |

693 |  1.930  |  5.404205 |

694 |  1.940  |  5.505088 |

695 |  1.950  |  5.607149 |

696 |  1.960  |  5.710394 |

697 |  1.970  |  5.814830 |

698 |  1.980  |  5.920461 |

699 |  1.990  |  6.027294 |

700 |  2.000  |  6.135335 |

----------------------------

Итераций: 700

Конечные значения: x=-3.680    y=-6.509638

Метод деления попалам (дихотомии)

--------------------------------------------------

 Итер| (a+b)/2 |F((a+b)/2)|     a      |     b   |

--------------------------------------------------

 1 |-1.500000 |2.606689 | [-5.000000,|2.000000]

 2 |-3.249500 |-5.285336 | [-5.000000,|-1.499000]

 3 |-4.124250 |-4.205499 | [-5.000000,|-3.248500]

 4 |-3.686875 |-6.509089 | [-4.125250,|-3.248500]

 5 |-3.468188 |-6.169750 | [-3.687875,|-3.248500]

 6 |-3.577531 |-6.425237 | [-3.687875,|-3.467188]

 7 |-3.632203 |-6.491094 | [-3.687875,|-3.576531]

 8 |-3.659539 |-6.506401 | [-3.687875,|-3.631203]

 9 |-3.673207 |-6.509365 | [-3.687875,|-3.658539]

10 |-3.680041 |-6.509637 | [-3.687875,|-3.672207]

--------------------------------------------------

Итераций: 10

Конечные значения: x=-3.676624   y=-6.509603

Метод золотого сечения

----------------------------------------------------------

Итер|  (a+b)/2   |  F((a+b)/2) |     a       |     b     |

----------------------------------------------------------

 1 | -1.500000  |  2.606689  | [-5.000000, | 2.000000]|

 2 | -2.836881  |  -2.931572  | [-5.000000, | -0.673762]|

 3 | -3.663119  |  -6.507486  | [-5.000000, | -2.326238]|

 4 | -3.152476  |  -4.783244  | [-3.978714, | -2.326238]|

 5 | -3.468071  |  -6.169399  | [-3.978714, | -2.957428]|

 6 | -3.663119  |  -6.507486  | [-3.978714, | -3.347524]|

 7 | -3.783665  |  -6.406817  | [-3.978714, | -3.588617]|

 8 | -3.709164  |  -6.501468  | [-3.829710, | -3.588617]|

 9 | -3.663119  |  -6.507486  | [-3.737621, | -3.588617]|

10 | -3.691576  |  -6.508230  | [-3.737621, | -3.645531]|

11 | -3.673989  |  -6.509437  | [-3.702446, | -3.645531]|

12 | -3.684858  |  -6.509337  | [-3.702446, | -3.667271]|

13 | -3.678140  |  -6.509643  | [-3.689010, | -3.667271]|

14 | -3.682292  |  -6.509548  | [-3.689010, | -3.675574]|

----------------------------------------------------------

Итераций: 14

Конечные значения: -3.679726  |  -6.509643

Метод Фибоначчи

----------------------------------------------------------

Итер|  (a+b)/2   |  F((a+b)/2) |     a       |     b     |

----------------------------------------------------------

 1 | -1.500000  |  2.606689  | [-5.000000, | 2.000000]|

 2 | -2.836879  |  -2.931562  | [-5.000000, | -0.673759]|

 3 | -3.663121  |  -6.507486  | [-5.000000, | -2.326241]|

 4 | -3.152482  |  -4.783279  | [-3.978723, | -2.326241]|

 5 | -3.468085  |  -6.169442  | [-3.978723, | -2.957447]|

 6 | -3.663121  |  -6.507486  | [-3.978723, | -3.347518]|

 7 | -3.783688  |  -6.406772  | [-3.978723, | -3.588652]|

 8 | -3.709220  |  -6.501437  | [-3.829787, | -3.588652]|

 9 | -3.663121  |  -6.507486  | [-3.737589, | -3.588652]|

10 | -3.691489  |  -6.508249  | [-3.737589, | -3.645390]|

11 | -3.673759  |  -6.509417  | [-3.702128, | -3.645390]|

12 | -3.684397  |  -6.509383  | [-3.702128, | -3.666667]|

13 | -3.677305  |  -6.509626  | [-3.687943, | -3.666667]|

----------------------------------------------------------

Итераций: 13

Конечные значения: x=-3.680851  y=-6.509615

Метод парабол

-------------------------------------------------------------------------------

Итер |      a     |       b       |       c       |      c1       |    f(a)      |     f(b)   

-------------------------------------------------------------------------------

 1| -5.000000|2.000000|-3.680000|-1.111653|28.413159|6.135335|

 2| -5.000000|-1.111653|-3.680000|-2.629593|28.413159|2.777281|

 3| -5.000000|-2.629593|-3.680000|-3.330112|28.413159|-1.685286|

 4| -5.000000|-3.330112|-3.680000|-3.575386|28.413159|-5.658179|

 5| -5.000000|-3.575386|-3.680000|-3.649616|28.413159|-6.421748|

 6| -5.000000|-3.649616|-3.680000|-3.670942|28.413159|-6.502269|

 7| -5.000000|-3.670942|-3.689058|-3.679509|28.413159|-6.509095|

 8| -3.689058|-3.670942|-3.679509|-3.678881|-6.508739|-6.509095|

--------------------------------------------------------------------------------

Итераций:  8

Конечные значения: x=-3.679509  y=-6.509645

Заключение

Одним из первых вопросов, возникающих при поиске минимума, является вопрос эффективности алгоритма. Из рассмотренных алгоритмов с данной задачей лучше остальных справился метод парабол. Ему понадобилось всего 8 итераций для нахождения минимума с точностью 0.01. В то время как самый «медленный» алгоритм –  метод пассивного поиска –  справился с этой же задачей за 700 итераций. 

Список литературы:

  1.  Харчистов Борис Федорович. Методы оптимизации.
  2.  В.А. Буслов, С.Л.Яковлев. Численные методы I. Исследование функций.
  3.  http://alglib.sources.ru/optimization/goldensection.php
  4.  http://alglib.sources.ru/optimization/
  5.  http://elib.ispu.ru/library/math/sem1/kiselev1/node87.html

Приложение

 

Код реализации программы на С++:

// minimum.cpp : main project file.

#include "stdafx.h"

#include "iostream"

#include "conio.h"

#include "math.h"

#include "stdio.h"

using namespace std;

double *method=new double[5]; //массив для числа итераций каждого метода

//////////////////////////////////////////////////////////

//////////определение функции/////////////////////////////

//////////////////////////////////////////////////////////

double F(double x)

{

 return pow(x, 3) - x + exp(-x);

}

//////////////////////////////////////////////////

////////процедура для пассивного поиска///////////

//////////////////////////////////////////////////

void pass(double a, double b, double e, short scr)//создаем функцию с //параметрами a – левый конец отрезка,  b –правый, e -погрешность

{

FILE *ps;

ps=fopen("D://minimum//passive.txt", "w");//создаем текстовый  файл в //который будут записываться выходные данные

 double Ymin=F(a), Xmin=a;

fprintf(ps, "Метод пассивного поиска\n");

fprintf(ps, "-----------------------------\n");

fprintf(ps, " Итер |    Y    |      x     |\n"); //«шапка» таблицы

fprintf(ps, "-----------------------------\n");

 for(double i=a; i<=b; i=i+e) // «пробегаем» отрезок с шагом е

 {

  fprintf(ps, "%4.0f | %6.3f  |  %6.6f |\n", (i-a)/e, i, F(i));// записываем в файл промежуточные значения

  if (F(i)<Ymin)//сравним текущее значение функции с новым

 {

  Ymin=F(i);//если оно  меньше, то оно записывается в переменную Ymin

  Xmin=i;//значение аргумента при данном минимуме

 }

 }

 

fprintf(ps, "----------------------------\n");

fprintf(ps, "\nИтераций:%4.0f\nКонечные значения: x=%6.3f    y=%6.6f", (b-a)/e, Xmin, Ymin);//Запись в файл кол-ва итераций, точку //минимума и зн-е ф-ии в ней

 

 /// если этот метод самый оптимальный, выводим его результаты на экран

 if (scr==1) printf("Kone4nie zna4eni9: x=%6.3f,  y=%6.6f", Xmin, Ymin);

method[0]=floor( (b-a)/e);

}

////////////////////////////////////////////////////////////////

//////////////процедура для метода дихотомии////////////////////

////////////////////////////////////////////////////////////////

void dihotomia(double a, double b, double e,short scr)

{

FILE *dih;

dih=fopen("D://minimum//dih.txt", "w");

 double l=a, m=b; //создаем переменные для значений функции и значений //аргумента

 int iter=1;

fprintf(dih, "Метод деления попалам (дихотомии)\n");

fprintf(dih, "--------------------------------------------------\n");

fprintf(dih, " Итер| (a+b)/2 |F((a+b)/2)|     a      |     b   |\n");

fprintf(dih, "--------------------------------------------------\n");

 while ((b-a)>e)

 {

 fprintf(dih, "%3d |%6.6f |%6.6f | [%6.6f,|%6.6f]\n",iter,(a+b)/2, F((a+b)/2), a, b);// записываем в файл промежуточные значения

 l=(a+b)/2 - e/10;

 m=(a+b)/2 + e/10;

 if (F(l)<F(m))

  b=m;

 else a=l;

 iter++;

  }

fprintf(dih, "--------------------------------------------------\n");

fprintf(dih, "\nИтераций:%3d\nКонечные значения: x=%6.6f   y=%6.6f",iter-1, (a+b)/2, F((a+b)/2));

 /// если этот метод самый оптимальный, выводим его результаты на экран

 if (scr==1) printf( "Kone4nie zna4eni9: x=%6.3f, y=%6.6f", (a+b)/2, F( (a+b)/2 ));

method[1]=iter-1;

}

//////////////////////////////////////////////////////////

//////Процедура для метода золотого сечения //////////////

//////////////////////////////////////////////////////////

void zol_sechenie(double a, double b, double e, short scr)

{

FILE *zol;

zol=fopen("D://minimum//sechenie.txt", "w");

fprintf(zol, "Метод золотого сечения\n");

fprintf(zol, "----------------------------------------------------------\n");

fprintf(zol, "Итер|  (a+b)/2   |  F((a+b)/2) |     a       |     b     |\n");

fprintf(zol, "----------------------------------------------------------\n");

 double fi=sqrt(5.0)/2 - 0.5, l=a+(1-fi)*(b-a), m=a+fi*(b-a), d1=F(l), d2=F(m);

 int iter=1;

 while ((b-a)>e)

  {

   fprintf(zol, "%3d | %6.6f  |  %6.6f  | [%6.6f, | %6.6f]|\n",iter,(a+b)/2, F((a+b)/2), a, b);

   if (d1>d2)

    {

     a=l; l=m; d1=d2;

     m=a+fi*(b-a); d2=F(m);

    }

   else

    {

     b=m; m=l; d2=d;

     l=a+(1-fi)*(b-a); d1=F(l);

    }

   iter++;

  }

fprintf(zol, "----------------------------------------------------------\n");

fprintf(zol, "\nИтераций:%3d\nКонечные значения: %6.6f  |  %6.6f",iter-1, (a+b)/2, F((a+b)/2));

 /// если этот метод самый оптимальный, выводим его результаты на экран

 if (scr==1) printf("Kone4nie zna4eni9: x=%6.6f, y=%6.6f", (a+b)/2, F((a+b)/2));

method[2]=iter-1;

}

///////////////////////////////////////////////////////

//////Процедура для метода Фибоначи ///////////////////

///////////////////////////////////////////////////////

void fibonachi(double a, double b, double e, short scr)

{

FILE *fibo;

fibo=fopen("D://minimum//Fibonachi.txt", "w");

fprintf(fibo, "Метод Фибоначчи\n");

fprintf(fibo, "----------------------------------------------------------\n");

fprintf(fibo, "Итер|  (a+b)/2   |  F((a+b)/2) |     a       |     b     |\n");

fprintf(fibo, "----------------------------------------------------------\n");

 int fib[80]; //массив с числами Фибоначчи

fib[0]=1; fib[1]=1; //в первые два эл-та записываем 1 тк так начин-ся последовательность Фибоначчи

 int i=1;

 while ( (b-a)/e >fib[i])

   {

    i++; fib[i]=fib[i-2] + fib[i-1];

   }

 double l=a+fib[i-2]*(b-a) / fib[i], m=a+fib[i-1]*(b-a)/fib[i], d1=F(l), d2=F(m);

 for (int k=i-1; k>=2; k--)

{

  fprintf(fibo, "%3d | %6.6f  |  %6.6f  | [%6.6f, | %6.6f]|\n",i-k,(a+b)/2, F((a+b)/2), a, b);

  if (d1<d2)

 {

  b=m; m=l; d2=F(l);

  l=a+fib[k-2]*(b-a)/fib[k];

  d1=F(l);

 }

   else

 {

  a=l; l=m; d1=d2;

  m=a+fib[k-1]*(b-a)/fib[k];

  d2=F(m);

 }

}

fprintf(fibo, "----------------------------------------------------------\n");

fprintf(fibo,"\Итераций:%3d\nКонечные значения: x=%6.6f  y=%6.6f",i-2, (a+b)/2, F((a+b)/2));

 /// если этот метод самый оптимальный, выводим его результаты на экран

 if (scr==1) printf("Kone4nie zna4eni9: x=%6.6f, y=%6.6f", (a+b)/2, F((a+b)/2));

method[3]=i-2;

}

//////////////////////////////////////////////

///////Процедура для метода парабол///////////

//////////////////////////////////////////////

void parabola(double a, double b, double e, short scr)

{

 int iter;

FILE *par;

par=fopen("D://minimum//parabola.txt", "w");

fprintf(par, "Метод парабол \n");

fprintf(par, "----------------------------------------------------------------\n");

fprintf(par, "Итер |    a   |    b    |    c    |   c1    |  f(a)   |  f(b)   \n");

fprintf(par, "----------------------------------------------------------------\n");

//Здесь методом пассивного поиска выбирается точка для начала метода парабол

 double min=F(a), x0=a;

 for (double i=a; i<=b; i+=e)

 {

  if (F(i)<min)

   {

    min=F(i);

    x0=i;

   }

 }

//Начнём выбирать по 3 точки, через которые проходит парабола

 double c=x0,c1,x2,x3;

 for (iter=1; (b-a)>e; iter++)

  {

   c1=0.5*( (a+b)*(a-b)*(F(c)-F(b)) - (c+b)*(c-b)*(F(a)-F(b)) ) / ( (a-b)*(F(c)-F(b)) - (c-b)*(F(a)-F(b)) );

   x2=0.5*( (a+b)*(b-a)*(F(a)-F(c)) - (a+c)*(a-c)*(F(b)-F(a)) ) / ( (b-a)*(F(a)-F(c)) - (a-c)*(F(b)-F(a)) );

   x3=0.5*( (c+b)*(c-b)*(F(a)-F(b)) - (a+b)*(a-b)*(F(c)-F(b)) ) / ( (c-b)*(F(a)-F(b)) - (a-b)*(F(c)-F(b)) );

//Найдём минимум параболической функции (у параболы два экстремума => один из них - минимум)

   if (( (c1<=x2)&&(x2<=x3) ) || ( (x2<=x3)&&(x2<=c1) )) c1=x2;

   if (( (c1<=x3)&&(x3<=x2) ) || ( (x2<=x3)&&(x3<=c1) )) c1=x3;

   fprintf(par, "%3d| %6.6f|%6.6f|%6.6f|%6.6f|%6.6f|%6.6f|\n", iter, a, b, c, c1, F(a), F(b));

   if (c1>c)

    {

     double temp=c1; c1=c; c=temp;

    }

//Проверим, не дал ли этот шаг более точный результат    

   if (F(c1)<F(c))

    {

     b=c; c=c1;

    }

    else a=c1;

   if ( (c-a)/(b-a)<=e ) c=2*c-a;

   if ( (b-c)/(c-a)<=e ) c=2*c-b;

   if (iter>20) break; //если итераций стало более 20, то выйти, так как точность метода

           //парабол дотаточна высока и дальнейшие изменения точки минимума

           //не выйдет за пределы точности

  }

 fprintf(par, "----------------------------------------------------------------\n");

 fprintf(par, "\nИтераций:%3d\nКонечные значения: x=%6.6f  y=%6.6f",iter-1, a, F(a));

 /// если этот метод самый оптимальный, выводим его результаты на экран

 if (scr==1) printf("Kone4nie zna4eni9: x=%6.6f, y=%6.6f", a, F(a));

 method[4]=iter-1;

}

///////////////////////////////////////////////////////

/////////////...Главная процедура...///////////////////

///////////////////////////////////////////////////////

void main(void)

{

 cout<<"f(x)=x^3 - x + exp(-x)\n\n";

 double a,b,e;

 cout<<"vvedite otrezok i pogreshnost' \n";

 cin>> a >> b >> e;

 pass(a,b,e,0);

 dihotomia(a,b,e,0);

 zol_sechenie(a,b,e,0);

 fibonachi(a,b,e,0);

 parabola(a,b,e,0);

 cout<<"\nProgramma zapisala faili v papky 'D:\\minimum\n\n";

//Начнём искать метод, давший результат за наименьшее число итераций

 int optim=0;

  for (int i=1; i<=4; i++)

   if (method[i]<method[optim]) optim=i;// ищем наименьшее число итераций

  char* result;

  switch (optim)

   {

    case 0 : result="metod passivnogo poiska"; pass(a,b,e,1); break;

    case 1 : result="method dihotomii";  dihotomia(a,b,e,1); break;

    case 2 : result="method zolotogo secheniya"; zol_sechenie(a,b,e,1); break;

    case 3 : result="method FIbonachi"; fibonachi(a,b,e,1); break;

    case 4 : result="method parabol"; parabola(a,b,e,1); break;

   }

  cout << "\n\noptimalni metod - "<< result << ", " <<method[optim] << " step(s)";

  cout << "\n\n";

 getch();

}

Таблицы промежуточных значений


 

А также другие работы, которые могут Вас заинтересовать

22981. Робота зі співпроцесором 3.19 MB
  Обгрунтування необхідності співпроцесора Хоча мікропроцесор К1810ВМ86 оперує з 16розрядними числами відносна точність його обчислень не дуже висока. Такий допоміжний процесор має назву співпроцесора. Включення співпроцесора Для спільної роботи зі співпроцесором мікропроцесор МП86 слід включити у максимальний режим = 0.
22982. Тенденції у розвитку мікропроцесорної техніки 1011.5 KB
  Другий шлях полягає навпаки у роздрібненні секціонуванні мікропроцесора на окремі функціональні блоки і модулі кожний з яких виконує свої операції: операційний блок блок мікрокомандного керування блок пам’яті мікрокоманд та інше. Його система команд майже цілком співпадає з системою команд МП80 і відрізняється від неї лише декількома додатковими командами про які мова йтиме далі. У апаратному відношенні МП85 містить всі ті ж блоки що і МП80 але має крім того: блок керування перериваннями котрий розширює можливість звернення до...
22983. Система команд та методи адресації в мікропроцесорі КР1810ВМ86 1.05 MB
  Серед цього списку можна виявити що деякі команди не змінили ані форми ані змісту наприклад HLT NOP STC IN OUT JMPCALL тощо. Деякі команди зберегли свій зміст але мають дещо іншу мнемоніку: для МП80 INR DCR ANA ORA XRA JZ JNZ JC JNC для МП86 INC DEC AND OR XOR JE JNE JB JNB З’явилися принципово нові команди пoв’язані з новими можливостями МП86: MUL множення; DIV ділення; NEG утворення доповняльного коду; NOTінверсія; TEST операція І без фіксації результату тільки заради...
22984. Мультипроцесорні системи 4.79 MB
  Дійсно звернення до пам’яті або до зовнішніх пристроїв та захоплення системної шини дозволяється одночасно лише одному з процесорів тоді як останні повинні в цей час переробляти раніш одержані дані або знаходитись в режимі очікування. Такий часовий розподіл загальних ресурсів системи має назву арбітражу системної шини і виконується групою пристроїв спеціальних ІМС так званих арбітрів шини. Арбітр шини дозволяє захоплення системної шини лише одному з процесорів що виставили запит тому котрий посідає найвищого пріоритету і...
22985. Мікропроцесори 80386 і 80486 4.79 MB
  Це дозволяє йому здійснювати обмін з пам’яттю зі швидкістю до 32 Мбайт сек і виконувати до 5 мільйонів операцій у секунду MIPS. Отже під час виконання одної команди відбувається декодування другої а третя видобувається з пам’яті. Усі можливості МП386 мультипрограмність віртуальна пам’ять захист пріоритети зповна відкриваються лише в захищеному режимі. У порівнянні з МП286 у МП386 існують істотні відміни в організації віртуальної пам’яті.
22986. Поняття про RISC-процесори. Процесори п’ятого та шостого поколінь 6.22 MB
  Процесори п’ятого та шостого поколінь Поняття про RISCпроцесори Якісний стрибок у розвитку мікропроцесорних систем відбувся з появою мікропроцесора 8086. Такі процесори і комп’ютери дістали назву RISC процесорів та RISC комп’ютерів на відміну від процесорів та комп’ютерів зі складною системою команд Complex Instruction Set Computer CISC комп’ютер. Перший €œсправжній€ RISC комп’ютер було створено наприкінці 70х років в університеті Берклі.
22987. Діагностика несправностей у мікропроцесорних системах 739 KB
  Тут можна навести таку наочну аналогію: візьміть на сторінці друкованого тексту вертикальний рядок літер що розташовані одна над одною і спробуйте встановити зміст тексту. Тому третя трудність полягає у тому щоб будьякимсь чином представити інформацію що міститься у вихідному тестсигналі у компактній та зрозумілій формі по якій можна було б судити про справність або несправність пристрою що перевіряється. Тестпрограма повинна бути періодичною щоб можна було проконтролювати відтворюваність її результатів від кількох актів тестування....
22988. Декотріі принципи роботи сучасних мікропроцесорів та ЕОМ 1.54 MB
  Вони показують яка команда виконується до якої комірки пам’яті або зовнішнього пристрою звертається процесор і містять іншу важливу і вичерпну інформацію. Після того як у програмі дається сигнал €œвивільнити мікросхему€ вміст усіх регістрів переписується в область пам’яті що має назву сегмента стану задачі TSS Taske State Segment. При роботі у мультипрограмному режимі можуть виникати певні труднощі з використанням оперативної пам’яті котра стає тепер вже загальною для кількох задач. Можливі непередбачені ситуації коли одна програма...
22989. Віртуальна пам’ять. Мікропроцесор 80286 4.24 MB
  Мікропроцесор 80286 Як добре відомо процесор може безпосередньо працювати лише з тією інформацією яка записана в його оперативній пам’яті. Однак об’єм оперативної пам’яті у сучасних ЕОМ порівняно невеликий і часто виявляється недостатнім для розв’язання більшменш складних задач. Віртуальна організація пам’яті дає користувачеві практично необмежений об’єм пам’яті.