How to numerically differentiate provided data?
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Lingbai Ren
el 15 de Sept. de 2021
Comentada: Lingbai Ren
el 24 de Sept. de 2021
I have the measurements of x with corresponding y displacement lengths:
x = [0,0.375,0.75,1.125,1.5,1.875,2.25,2.625,3];
y = [0,-0.2571,-0.9484,-1.9689,-3.2262,-4.6414,-6.1503,-7.7051,-9.275];
and dy/dx = theta(x) >> theta is the slope
My question is how to numerically differentiate the provided data for displacement y(x)
and the hint is I can choose formulas of any error order.
It's a question combined both math and numerical method, can any one give some help?
0 comentarios
Respuesta aceptada
Walter Roberson
el 15 de Sept. de 2021
x = [0,0.375,0.75,1.125,1.5,1.875,2.25,2.625,3];
y = [0,-0.2571,-0.9484,-1.9689,-3.2262,-4.6414,-6.1503,-7.7051,-9.275];
theta = gradient(x,y)
plot(x, y, x, theta)
legend({'x', 'theta'})
3 comentarios
Walter Roberson
el 15 de Sept. de 2021
x = [0,0.375,0.75,1.125,1.5,1.875,2.25,2.625,3];
y = [0,-0.2571,-0.9484,-1.9689,-3.2262,-4.6414,-6.1503,-7.7051,-9.275];
orders = 1:7;
for order = orders
p = polyfit(x, y, order);
predict = polyval(p, x);
plot(x, predict, 'displayname', "order = " + order);
hold on
err(order-min(orders)+1) = sum((predict - y).^2);
end
xlabel('x'); ylabel('y predicted')
legend show
figure(2)
plot(orders, err);
xlabel('polynomial order'); ylabel('sse')
Más respuestas (0)
Ver también
Categorías
Más información sobre Scatter Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!