線形補間
線形補間での求め方
問題文:
1.数値を読み込む
2.xを読み込む
3.x<x1 または x>xnならエラー
3.x1<x<i+1 となるiを見つける
4.補間公式でyを求める
5.結果をプリントする
#include<stdio.h>
float hokan(void);
int xn[] = {0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75};
double yn[] = {0.000,0.087,0.173,0.258,0.342,0.422,0.500,0.573,
0.624,0.707,0.766,0.819,0.866,0.906,0.939,0.965};
int x=5;
void main()
{
printf("y = %lf\n", hokan());
}
float hokan(void)
{
int i;
double y;
if(x <0|| 75<= x){
printf("エラーです\n");
}
else{
for(i=0; xn[i] < x; i++)
y = (yn[i+1] - yn[i]) * (x - xn[i]) / (xn[i+1] - xn[i]) + yn[i];
return y;
}
}
数表を最初にxnとynで表記しています。
このプログラムで線形補間が行われてないそうなのですが・・
何か誤りがある様でしたらどなたか教えてください。
補足
質問なのですが、Xkのときを考えて数学的帰納法を使って証明すべきですか??