সমস্যা
লিনিয়ার রিগ্রেশন অ্যালগরিদম ইমপ্লিমেন্ট করার প্রোগ্রাম লিখুন। ইউজারকে মোট ভ্যালুর সংখ্যা ইনপুট দিতে হবে।
সমাধান
সি প্রোগ্রামিং ভাষায় লিনিয়ার রিগ্রেশন কম্পিউট করার সমাধান নিচে দেওয়া হল:
লিনিয়ার রিগ্রেশন পর্যবক্ষিত ডেটাতে একটি লিনিয়ার ইকুয়েশন ফিট করে দুটি ভেরিয়েবলের মধ্যে সম্পর্ক খুঁজে বের করে। একটি ভেরিয়েবল এক্সপ্লানেটরি, আরেকটি ডিপেন্ডেন্ট।
লিনিয়ার রিগ্রেশন सम्बन्धিত লজিক নিচে ব্যাখ্যা করা হল:
for(i=0;i<n;i++){ printf("enter values of x and y"); scanf("%f%f",&x,&y); sumx=sumx+x; sumxsq=sumxsq+(x*x); sumy=sumy+y; sumxy=sumxy+(x*y); } d=n*sumxsq-sumx*sumx; m=(n*sumxy-sumx*sumy)/d; c=(sumy*sumxsq-sumx*sumxy)/d;
শেষে m এবং c প্রিন্ট করুন।
উদাহরণ
লিনিয়ার রিগ্রেশন কম্পিউট করার সি প্রোগ্রাম:
#include<math.h> #include<stdio.h> main(){ int n,i; float x,y,m,c,d; float sumx=0,sumxsq=0,sumy=0,sumxy=0; printf("enter the number of values for n:"); scanf("%d",&n); for(i=0;i<n;i++){ printf("enter values of x and y"); scanf("%f%f",&x,&y); sumx=sumx+x; sumxsq=sumxsq+(x*x); sumy=sumy+y; sumxy=sumxy+(x*y); } d=n*sumxsq-sumx*sumx; m=(n*sumxy-sumx*sumy)/d; c=(sumy*sumxsq-sumx*sumxy)/d; printf("M=%f\tC=%f\n",m,c); }
আউটপুট
enter the number of values for n:5 enter values of x and y1 5 enter values of x and y2 6 enter values of x and y2 4 enter values of x and y3 7 enter values of x and y1 1 M=2.000000 C=1.000000