متوسط:
برای تقریب جواب معادلات ریاضی توسط کامپیوتر (با هر اندازه دقت) می توانیم از سه روش استفاده کنیم که به طور اختصار و کاربردی دو روش را در این پست و روش سوم که روش نیوتن است در پستی جداگانه بررسی می کنیم. 
نکته ای که باید قبل از بررسی روش ها توجه کنید این است که معادله را باید بتوان به صورت f(x) =0 تبدیل کرد که ما در مثال های که در ادامه ذکر می کنیم تابع معادله به صورت ( double f(double x تعریف شده است. نکته ی دیگر اینکه بازه ای که معادله دارای جواب است را بدانیم که ما به طور پیش فرض بازه ی جواب معادله را بین ۰ و ۱ در نظر گرفته ایم.

این روش با روش جست و جوی دودویی مشابهت زیادی دارد. با این تفاوت که ما در بررسی پیشروی بازه ی جواب به جای بررسی تفاوت( کوچکی و بزرگی‌) به بررسی تغییر علامت های دو نقطه ی بالایی و پایینی می پردازیم.
کد سی این برنامه به این صورت است:
if(f(0) * f(1) > 0)
        printf( "No solution\n" );        
else {
    for( u = 0 , v = 1 ;  v - u >= Precision ; )     // be jaye Precision mizan deghat gharar migirad masalan 0.0001
   {              c = (v + u)/2;
         if( 
f( c ) * f(u) > 0)     u = c; 
         else                             v = c;
   }

        printf("%0.4lf\n" , u );
}
 
این روش نیز مانند روش قبلی با دو نقطه به عنوان ابتدا و انتهای محدوده ی جواب آغاز می شود. این روش بدین صورت است که در هر مرحله نقطه ی جدیدی بوجود می آید و ادامه ی کار با این نقطه و نقطه ی بوجود آمده ی قبل از آن از سر گرفته می شود. طریقه ی بوجود آمدن هر نقطه بدین صورت است که خطی که از دو نقطه ی آخر عبور می کند را با خط افقی محور تلاقی می دهیم. نقطه ی تلاقی این خط با محور نقطه ی جدید است. به عبارت دیگر اگر به ترتیب نقطه های X0 و X1 را داشته باشیم نقطه ی X2 به این صورت بوجود می آید :
y=\frac{f(x_1)-f(x_0)}{x_1-x_0}(x-x_1) + f(x_1)
x_2=x_1-f(x_1)\frac{x_1-x_0}{f(x_1)-f(x_0)}
معادله خط گذرنده از دو نقطه :

اگر y = 0 آنگاه  X2  برابر است با :



 یکی از روش های پیاده سازی Secant بدین شکل می باشد :
if(f(0) * f(1) > 0)
        printf( "No solution\n" );        
else {
    for( u = 0 , v = 1 ; ; )   
   {
            fu = f(u);
            fv = f(v);
            if( fabs(fv -fu) <
Precision ) // be jaye Precision mizan deghat gharar migirad
                break;
            c = v - fv * ( v - u ) / (fv - fu) ;
            swap( u , v );   u = c;
   }
        printf("%0.4lf\n" , u );

}
روش دیگر پیاده سازی :

if(f(0) * f(1) > 0)
        printf( "No solution\n" );        
else {
    for( u = 0 , v = 1 ; ; )   
   {
            fu = f(u);
            fv = f(v);

d = f(v)*(v-u)/(f(v)-f(u)); if (fabs(d) < EPS) break; u = v; v = v - d;    }
        printf("%0.4lf\n" , v );