Я хочу построить одну половину положительной увеличивающейся половины движения снаряда, проходящего через заданную координату по оси y, скажем до вершины средней точки или среднего значения движения. Например, указав координаты, начиная с (0,0) до (1000,150), и только положительная половина кривой построена, так как другая половина будет симметричной. Вершина первой половины кривой касается (1000, 150). Может кто-нибудь, пожалуйста, напишите код для этого. Благодарю вас.Генерировать движение снаряда, задавая координаты
ответ
Так что вы ищете квадратичной кривой
h(t) = a + b t + c t^2
Такое, что он проходит через точки (0,0)
и (x,y)
:
0 = a # -> a = 0
y = a + b x + c x^2 # -> y = x (b + c x)
Вы также хотите, наклон кривой
h'(t) = b + 2 c t
быть нулевым на вершине (x,y)
0 = b + 2 c x # -> b = -2 c x
Следовательно, у вас есть
y = x (-2 c x + c x) # -> c = -y/x^2
Так код, который вы хотите,
x = 1000;
y = 150;
a = 0;
c = -y/x^2;
b = -2*c*x;
t = 0:x;
h = a + b*t + c*t.^2;
plot(t,h)
grid
Что дает этот сюжет:
Благодарим вас за подробное объяснение. Однако, когда я построил с точным кодом как ваш, ось Y в моем случае просто пошла на 80, что странно, как в программе, она упоминается как 150. Так что, независимо от того, что я упоминаю для оси Y, график делает никогда не задумывайтесь до этой координаты! В чем может быть проблема? – user1142671
Извините, ошибка в моем коде. Исправлено! –
Может быть, если это тип домашнего задания проблема вам нужна t o пометить его как таковой. Также принято считать, что вы пытаетесь решить свою проблему (продвигаемый пост или пример) и понимаете, что вопросы типа «Do my work for me» могут быть закрыты. Пожалуйста, прочитайте [FAQ] (http://meta.stackexchange.com/q/10811/152388) – ja72
Это вопрос программирования или физический вопрос. Вы читали о [actionile motion] (http://en.wikipedia.org/wiki/Projectile_motion#Parabolic_trajectory) и знаете, как команда 'plot' работает в' MATLAB'? – ja72
Это и проблема с программированием и движением снарядов, и я не знаю ни одного из них. Я не мог найти тег homeowork, иначе я бы сделал то же самое. – user1142671