• Регистрация
Andrey
Andrey+3.09
н/д
  • Написать
  • Подписаться

Синтаксис в MATLAB

Математика и статистика 
17.12.2019

Локальная интерполяция. Вот это работает великолепно:

>>x=0:0.5:10; 
>>y=cos(x); 
>>xi=0:0.01:10; 
>>yi=interp1(x,y,xi); 
>>plot(x,y,'x',xi,yi); 

Теперь нужно вместо y=cos(x) посчитать y=e^sin(x)
Я как только не пытался вводить эту экспоненту в степени синусХ- постоянно выдаёт такое "Ошибка использования ==> exp
Неверное число входов."
Помогите, как правильно написать?

Теги

  • MATLAB
    17.12.2019

    Ответы

    • MaximSidorov
      MaximSidorov+87.65
      17.12.2019 13:51

      Попробуйте вариант

      y=exp(sin(x))
      • Andrey
        Andrey+3.09
        17.12.2019 13:53

        Спасибо. еще вопрос:

        Осталось одно задание. 

        Изображение 

        Нужно построить график первой производной этой функции на отрезке [0.5,0.6] используя функцию diff. 

        К этому заданию примеров нет. Кому не сложно - помогите пожалуйста.

        Я посмотрел примеры использования функции diff. 

        На их основании написал вот так: 

        >> 
        
        x=[0.5:0.6];
        
        >> y=1/x*sqrt(x.^3)+4;
        
        >> d=diff(y);
        
        >> plot(d);
        

         

        (тоже вопрос верно ли я синтаксически записал формулу) 

        В результате графика нет, а есть такое "Ошибка использования ==> plot 

        Векторы должны быть одной длины." 

        Где я ошибся?

        • MaximSidorov
          MaximSidorov+87.65
          17.12.2019 13:54

          1. В строке x=[0.5:0.6]; лишние скобки, а главное, предполагается шаг изменения =1. Формат д.б. такой x= нач.знач. : шаг :кон.знач. 

          2. В строке y= точки должны ставиться перед всеми операциями деления, умножения и возведения в степень с участием вектора x. То есть в вашем случае везде. 

          3. diff(y) дает приращение функции. Производная, как известно, аппроксимируется отношением приращения функции к приращению аргумента. 

          4. diff даст на 1 элемент меньше чем в x и в y. Можно считать, что это приращения, вычисленные для точек между x. Соответственно, надо "выкручиваться" при построении графика. Например, так: 

          plot(x(1:end-1)+x(2)/2-x(1)/2,d);

      Ближайшие события