Построение экспоненциальной функции в matlab

#charts #matlab

#Диаграммы #matlab

Вопрос:

Я хотел бы развить некоторую интуицию для этого языка. В частности, о построении функций на некотором интервале. Вот конкретный пример, который я пытаюсь разработать. Постройте график exp (x) на замкнутом интервале [-2,2]. Я думаю, здесь exp(x) — это обозначение Matlab для e ^ x. Это сценарий, основанный на руководстве, которое я только что прочитал :

x = [-2, 2 ]; y = exp(x); график (x,y)

Результатом является не экспоненциальная кривая, а прямая линия. Что не так с этим скриптом? А также, если кто-нибудь может порекомендовать хорошее руководство для этого, я был бы очень признателен. Результаты Google, которые я нашел, содержат только рабочие примеры.

Комментарии:

1. В этом скрипте нет ничего плохого, но x = [-2, 2] он создаст массив из двух точек данных. В то время как вам нужно больше точек данных, x = -2:0.1:2 будет создан вектор значений от -2 до 2 с шагом 0,1

2. попробуйте использовать plot( x, y, 'o-' ) , чтобы увидеть точки, а также соединяющую их линию, чтобы сделать комментарий Ринкерта очевидным

Ответ №1:

Два способа настройки количества точек, отображаемых (выборок) функции, заключаются в том, чтобы либо указать интервал между точками, либо количество точек, которые должны быть отображены. plot() Функция построит векторы x , и y которые построят количество точек, равное длине вектора x . Аналогичная идея для точечной диаграммы листа Excel, которая соединяется линией.

Установка интервала между точками построения

График с определением интервала

 X_Minimum = -2;
X_Maximum = 2;
Plotting_Interval = 0.25;

x = (X_Minimum: Plotting_Interval: X_Maximum);
y = exp(x); 

plot(x,y,'o-');
title(num2str(Plotting_Interval)   " Interval Between Points");
  

Установка количества точек построения

Количество точек, определенных на графике

 X_Minimum = -2;
X_Maximum = 2;
Number_Of_Points = 18;

x = linspace(X_Minimum,X_Maximum,Number_Of_Points);
y = exp(x); 

plot(x,y,'o-');
title(num2str(Number_Of_Points)   " Points Plotted");
  

Запускался с использованием MATLAB R2019b

Ответ №2:

Это потому, что вы вводите только две точки в функцию plot():(-2, exp(-2)),(2, exp(2)) .В matlab x amp; y для plot(x, y) являются векторами имеющихся у вас точек, но не их интервалов.