лаб -5


Лабораторная работа №5Поиск минимума функции с помощью метода одномерной оптимизации на С#
Цель работы: научиться искать минимум функции с помощью метода одномерной оптимизации в С# используя оператор цикла while и do…while.
Цикл while является самым простым циклом. Условие выполнения тела цикла while проверяется до начала каждой итерации. Если условие истинно (принимает не нулевое значение), то выполняется блок из одного или нескольких операторов и происходит возврат на проверку условия.
Если условие ложно, происходит выход из цикла. Тело такого цикла может ни разу не выполняться.
Цикл do ... while – цикл с неизвестным числом повторений. В отличие от цикла while условие проверяется в конце цикла. Поэтому тело цикла выполняется хотя бы один раз.

Пример: Найти минимум функции y=x2

using System;
using System.Collections.Generic; using System.Linq;
using System.Text;

namespace Lab4
{
class Program
{
static void Main(string[] args)
{
double a, b, c, q, y1, y2; /*присвоение переменным вещественный тип данных */
Console.WriteLine("Введите начальную точку");
a = Convert.ToDouble(Console.ReadLine());/* преобразует
строковый тип в вещественный тип данных */
Console.WriteLine("Введите конечную точку"); b = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Введите допустимую погрешность q"); q = Convert.ToDouble(Console.ReadLine());
while (Math.Abs(b + a) > q) /* оператор цикла while c преду-
словием */
{
Console.WriteLine("a={0}", a);// первое значение аргумента Console.WriteLine("b={0}", b);// второе значение аргумента c = (a + b) / 2; // середина отрезка [а,b]
y1 = Math.Pow((c - q), 2);/* возведение в квадрат с учетом
допустимой погрешности q */
y2 = Math.Pow((c - q), 2);
if (y2 < y1) a = c; if (y2 > y1) b = c;
if (y2 == y1) /* если выполняются условие сравнения y2=y1,
то происходит вычисление a и b */
{ a = c - q; b = c + q;
}
}
Console.WriteLine("Минимум функции y=x^2 находится в точке x=");
Console.WriteLine((a + b) / 2);
}
}
}

Задание: 1) преобразовать данную программу таким образом, чтобы использовался цикл do…while;
2) Найти минимум функции y=2x3 с помощью циклов while и do…while.

Приложенные файлы

  • docx 19331410
    Размер файла: 14 kB Загрузок: 1

Добавить комментарий