ورود

View Full Version : الگوریتم روش تنصیف



nokhodi
چهارشنبه 17 مرداد 1386, 23:16 عصر
سلام

تو زبانهای مثل cو pascal چطوری میشه یه رشته گرفت مثل یه تا بع ریاضی :
کد:
f(x)= x+cosx
بعد تو برنامه به عنوام یه تابع بتونیم استفاده کنیم.

پ.ن: واسه روشن شدن مسله بگم که استاد محترم درس محاسبات عددی یه الگوریتم دادن برنامشو میخوان (الگوریتم روش تنصیف)

پ.ن: واسه زبان pascal باز راحتره میشه توسط دستوراتی و شرطهایی که گذاشت یه رشته رو تیکه تیکه کرد و لی c رو نمیدونم ...:افسرده:


ممنون...
فعلا ...

emad_67
پنج شنبه 18 مرداد 1386, 00:10 صبح
خوب تو c هم باید بلاخره باید تیکه تیکه بشه یه رشته.
ولی این الگوریتم تصنیف رو اگه میدونی یه توضیح بده بگو چیه؟
اصلا سوالت در مورد این تصنیف هست یا چیز دیگه ای؟

nokhodi
پنج شنبه 18 مرداد 1386, 07:48 صبح
الگوریتم اینه:

ابتدا دو مقدار به عنوان بازه بگیرد.(a,b)
تابع را نیزدریافت کند


1- ابتدا x1 را از رابطه x1=(a+b)/2 بدست می آوریم
2- اگر
f(a)(fx1)<0 باشد ریشه مورد نظر در بازه (a,x1) قرار گیرد. در این صورت a=a, b=x1 و مرحله 1 را برای این بازه دوباره تکرار می کنیم
3-اگر
f(a)(fx1)>0 باید ریشه مورد نظر در بازه (x1,b) قرار گیردو در این صورت b=b , a=x1 و مرحله 1 برای این بازه دوباره تکرار می کنیم
4- اگر
f(a)(fx1)=0 باشد و x1 ریشه مورد نظر است.

معیار توقف الگوریتم:

یک عدد که ما می گذاریم>|xn+1 -xn|


پ.ن : البته اگه کسی ما این الگوریتم و روش حل ایم مسله آشنا باشه میدونه یکری مراحل هم صورت میگیره که تو این الگوریتم گذاشته نشده به عنوان مثال گذاشتن a,x1 هربار در تابع و بدست آوردن علامت و یکسری چیزای دیگه ....

emad_67
پنج شنبه 18 مرداد 1386, 08:47 صبح
خوب حالا مشکل شما چیه؟ طبق این الگوریتم یا هر الگوریتم دیگه بلاخره رشته باید تفکیک بشه تا بشه روش کار کرد.
اگه سورس آمده رو می خوای که گذاشتنش بر خلاف قوانینه

nokhodi
جمعه 19 مرداد 1386, 05:44 صبح
سورس کل فایل رو نمیخوام .... دوست دارم خودم یاد بگیرم وگرنه بیرون اینقدر جا هست واسه نوشتن فایل ...
سوالم فقط این هست که من در زبان cهنوز یه مقدار مشکل دارم اون تو رشته ها می خواستم یه چند تا تابع بهم معرفی کنید که من بتونم وقتی کاربر تابعی میزنه

f(x)= x+cosx
اون به یه تابع ریاضی تبدیل بشه من فقط همین تیکه رو سوال دارم بقیه جاها رو بلدم...

فعلا ....

amir_paia
جمعه 19 مرداد 1386, 08:12 صبح
اگه منظورت اینه که بتونی کلمات sin, cos, tan , cot رو از رشته تشخیص بدی باید بگم که می تونی از تابع strstr استفاده کنی ولی کارت یه کم مشکل میشه چون پارامتر های تابع strstr اشاره گر هستند. روش راحت تر اینه که خودت 3 کاراکتر 3 کاراکتر رشته رو بخونی و هر وقت به یکی از کلمات sin و... رسیدی از تابع ریاضی اون استفاده کنی. برای مقایسه رشته ها هم از تابع strcmp استفاده کن

EMANOEL
دوشنبه 07 آبان 1386, 20:26 عصر
تو باید اول قرار داد کنی که متغیرت یه کاراکتر معینه بعد وقتی رشته رو از ورودی گرفتی تویه حلقت بیای بگی تک به تک کارکترارو در بیاره اگه متغیره تو بود به جاش عدد بزاره .نکته مهم اینجاست که تو باید برای عملگرا الویت تعیین کنی که میتونی الگوریتمشو از کتاب "ساختمان داده ها در C"
بخش تبدیل عبارات INFIXبهPOSTFIXپیدا کنی.