Синтаксис в 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
Неверное число входов."
Помогите, как правильно написать?
Ответы
Попробуйте вариант
Спасибо. еще вопрос:
Осталось одно задание.
Нужно построить график первой производной этой функции на отрезке [0.5,0.6] используя функцию diff.
К этому заданию примеров нет. Кому не сложно - помогите пожалуйста.
Я посмотрел примеры использования функции diff.
На их основании написал вот так:
(тоже вопрос верно ли я синтаксически записал формулу)
В результате графика нет, а есть такое "Ошибка использования ==> plot
Векторы должны быть одной длины."
Где я ошибся?
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);
x2 sin(y)-1 как пишется
x = 0:2:2*pi;
f=sin(x)./x;
g=(3*x.^2)./(1-x.^2);
Это ведь правильно?
z=sin(1-x)*cos(1-y);