6069
該如何求取一非線性圓的方程式????
假設我有一千多各點資料
我要如何求這個非線性圓的方程式??? X=0.0039 Y= -149.549 X=-0.6487 Y=-149.5549 X=-1.3013 Y=-149.5609 X=-1.954 Y= -149.567 X=-2.6069 Y= -149.5734 X=-3.2599 Y=-149.5798 X=-3.9131 Y=-149.5864 X=-4.5665 Y= -149.5931 X=-5.2202 Y= -149.5999 X=-5.8741 Y=-149.6069. . .. . .. . .
使用Matlab來求:----------------------------------------------------------------------方法1先把這個資料檔load進Matlab中並存成變數point
point(:
1)為x座標
point(:
2)為y座標
令x(1)=圓心x座標、x(2)=圓心y座標、x(3)=半徑為你所要求的變數
則使用非線性最小方差lsqcurvefit擬合圓公式做法如下:1. 製作兩個.m檔存起來
分別去擬合上半圓與下半圓。
第一個circlefitup.m檔內容:function F=circlefitup(x
xdata)F=x(2) sqrt(x(3)^2-(xdata-x(1)).^2)第二個circlefitdown.m檔內容:function F=circlefitdown(x
xdata)F=x(2)-sqrt(x(3)^2-(xdata-x(1)).^2)2. 把point中的上半圓和下半圓的點分開。
pointup=point(find(point(:
2)