АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Результаты «ручного расчета» и длина отрезка, содержащего точку

Читайте также:
  1. V. Результаты объективного осмотра больного.
  2. VI. Ожидаемые результаты реализации Программы
  3. Атрофия зрительного нерва, миопия, астигматизм, разного рода дистрофии, катаракта (даже есть хорошие результаты при искусственном хрусталике), дальтонизм, глаукома и т. д.
  4. Влияние изменения уровня цен на результаты стабилизационной политики в открытой экономике
  5. Вопрос №40. Воздействие государства на экономический цикл. Методы и результаты сглаживания циклических колебаний макроэкономических показателей.
  6. Выполнив задания , сверьте полученные результаты с эталоном ответов.
  7. Глава 3 Результаты исследования
  8. Гуманистическая и радикальная география. Истоки и результаты
  9. Д) точку пересечения высот треугольника.
  10. Диссидентское движение в СССР: основные направления, лидеры и результаты деятельности.
  11. Индустриализация в ссср, цели и результаты.
  12. Какие результаты анализов на сифилис подтверждают полное излечение и являются поводом для снятия с учета?

Лабораторная работа №7

«Одномерная оптимизация»

1. Задание для решения задачи одномерной оптимизации:

· функция, для которой необходимо найти минимум

· метод решения задачи оптимизации для «ручного расчета» – золотое сечение.

· метод решения задачи оптимизации для «расчета на ПК» – дихотомия.

2. Исследование задания:

· график функции :

 

 

 

· начальный отрезок неопределенности (отрезок, содержащий точку минимума) выберем по построенному графику - отрезок [3,1;3,5] - начальный отрезок неопределенности;

· результат проверки выполнения аналитического условия унимодальности функции на выбранном отрезке:

 

 

Функция на отрезке [3,1;3,5] – унимодальная, так как первая производная меняет знак, а вторая производная больше нуля.

 

 

Результаты «ручного расчета» и длина отрезка, содержащего точку

минимума после трех итераций:

Результаты «ручного расчета» трех итераций.

N a b x1 x2 f(x1) f(x2)
  3.1 3.5 3.2528 3.3472 -1.713 -1.7206 0,2472
  3.2528 3.5 3.3472 3.4056 -1.7206 -1.5355 0.1528
  3.2528 3.4056 3.3112 3.3472 -1.7622 -1.7206 0.0944
  3.2528 3.3472 3.2889 3.3112 -1.7599 -1.7622 0.0583

Для метода золотого сечения теоретическая длина отрезка неопределенности после трех итераций равна , что совпадает с полученной длиной отрезка неопределенности.

 

Задание:

Программа:

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace _1opt

{

public partial class Form1: Form

{

public Form1()

{

InitializeComponent();

}

odnopt k = new odnopt();

private void button1_Click(object sender, EventArgs e)

{

k.a = Convert.ToDouble(textBox1.Text);

k.b = Convert.ToDouble(textBox2.Text);

k.unimodal();

textBox4.Text = k.s;

}

 

private void button2_Click_1(object sender, EventArgs e)

{

k.eps = Convert.ToDouble(textBox3.Text);

k.dihot();

textBox5.Text = k.p;

}

}

class odnopt

{

public double a, b, eps;

public string s, p;

public double funk(double x)

{

return Math.Sin(x*x)+1/(2-x);

}

public double funk1(double x)

{

return 2*x*Math.Cos(x*x)+1/Math.Pow(x-2, 2);

}

public double funk2(double x)

{

return 2*Math.Cos(x*x)-4*x*x*Math.Sin(x*x)-2/Math.Pow(x-2, 3);

}

public void unimodal()

{

double y, y1, y2;

double h = (b - a) / 10;

double t = a;

for (int i = 0; i < 10; i++)

{

y = funk(t);

y1 = funk1(t);

y2 = funk2(t);

s = s + y.ToString("F5") + " " + y1.ToString("F5") + " " + y2.ToString("F5") + " " + "\r\n";

t = t + h;

}

}

public void dihot()

{

double x1, x2;

while (Math.Abs(b - a) > eps)

{

x1 = ((a + b) / 2) - eps / 4;

x2 = ((a + b) / 2) + eps / 4;

if (funk(x1) > funk(x2))

{

a = x1;

}

else

{

b = x2;

}

}

double m = (a + b) / 2;

double g = funk(m);

p = m.ToString("F5") + " " + g.ToString("F5");

 

}

}

 

}

 


Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.)