> 数学 >
已知类似抛物线的曲线方程 怎么用matlab求出最小曲率半径
曲线方程为 y=(-5.324e-015*x.^7)+(-8.452e-012*x^6)+(-5.204e-009*x^5)+(-1.558e-006*x^4)+(-0.0002253*x^3)+(-0.01515*x^2)+(-1.464*x)+222.9 本人对matlab不是很精通 所以大神最好把程序写出来
曲率半径求解的公式
y=f(x)
曲率K=|y''|/[(1+y'^2)^(3/2)]
曲率半径=1/K
人气:399 ℃ 时间:2020-06-24 08:46:53
解答
clear all
clc
syms x;
f=(-5.324e-15*x^7)+(-8.452e-12*x^6)+(-5.204e-9*x^5)+(-1.558e-6*x^4)+(-0.0002253*x^3)+(-0.01515*x^2)+(-1.464*x)+222.9;
f1=diff(f);
f2=diff(f1);
g=(1+f1^2)^(3/2)/abs(f2);
F=@(x)eval(g);
[X,fval]=fminbnd(F,0,2)%X为最小曲率半径事的x的值,fval为最小曲率半径

自变量的范围要给出来啊



clear all
clc
syms x;

f=(-5.324e-15*x^7)+(-8.452e-12*x^6)+(-5.204e-9*x^5)+(-1.558e-6*x^4)+(-0.0002253*x^3)+(-0.01515*x^2)+(-1.464*x)+222.9;
ezplot(f,[-500 0])
f1=diff(f);
f2=diff(f1);
g=(1+f1^2)^(3/2)/abs(f2)
F=@(x)(eval(g));
[X,fval]=fminbnd(F,-500,0)



另外根据计算的结果最小曲率并不在顶点处,可提高拟合的阶次来降低误差

推荐
猜你喜欢
© 2024 79432.Com All Rights Reserved.
电脑版|手机版