terry_chan
@terry_chan (terry ss)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

どうやって同時に複数の直線あてはめ?

解決したいこと

平面上のデータ点は一つ直線$y=ax+b$を当てはめる場合、簡単にフィッティングできる。しかし、そのデータ点は違う直線に属する場合は、どのような方法が適性だか?

仮定に直線の数Nは $1<N<10$。且つ、データのノイズは小さい。

該当するソースコード:

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(42)

def generate_lines(x):
    line1=0.2*x
    line2=1.5*x
    line3=-1*x+1
    return [line1,line2,line3]

def generate_points(lines):
    points=[]
    for line in lines:
        n=len(line)
        points.append(line+0.1*np.random.rand(n))
    return points

def plt_points_lines(x,lines,points):    
    for line in lines:
        plt.plot(x,line,'-',color=(0,0,1))
    for point in points:
        plt.plot(x,point,'o',color=(1,0,0))
        
    plt.show()

if __name__=='__main__':
   n=20
   x=np.linspace(0,1,n) 
   lines=generate_lines(x)
   points=generate_points(lines)
   plt_points_lines(x, lines,points)
      

例の画像:
fitting_three_lines.png

0

1Answer

Your answer might help someone💌