怎么拟合一条曲线

 时间:2024-10-14 12:06:50

1、把三角形离散化,得到三角形边界上的若干点:pts = 掂迎豢畦Flatten[{{{{0, 0}}}, Table[{{0, n/m}, {n/m, 烫喇霰嘴(m - n)/m}, {(m - n)/m, 0}}, {n, 1, m, 1}] // Transpose}, 2]当m=6的时候,相当于把每条边分割为6段。

怎么拟合一条曲线

2、当m=36的时候,相当于每边分割为36段:Graphics[{Line[pts],Point[pts]}}]

怎么拟合一条曲线

3、对诸点的坐标进行Fourier变换:f = Chop[Fourier[pts]]

怎么拟合一条曲线

4、只选取前面一半的数据:f = Chop[Fourier[pts]][[1;; Ceiling[Length[pts]/2]]]

怎么拟合一条曲线

5、对数据f进行如下处理:g=(2 Abs[f] Sin[π/2 - Arg[f] + 2. Pi Range[0, Length[f] - 1] t])/Sqrt[n]

怎么拟合一条曲线

6、对数据g进行有理化处理,误差是0.01。h=Rationalize[g, 0.01]

怎么拟合一条曲线

7、求和,可以得到参数方程:fc = h // Total

怎么拟合一条曲线

8、这样,可以把原三角形恽但炎杰和fc画到一起:Graphics[{ParametricPlot[fc, {t, 0, 1}][[1, 1, 3, 1, 2]], Line[pts]}]

怎么拟合一条曲线

9、把fc的图像绕原点旋转45°:fc=RotationTransform[45°][fc];Graphics[{ParametricPl泠贾高框ot[fc, {t, 0, 1}][[1, 1, 3, 1, 2]], Line[pts]}]

怎么拟合一条曲线

10、再缩小fc的大小:fc=fc/5;Graphics[{ParametricPlot[fc, 辘腋粪梯{t, 0, 1}][[1, 1, 3, 1, 2]], L足毂忍珩ine[pts]}]哈哈,看起来还是蛮像的。注意,上面的fc对应的,是把原来的三角形的每条边分成36份。

怎么拟合一条曲线

11、如果m等于2,那么,图像是:

怎么拟合一条曲线

12、放大fc的图像,也没用。由此可见,原三角形分割的份数越多,fc与三角形的形状越接近。

怎么拟合一条曲线
  • 图解为AD域创建自定义属性
  • LabVIEW比较-不等于
  • 51单片机虚拟开发板proutes:[11]独立按键
  • Adams2012无法启动
  • 如何用matlab2014a建立simulink仿真
  • 热门搜索
    学会感恩手抄报图片 关于感恩的手抄报内容 千字文手抄报 手抄报春天 有关法制的手抄报 法律知识手抄报图片 五年级上数学手抄报 母爱手抄报图片 我爱读书的手抄报 关于春节手抄报大全