Как найти среднее арифметическое функции

bold{mathrm{Basic}} bold{alphabetagamma} bold{mathrm{ABGamma}} bold{sincos} bold{gedivrightarrow} bold{overline{x}spacemathbb{C}forall} bold{sumspaceintspaceproduct} bold{begin{pmatrix}square&square\square&squareend{pmatrix}} bold{H_{2}O}
square^{2} x^{square} sqrt{square} nthroot[msquare]{square} frac{msquare}{msquare} log_{msquare} pi theta infty int frac{d}{dx}
ge le cdot div x^{circ} (square) |square| (f:circ:g) f(x) ln e^{square}
left(squareright)^{‘} frac{partial}{partial x} int_{msquare}^{msquare} lim sum sin cos tan cot csc sec
alpha beta gamma delta zeta eta theta iota kappa lambda mu
nu xi pi rho sigma tau upsilon phi chi psi omega
A B Gamma Delta E Z H Theta K Lambda M
N Xi Pi P Sigma T Upsilon Phi X Psi Omega
sin cos tan cot sec csc sinh cosh tanh coth sech
arcsin arccos arctan arccot arcsec arccsc arcsinh arccosh arctanh arccoth arcsech
begin{cases}square\squareend{cases} begin{cases}square\square\squareend{cases} = ne div cdot times < > le ge
(square) [square] ▭:longdivision{▭} times twostack{▭}{▭} + twostack{▭}{▭} — twostack{▭}{▭} square! x^{circ} rightarrow lfloorsquarerfloor lceilsquarerceil
overline{square} vec{square} in forall notin exist mathbb{R} mathbb{C} mathbb{N} mathbb{Z} emptyset
vee wedge neg oplus cap cup square^{c} subset subsete superset supersete
int intint intintint int_{square}^{square} int_{square}^{square}int_{square}^{square} int_{square}^{square}int_{square}^{square}int_{square}^{square} sum prod
lim lim _{xto infty } lim _{xto 0+} lim _{xto 0-} frac{d}{dx} frac{d^2}{dx^2} left(squareright)^{‘} left(squareright)^{»} frac{partial}{partial x}
(2times2) (2times3) (3times3) (3times2) (4times2) (4times3) (4times4) (3times4) (2times4) (5times5)
(1times2) (1times3) (1times4) (1times5) (1times6) (2times1) (3times1) (4times1) (5times1) (6times1) (7times1)
mathrm{Радианы} mathrm{Степени} square! ( ) % mathrm{очистить}
arcsin sin sqrt{square} 7 8 9 div
arccos cos ln 4 5 6 times
arctan tan log 1 2 3
pi e x^{square} 0 . bold{=} +

Подпишитесь, чтобы подтвердить свой ответ

Подписаться

Войдите, чтобы сохранять заметки

Войти

Показать Этапы

Номер Строки

Примеры

  • среднее:значение:функции:x,:0,:1

  • среднее:значение:функции:x^{frac{2}{3}},:0,:1

  • среднее:значение:функции:sqrt{1-x^{2}}

  • среднее:значение:функции:y=x^{3}

  • Показать больше

Описание

Найдите среднее значение функции между интервалами шаг за шагом

function-average-calculator

ru

Блог-сообщения, имеющие отношение к Symbolab

  • Practice, practice, practice

    Math can be an intimidating subject. Each new topic we learn has symbols and problems we have never seen. The unknowing…

    Read More

  • Введите Задачу

    Сохранить в блокнот!

    Войти

    Теорема о среднем (продолжение)

         Оценка интеграла. Теорема о среднем. Среднее значение функции. Продолжение. Начало здесь

         Среднее арифметическое значение функции. Значение (f(xi)), находимое по теореме о среднем, называется средним арифметическим значением функции (f(x)) в интервале ([a,b]).

         Определение. Средним арифметическим значением (y_{cp}) непрерывной функции (y=f(x)) в интервале ([a,b]) называется отношение определенного интеграла от этой функции к длине интервала: $$y_{cp}=frac{int_{a}^{b}{f(x)dx}}{b-a}.$$

    Приведем некоторые соображения в обоснование этого определения.

         Пусть некоторая величина (y) принимает (n) значений (y_{1},y_{2},…,y_{n}.) Средним арифметическим значением этой величины называется частное (frac{y_{1}+y_{2}+…+y_{n}}{n},)

         Но что следует принять в качестве среднего значения непрерывной функции (y=f(x)) в некотором интервале ([a,b])?

         Разобьем интервал ([a,b]) на (n) равных частичных интервалов и возьмем значения функции в серединах этих интервалов — точках (xi _{i}): $$f(xi _{1}), f(xi _{2}), … , f(xi _{n}).$$

    При таком выборе точек (xi _{i}) значения функции берутся через равные промежутки; именно так обычно поступают при всякого рода измерениях. Возьмем среднее арифметическое (eta _{n}) указанных значений: $$eta _{n}=frac{f(xi _{1})+f(xi _{2})+…+f(xi _{n})}{n}.$$

    Ясно, что чем больше (n), тем больше, значений функции учитывается при отыскании среднего значения, и поэтому естественно за среднее значение (y_{cp}) функции принять предел, к которому стремится (eta _{n}) при (nrightarrowpropto). Найдем этот предел.

         Умножив и разделив выражение (eta _{n}) на (b-a), получим $$eta _{n}=frac{1}{b-a}[f(xi _{1})Delta x_{1}+f(xi _{2})+Delta x_{2}+…+f(xi _{n})Delta x_{n}],$$

    где (Delta x_{1}=Delta x_{2}=…=Delta x_{n}=frac{b-a}{n}.) Преходя к переделу при (nrightarrowpropto) (при этом (Delta xrightarrow 0), поучаем указанное выше выражение для среднего значения $$y_{cp}=lim frac{1}{b-a}sum_{i=1}^{n}{f(xi _{i})Delta x_{i}}=frac{1}{b-a}int_{a}^{b}{f(x)dx}.$$

         На основании теоремы о среднем заключаем, что (y_{cp}=f(xi)), где (xi in (a,b)). Среднее значение непрерывной функции в интервале всегда (если только функция не постоянная) меньше некоторых ее значений, больше других ее значений и равно хотя бы одному ее значению

         Понятие среднего значения функции очень употребительно в технике. Многие величины часто характеризуются своими средними значениями; таковы, например, давление пара, мощность переменного тока, скорость химической реакции и т.п.


    2012-11-06 • Просмотров [ 4395 ]

    Как вывести Среднее арифметическое через функцию?

    #include <stdio.h>
    #include <stdlib.h>
    #include <locale.h>
    #include <time.h>
    
    void A(int* a)
    {
    	for (int i = 0; i < 10; i++)
    	{
    		a[i] = 10 + rand() % 90;
    		s += a[i];
    	}
    }
    
    void printS()
    {
    	printf("Среднее арифметическое: %d, s/10);
    }
    
    int main()
    {
    	setlocale(0, "");
    	srand(time(NULL));
    	int a[10], i;
    	int s = 0;
    	int* ax = a;
    
    	A(ax);
    	PrintS();
    
    	return 0;
    }


    • Вопрос задан

      более двух лет назад

    • 142 просмотра

    #include <iostream>
    #include <string>
    #include <stdio.h>
    
    double get_average_massive(int32_t* m_array, uint8_t m_size_array)
    {
        double sum = 0.0;
        
        for (int32_t i = 0; i < m_size_array; i++)
        {
            m_array[i] = i;
            sum += m_array[i];
        }
        
        double m_average = sum/(double)m_size_array;
      
        return m_average;
    }
    
    
    void print_average_value(double *ptr_average)
    {
        printf(" Average value = %lf", *ptr_average);
    }
    
    int main()
    {
        const uint8_t size_Array_A = 10;
        int32_t Array_A[size_Array_A];
        
        double average = get_average_massive(Array_A, size_Array_A);
        
        print_average_value(&average);
        
        return 0;
    }

    Пригласить эксперта

    У вас переменная s локальная в main(), а вы ее в A() используете.

    Сделайте A() возвращающей среднее (и это должен быть не int а float). Заведите переменную для суммы внутри A. А функция PrintS() должна будет принимать это среднее для печати. А то и вообще удалите PrintS — функция для одной операции вывода несет мало смысла.

    #include <stdio.h>
    #include <stdlib.h>
    #include <locale.h>
    #include <time.h>
    
    void A(int* a, double* s)
    {
      for (int i = 0; i < 10; i++)
      {
        a[i] = i;
        *s += a[i];
      }
    }
    
    void printS(double s)
    {
      printf("Среднее арифметическое: %lf", s/10);
    }
    
    int main()
    {
      setlocale(0, "");
      srand(time(NULL));
      int a[10];
    
      double s = 0;
    
      int* ax = a;
    
      A(ax, &s);
    
      printS(s);
    
      return 0;
    }


    • Показать ещё
      Загружается…

    29 мая 2023, в 22:30

    10000 руб./за проект

    29 мая 2023, в 21:41

    2000 руб./за проект

    29 мая 2023, в 21:27

    4000 руб./за проект

    Минуточку внимания

    AlexanderAlex

    3 / 3 / 0

    Регистрация: 18.12.2018

    Сообщений: 44

    1

    Вычислить среднее арифметическое значений функции

    18.02.2021, 15:28. Показов 1132. Ответов 7

    Метки с++ (Все метки)


    Студворк — интернет-сервис помощи студентам

    Что следует изменить в программе, чтобы выполнить условия задачи? Они следующие: Вычислить среднее арифметическое значений функции Y = 1/6sin(x – 1) на отрезке [-5;10] c шагом 0.2, стоящих после её максимального значения.

    C++
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    #include <iostream>
    #include<stdio.h>
    #include<math.h>
    using namespace std;
    int main()
    {
        setlocale(LC_ALL, "RUS");
         int    xn = -5, xk = 10, kol = 0;
              float  h = 0.2, x, y, ymin = 100, xmin, sum = 0;
           for (x = xn; x <= xk; x += h)
            { y = 1/6*(sin(x-1));
                 if (y < ymin) { ymin = y; xmin = x; }
            }
            printf(" xmin = % 5.2f   ymin = % 5.2f", xmin, ymin);
            x = xmin;
            while (x <= xk)
            {
                y = 1/6*(sin(x-1));
                if (y > 1) { sum += y; kol++; }
                x += h;
            }
            printf("n Среднее арифметическое = % 5.2f", sum / kol);
        }



    0



    zss

    Модератор

    Эксперт С++

    13111 / 10381 / 6209

    Регистрация: 18.12.2011

    Сообщений: 27,767

    18.02.2021, 16:09

    2

    Цитата
    Сообщение от AlexanderAlex
    Посмотреть сообщение

    y = 1/6*(sin(x-1));

    C++
    1
    
    y = 1.0/6.0*(sin(x-1.0));



    0



    Volga_

    Модератор

    Эксперт CЭксперт С++

    4647 / 2666 / 1436

    Регистрация: 14.12.2018

    Сообщений: 4,961

    Записей в блоге: 1

    18.02.2021, 16:20

    3

    Цитата
    Сообщение от AlexanderAlex
    Посмотреть сообщение

    стоящих после её максимального значения.

    Не понял это понятие ! Объясните еще, пожалуйста.

    Добавлено через 6 минут
    Как я понимаю, что среднее арифметическое значений функции при x>=xmax? Если так, то попробуйте ниже код:

    C++
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    
    #include <iostream>
    #include<stdio.h>
    #include<math.h>
    using namespace std;
    int main()
    {
        setlocale(LC_ALL, "RUS");
        float a = -5, b = 10, h = 0.2;
        float xmin, ymin, xmax, ymax;
        float  sum = 0;
        float x, y;
        for (x = a; x <= b; x += h)
        {
            y = 1.f / 6 * (sin(x - 1));
            if (x == a)
            {
                ymin = y;
                ymax = y;
            }
            if (ymin >= y) { ymin = y; xmin = x; }
            if (ymax <= y) { ymax = y; xmax = x; }
        }
        printf("xmin = % 5.2f   ymin = % 5.2fn", xmin, ymin);
        printf("xmax = % 5.2f   ymax = % 5.2f", xmax, ymax);
     
        int kol = 0;
        for (x = xmax; x <= b; x += h)
        {
            y = 1.f / 6 * (sin(x - 1));
            kol = kol + 1;
            sum = sum + y;
        }
        printf("nСреднее арифметическое = % 5.2f", sum / kol);
    }



    0



    Yetty

    7427 / 5021 / 2891

    Регистрация: 18.12.2017

    Сообщений: 15,694

    18.02.2021, 17:04

    4

    Цитата
    Сообщение от Volga_
    Посмотреть сообщение

    среднее арифметическое значений функции при x>=xmax?

    неравенство строгое, x>xmax. здесь тоже: ymax < y. зачем находите min ?

    достаточно вычислять sin(x-1.), в конце среднее арифметическое разделить на 6

    C++
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    #include <iostream>
    #include <cfloat>
    #include <cmath>
    using namespace std;
     
    int main()
    {    
        int count=0;
        double xn=-5., xk=10., h=0.2, max=-DBL_MAX, xmax=0., local_avg=0., u;
              
        for (double x = xn; x <= xk+h/2.; x+=h)
        { 
            u=sin(x-1.);
            if (u>max) {max=u;xmax=x;}        
        }    
            
        for (double x = xmax + h; x <= xk+h/2.; x+=h)
        { 
            u=sin(x-1.);
            local_avg+=u;
            count++;
        }
        
        if(count)
        {
            local_avg/=(6.*count);        
            cout << "local average = " << local_avg << "n";
        }
        else cout << "after max values are absentn";
        
    system("pause");
    return 0;
    }

    Добавлено через 5 минут
    можно оптимизировать этот код — например запомнить значения, найденные в первом цикле



    0



    Модератор

    Эксперт CЭксперт С++

    4647 / 2666 / 1436

    Регистрация: 14.12.2018

    Сообщений: 4,961

    Записей в блоге: 1

    18.02.2021, 17:13

    5

    Цитата
    Сообщение от Yetty
    Посмотреть сообщение

    неравенство строгое, x>xmax. здесь тоже: ymax < y. зачем находите min ?

    Не совсем понял это от автора. Я только менял чуть-чуть как одна дополнительная часть …

    Цитата
    Сообщение от AlexanderAlex
    Посмотреть сообщение

    Что следует изменить в программе, чтобы выполнить условия задачи?

    Цитата
    Сообщение от Yetty
    Посмотреть сообщение

    x <= xk+h/2.

    Не знаю почему так от вас???



    0



    Yetty

    7427 / 5021 / 2891

    Регистрация: 18.12.2017

    Сообщений: 15,694

    18.02.2021, 17:21

    6

    можно также заметить, что отрезок достаточно большой, больше периода функции sin, поэтому максимальное sin(x-1) при достаточно мелком шаге будет близко к 1 (в данном случае max=0.999574)

    Добавлено через 3 минуты

    Цитата
    Сообщение от Volga_
    Посмотреть сообщение

    Не совсем понял это от автора

    что здесь можно не понять ? ищем значения ПОСЛЕ максимального

    Цитата
    Сообщение от Volga_
    Посмотреть сообщение

    почему так

    стандартный приём при работе с вещественными числами. чтобы точно попала правая граница. пример:

    C++
    1
    2
    
    for (double x = 9.; x <= 10.2; x+=0.4)
            cout << x << "n";



    0



    AlexanderAlex

    3 / 3 / 0

    Регистрация: 18.12.2018

    Сообщений: 44

    19.02.2021, 10:58

     [ТС]

    7

    Ну я сам помучился и все-таки сделал, вот что получилось, спасибо всем, проверьте, вдруг скажите ошибся где))

    C++
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    #include <iostream>
    #include<stdio.h>
     #include<math.h>
      using namespace std;
       int main()
    {
     setlocale(LC_ALL, "RUS");
      int    xn = -5, xk = 10, kol = 0;
       float  h = 0.2, x, y, ymax = 100, xmax, sum = 0;
        for (x = xn; x <= xk; x += h)
        {
          y = (1/6*(sin(x - 1));
           if (y < ymax)
            {ymax = y; xmax = x; }
        }
      printf("xmax = %f   ymax = %f ", xmax, ymax);
       x = xmax; while (x <= xk)
       {
         y = (1/6*(sin(x-1));
          if (y < 1) { sum += y; kol++; } x += h;
       }
           printf("Среднее арифметическое = %f", sum / kol);
    }



    0



    7427 / 5021 / 2891

    Регистрация: 18.12.2017

    Сообщений: 15,694

    19.02.2021, 11:12

    8

    AlexanderAlex, у Вас опять неправильно. если не обращаете внимание на то что Вам пишут, зачем обращаетесь ?



    0



    IT_Exp

    Эксперт

    87844 / 49110 / 22898

    Регистрация: 17.06.2006

    Сообщений: 92,604

    19.02.2021, 11:12

    Помогаю со студенческими работами здесь

    Найти среднее арифметическое значений функции f(x) в точках а, b, (a+b)/2, используя обращение к функции
    Найти среднее арифметическое значений функции f(x) в точках а, b, (a+b)/2, используя обращение к…

    Найти среднее арифметическое значений функции f(x) в точках а, b, (a+b)/2, используя обращение к функции
    здраствуйте знатаки!! помогите пожалуйсто решить задачу.Найти среднее арифметическое значений…

    Найти среднее арифметическое значений функции f(x) в точках а, b, (a+b)/2, используя обращение к функции
    f=((e^x+e^(-x))/2)*lg()2*x)

    Добавлено через 3 часа 7 минут
    что реально никто не может помочь?

    Найти среднее арифметическое значений функции f(x) в точках а, b, (a+b)/2, используя обращение к функции
    Помогите срочно, хотя бы перевести формулу на язык С++

    Найти среднее арифметическое значений функции f(x) в точках a, b, (a+b)/2 используя обращение к функции
    А этой нету:
    3.Найти среднее арифметическое значений функции f(x) в точках a, b, (a+b)/2 используя…

    Найти среднее арифметическое значений заданной функции в указанных точках, используя обращение к функции
    Ребят, помогите пожалуйста!

    Найти среднее арифметическое значений функции f(x) в точках а, b,…

    Искать еще темы с ответами

    Или воспользуйтесь поиском по форуму:

    8

    Иллюстрированный самоучитель по MathCAD 12

    В Mathcad имеется ряд встроенных функций для расчетов числовых статистических характеристик рядов случайных данных:

    • mean(x) – выборочное среднее значение;
    • median (х) – выборочная медиана (median) – значение аргумента, которое делит гистограмму плотности вероятностей на две равные части;
    • var (х) – выборочная дисперсия (variance);
    • stdev(x) – среднеквадратичное (или стандартное) отклонение (standard deviation);
    • max(x),min(x) – максимальное и минимальное значения выборки;
    • mode(x) – наиболее часто встречающееся значение выборки;
    • var(х),stdev(x) – выборочная дисперсия и среднеквадратичное отклонение в другой нормировке:
      • х – вектор (или матрица) с выборкой случайных данных.

      Пример использования первых четырех функций приведен в листинге 12.10.

      Листинг 12.10. Расчет числовых характеристик случайного вектора:

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

      Внимание!
      Осторожно относитесь к написанию первой литеры в этих функциях, особенно при обработке малых выборок (листинг 12.11)
      .

      Листинг 12.11. К определению статических характеристик:

      Иногда в статистике встречаются и иные функции, например, помимо арифметического среднего, применяются другие средние значения:

      • gmean(x) – геометрическое среднее выборки случайных чисел;
      • hmean(x) – гармоническое среднее выборки случайных чисел.

      Математическое определение этих функций и пример их использования в Mathcad приведены в листинге 12.12.

      Маткад как найти среднее значение функции

      Встроенные функции и ключевые слова

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

      • х и у – вещественные числа;
      • z – вещественное либо комплексное число;
      • m, n, i, j и k – целые числа;
      • v, u и все имена, начинающиеся с v – векторы;
      • А и B – матрицы либо векторы;
      • М и N – квадратные матрицы;
      • F – вектор-функция;
      • file – либо имя файла, либо файловая переменная, присоединенная к имени файла.

      Все углы в тригонометрических функциях выражены в радианах. Многозначные функции и функции с комплексным аргументом всегда возвращают главное значение. Имена приведенных функций нечувствительны к шрифту, но чувствительны к регистру – их следует вводить с клавиатуры в точности, как они приведены. Все функции возвращают указанное для них значение

      Как найти максимум функции в маткаде

      MathCAD позволяет находить экстремумы функций, которые имеют конечное количество экстремумов. Для нахождения экстремума используются функции Minimize и Maximize .

      На рис.14 показан пример использования функции нахождения минимума. Нахождение максимума происходит аналогично, за исключением того, что функцию Minimize необходимо заменить на Maximize . В данном примере показан случай, когда максимум функции не может быть найден.

      8.6.1. Экстремум функции одной переменной

      Поиск экстремума функции включает в себя задачи нахождения локального и глобального экстремума. Последние называют еще задачами оптимизации. Рассмотрим конкретный пример функции f(x), показанной графиком на рис. 8.8 на интервале (-2,5). Она имеет глобальный максимум на левой границе интервала, глобальный минимум, локальный максимум, локальный минимум и локальный максимум на правой границе интервала (в порядке слева направо).

      В Mathcad с помощью встроенных функций решается только задача поиска локального экстремума. Чтобы найти глобальный максимум (или минимум), требуется либо сначала вычислить все их локальные значения и потом выбрать из них наибольший (наименьший), либо предварительно просканиро-вать с некоторым шагом рассматриваемую область, чтобы выделить из нее подобласть наибольших (наименьших) значений функции и осуществить поиск глобального экстремума, уже находясь в его окрестности. Последний путь таит в себе некоторую опасность уйти в зону другого локального экстремума, но часто может быть предпочтительнее из соображений экономии времени.

      Рис. 8.8. График функции f(х)=х 4 +5х 3 -10х

      Для поиска локальных экстремумов имеются две встроенные функции, которые могут применяться как в пределах вычислительного блока, так и автономно.

      • Minimize (f, x1, . ,хм) — вектор значений аргументов, при которых функция f достигает минимума;
      • Maximize (f, х1, . ,хм) — вектор значений аргументов, при которых функция f достигает максимума;
      • f (x1, . , хм. ) — функция;
      • x1, . , xм — аргументы, по которым производится минимизация (максимизация).

      Всем аргументам функции f предварительно следует присвоить некоторые значения, причем для тех переменных, по которым производится минимизация, они будут восприниматься как начальные приближения. Примеры вычисления экстремума функции одной переменной (рис. 8.8) без дополнительных условий показаны в листингах 8.11- 8.12. Поскольку никаких дополнительных условий в них не вводится, поиск экстремумов выполняется для любых значений.

      Листинг 8.11. Минимум функции одной переменной

      Листинг 8.12. Максимум функции одной переменной

      Как видно из листингов, существенное влияние на результат оказывает выбор начального приближения, в зависимости от чего в качестве ответа выдаются различные локальные экстремумы. В последнем случае численный метод вообще не справляется с задачей, поскольку начальное приближение х=-10 выбрано далеко от области локального максимума, и поиск решения уходит в сторону увеличения f (х).

      1. Поиск экстремума функции

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

      Для решения задач поиска максимума и минимума в Mathcad имеются встроенные функции Minerr, Minimize и Maximize. Все они используют те же градиентные численные методы, что и функция Find для решения уравнений.

      2. Экстремум функции одной переменной

      Поиск экстремума функции включает в себя задачи нахождения локального и глобального экстремума. Последние называют еще задачами оптимизации. Рассмотрим конкретный пример функции f(x), показанной графиком на рис.2 на интервале (-2,5). Она имеет глобальный максимум на левой границе интервала, глобальный минимум, локальный максимум, локальный минимум и локальный максимум на правой границе интервала (в порядке слева направо).

      В Mathcad с помощью встроенных функций решается только задача поиска локального экстремума. Чтобы найти глобальный максимум (или минимум), требуется либо сначала вычислить все их локальные значения и потом выбрать из них наибольший (наименьший), либо предварительно просканировать с некоторым шагом рассматриваемую область, чтобы выделить из нее подобласть наибольших (наименьших) значений функции и осуществить поиск глобального экстремума, уже находясь в его окрестности. Последний путь таит в себе некоторую опасность уйти в зону другого локального экстремума, но часто может быть предпочтительнее из соображений экономии времени.

      Рис. 1. График функции f(х)=х 4 +5х 3 -10х

      Построим график заданной функции (рис.1). По графику видны участки локальных экстремумов функции.

      Для поиска локальных экстремумов имеются две встроенные функции, которые могут применяться как в пределах вычислительного блока, так и автономно.

      · Minimize (f, x1, … ,хм) — вектор значений аргументов, при которых функция f достигает минимума;

      · Maximize (f, х1, … ,хм) — вектор значений аргументов, при которых функция f достигает максимума;

      Всем аргументам функции f предварительно следует присвоить некоторые значения, причем для тех переменных, по которым производится минимизация, они будут восприниматься как начальные приближения. Примеры вычисления экстремума функции одной переменной (рис.1) без дополнительных условий показаны в листинге на рис.2. Поскольку никаких дополнительных условий в них не вводится, поиск экстремумов выполняется для любых значений.

      Рис.2. Поиск локальных экстремумов функции одной переменной

      Как видно из листинга, существенное влияние на результат оказывает выбор начального приближения, в зависимости от чего в качестве ответа выдаются локальные различные экстремумы. В последнем случае численный метод вообще не справляется с задачей, поскольку начальное приближение х=-10 выбрано далеко от области локального максимума, и поиск решения уходит в сторону увеличения f (х).

      3. Условный экстремум

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

      Рис. 3. Три примера поиска условного экстремума функции

      Не забывайте о важности выбора правильного начального приближения и в случае задач на условный экстремум. Например, если вместо условия — 3 Скачать пример

      Александр Малыгин

      Объект обсуждения – программное обеспечение для выполнения автоматизированного конструкторского и технологического проектирования, разработки управляющих программ, вопросы, связанные с разработкой прикладных САПР.

      2 Комментарии “ Оптимизация функций одной и нескольких переменных в PTC MathCAD ”

      Спасибо, очень информативано! Скажите, а для 9 переменных такая же функция и такой же принцип используется?

      Функция будет другая. Вы сами подбираете вид функции, остальное аналогично.

    Понравилась статья? Поделить с друзьями:
  • Как найти осевое сечение конуса формулы
  • Составьте классификацию вещей как объектов гражданского права
  • Картинка как исправить ситуацию
  • Как найти координаты своего участка на местности
  • Как найти телефон на андроиде через приложение