PDA

View Full Version : سوال: درباره خطای محاسبه یک دنباله.



milatave
سه شنبه 22 اسفند 1391, 00:24 صبح
سلام.
خدمت دوستان ارز کنم که //// در محاسبه دنباله ی زیر ... از دهمین جمله به بعد اعداد تغییری نمیکنند.
sqrt(3+sqrt(3+sqrt(3 +.....)))

لطفا راهنمایی کنید که چرا چنین چیزی رخ میده؟


int main()
{

float Bn,An;
int a,b;
a=1;
Bn=sqrt(3.0);
cout << "ta chand bar?" << endl;
cin >> b;
while(a<b){
An = sqrt(Bn+3.);
cout << " "<< a << An << endl;
Bn=An;
a++;
}
return 0;
}


اینم لینک عکس اجرای برنامه:

http://up.hammihan.com/img/userupload_2012_17408759691363037431.95.jpg

milatave
سه شنبه 22 اسفند 1391, 00:27 صبح
ببخشید بین عدد a , و نتیجه محاسبه.... فاصله نداشتم....نتایج... بین 2 تا 3 هستند...

در واقع میخام تابع زیر رو حساب کنم
به جای 3..... 2

http://upload.wikimedia.org/math/c/0/1/c01946087e1d266f740300b91c2ca6ee.png



http://upload.wikimedia.org/math/9/0/a/90ad6d931d657bdd46211af1aada370e.png

Salar Ashgi
سه شنبه 22 اسفند 1391, 22:34 عصر
دوست عزیز . این سری که شما گذاشتید در بی نهایت مقدارش میل میکنه به عدد 2 .
چون تو بی نهایت این سری تبدیل میشه به یک معادله درجه 2 : X^2-X-2 که جواباش 1-و2 هستن که 2 قابل قبوله !!!
بنابراین در محاسبه جمله های این سری باید جملات رفته به رفته به عدد 2 نزدیک بشن !!! من این سری رو با یه تابع بازگشتی
نوشتم و نتیجه برنامه هم گفته منو ثابت میکنه !!!



#include <iostream>
#include <conio>
#include <math>
double f(int n)
{
if(n==1)
return sqrt(2);
if(n>1)
return sqrt(2+f(n-1));
}
int main()
{
int n;
cout<<"Enter n : \n";
cin>>n;
for(int i=1;i<=n;i++)
cout<<i<<": "<<f(i)<<endl;
getch();
}

مثلا من تو عکس می بینید ، زدم 15 جمله این سری رو حساب کنه !!!

http://salarcpp.persiangig.com/new_folder6/seri.jpg

موفق باشید ./

milatave
سه شنبه 22 اسفند 1391, 22:47 عصر
تشکر.
فقط من هنوز نفهمیدم...
اگه خواستم مثلا تا 20 رقم اعشار... حساب کنه...
باید چیکار کنم؟
مثلا همون تابع اگه با 3 باشه. ممکنه اعداد رندی نده در رقم های بالاتر اعشاری.
ممنون.
منتظرم. :لبخندساده: