• Регистрация
Andrey-M
Andrey-M +16.10
н/д

Синтаксис в 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
Неверное число входов."
Помогите, как правильно написать?

Теги

    17.12.2019

    Ответы

    • MaximSidorov
      MaximSidorov+118.29
      17.12.2019 10:51

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

      y=exp(sin(x))
      • Andrey-M
        Andrey-M+16.10
        17.12.2019 10: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+118.29
          17.12.2019 10: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);

      • Архитертор
        Архитертор+9.00
        19.03.2020 19:01

        x2 sin(y)-1 как пишется

         

        • Анэля
          Анэля+1.00
          8.04.2020 08:27

          x = 0:2:2*pi;
          f=sin(x)./x;
          g=(3*x.^2)./(1-x.^2);

          Это ведь правильно? 

          z=sin(1-x)*cos(1-y);