已知爆轰压力在罩表面随时间和空间位置的变化曲线,提炼出极值点,极值点基本坐标的椭圆方程拟合算法如下,拟合获得椭圆与药形罩的结构关系。
clc,clear
x=[9.983,27.5,44.8,50.27,42.04,30.18,21.39,13.94]';
y=[0.1173,0.16408,0.17743,0.10333,0.06818,0.06926,0.07321,0.08254]';
fun=@(t)sum((t(1)*x.^2+t(2)*x.*y+t(3)*y.^2+t(4)*x+t(5)*y+t(6)).^2);
[t fval]=fminunc(fun,rand(6,1))
运行后,获得 fval 的取值,输入以下代码
plot(x,y,'or')
hold on
syms x y
ezplot(t(1)*x.^2+t(2)*x.*y+t(3)*y.^2+t(4)*x+t(5)*y+t(6),[-0.05 0.05 -0.06 0.06])
计算拟合曲线。
其中多次输入:
[t fval]=fminunc(fun,rand(6,1))
可以获得不同的 fval 的取值。
本算法的完整例子如下:
x=[-1.5484, -1.3843, -1.1175, -0.76781, -0.36121, 0.072186, 0.50023, 0.89117, 1.216, 1.4507, 1.5777, 1.5878, 1.4801, 1.2626, 0.9515, 0.56982, 0.14587, -0.2889, -0.70224, -1.0635, -1.3459, -1.5284, -1.5977]';
y=[3.0182, 1.3891, -0.34312, -2.0499, -3.6046, -4.8919, -5.8165, -6.3097, -6.3349, -5.8903, -5.0088, -3.7559, -2.2244, -0.52788, 1.2077, 2.8538, 4.2882, 5.4045, 6.1201, 6.3817, 6.17, 5.5008, 4.4235]';
fun=@(t)sum((t(1)*x.^2+t(2)*x.*y+t(3)*y.^2+t(4)*x+t(5)*y+t(6)).^2);
[t fval]=fminunc(fun,rand(6,1))
t =
0.1254
0.0425
0.0079
-0.0000
-0.0000
-0.1738
fval =2.8907e-09
plot(x,y,'or')
hold on
syms x y
ezplot(t(1)*x.^2+t(2)*x.*y+t(3)*y.^2+t(4)*x+t(5)*y+t(6),[-2 2 -8 8])
多次运行 fminunc,
[t fval]=fminunc(fun,rand(6,1))
t =
-0.0153
-0.0052
-0.0010
-0.0002
-0.0000
0.0212
fval =
9.4493e-07
t 的值可以有多种,选择哪种,可以看看文献。
[版权声明] :本文文字、代码及图片版权归原作者所有,任何媒体、网站或个人未经本网协议授权不得采集、整理、转载或以其他方式复制发表。已经本站协议授权的媒体、网站,在使用时必须注明“稿件来源:学研谷”。