已知多组X Y坐标如0 126.40 
400 126.62 
1450 127.29 
2300 127.85 
2560 128.04 
3200 128.44 
3755 128.83 
5160 130.00 
6200 130.44 
6760 130.81 
7800 131.35 
9300 131.92 
9790 132.15 
并且已经得到了他的图形 
现在要求范围内的任意X对应的Y值,比如输入x=5000,求一个,输入8000,得到另一个。
请问怎么实现?这里XY可以有任意多的组数,不一定是这几组,最多可能100多组。
菜鸟不懂,麻烦大家了! 

解决方案 »

  1.   

    你大概是这个意思
    假设不是封闭曲线,在由n个点的集合组成的曲线A上,取任意一点a,根据点a的x值,求出y值
    求取过程
    1、把曲线A的已知点的集合按x值从小到大排序,
    2、根据a点的x值取集合中的最靠近a点的 b点,c点
    3、根据b(xb,yb)点、c(xc,yc)点求出线性函数  y= yb+((yb-yc)/(xb-xc))*(xb-x)假设是封闭曲线,根据x的值求不出y的唯一值
      

  2.   

    例如 x=8000, 最靠近这个点的是 点(7800,131.35)与点(9300 131.92 ),y=131.35+(131.35-131.92)/(7800-9300)*(8000-7800)=131.578 
    上面公式写错了y= yb+((yb-yc)/(xb-xc))*(x-xb)
      

  3.   

      我感觉是可行的 我想问一下我用c#怎么定义这个b和c呢 
      

  4.   

    使用matlab将提供的数据拟合出一个函数,根据函数求解y值。