关于毁伤元成型的椭圆拟合算法问题

已知爆轰压力在罩表面随时间和空间位置的变化曲线,提炼出极值点,极值点基本坐标的椭圆方程拟合算法如下,拟合获得椭圆与药形罩的结构关系。

1. 关于拟合算法

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 的取值。

2. 完整算法

本算法的完整例子如下:

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 的值可以有多种,选择哪种,可以看看文献。

  • 发表于 · 2019.09.02 21:28 · 阅读 · 2079

[版权声明] :本文文字、代码及图片版权归原作者所有,任何媒体、网站或个人未经本网协议授权不得采集、整理、转载或以其他方式复制发表。已经本站协议授权的媒体、网站,在使用时必须注明“稿件来源:学研谷”。

0 条评论

请先 登录 后评论
猜猜我是谁
XY -开发者 @ 学研谷

32
提问
208
回答
67
文章