2015-06-21 6 views
0

Я использую набор инструментов для подбора кривой matlab, чтобы соответствовать кривой для моих данных. Я использовал кубический сплайн, на графике он хорошо подходит, но я хотел бы видеть используемое уравнение. Есть ли способ сделать это?Как показать уравнение в наборе инструментов Matlab?

Кроме того, есть ли способ показать код? Я имею в виду, что код использовался, чтобы соответствовать кривой на панели инструментов?

Редактировать: Мне удалось получить код как следующий, файл-> сгенерировать код. Но все же мне нужно найти уравнение, может ли кто-нибудь сказать мне, как я могу это сделать?

спасибо.

ответ

1

Я не уверен, как отображать любые уравнения на графике, но вы должны иметь возможность реплицировать кубическую сплайн-интерполяцию с помощью команд spline и unmkpp.

% returns the piecewise polynomial form of the cubic spline interpolant 
pp = spline(x,Y) 
% use unmkpp(pp) to get the piecewise polynomial details 
[breaks,coefs,l,k,d] = unmkpp(pp) 

Обратите внимание, что у вас будет набор коэффициентов для каждой части кусочного полинома. Например:

x = -4:4; 
y = [0 .15 1.12 2.36 2.36 1.46 .49 .06 0]; 
% cs stores the piecewise polynomial 
cs = spline(x,[0 y 0]); 
% extract the coefficients 
[breaks,coefs,l,k,d] = unmkpp(cs) 
% the endpoints of each of the polynomial pieces 
breaks = 
    -4 -3 -2 -1 0 1 2 3 4 
% 8 sets of coefficients (each set of 4 coefficients for one polynomial piece) 
coefs = 
    0.20344 -0.05344 0.00000 0.00000 
    -0.09033 0.55689 0.50344 0.15000 
    -0.39211 0.28589 1.34622 1.12000 
    0.14878 -0.89045 0.74167 2.36000 
    0.13699 -0.44411 -0.59289 2.36000 
    0.13325 -0.03313 -1.07012 1.46000 
    -0.05998 0.36661 -0.73663 0.49000 
    -0.06334 0.18668 -0.18334 0.06000 
% the number of pieces is 8 
l = 8 
% order is 4 (so 4 coefficients) 
k = 4 
d = 1 
% plot the interpolation 
xx = linspace(-4,4,101); 
plot(x,y,'o',xx,ppval(cs,xx),'-'); 
+0

Спасибо, я сделал это в окне командной строки, и это то, как он работал, с = сплайн (глубина, CNCF) р = форма: «рр» разрывы: [ 1x4427 double] coefs: [4426x4 double] штук: 4426 заказ: 4 dim: 1 Кажется, что это информация о данных, но как получить уравнение? Я добавил эту строку, [breaks, coefs, l, k, d] = unmkpp (pp), но я получаю много строк данных, каждая из которых содержит 11 значений, являются ли эти коэффициенты? – Dania

+0

У вас есть 4426 отдельных частей полинома. Каждая часть представляет собой кубический полином с 4 соответствующими коэффициентами. Существует не одно уравнение: у вас есть 4426 отдельных уравнений, которые сегментированы вместе. Вот почему ваш образ выглядит так гладко; каждая часть полинома подходит только для очень небольшого сегмента ваших данных! –

+0

Спасибо большое, это отличное объяснение, но можете ли вы, пожалуйста, помочь мне в этом, я не уверен, как интерпретировать коэффициенты. Это пересечение, x^1, x^2, x^3 справа налево? Спасибо. – Dania

 Смежные вопросы

  • Нет связанных вопросов^_^