<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>لبخند رياضي &#187; برنامه نویسی</title>
	<atom:link href="http://www.riazilog.com/category/journal/programming/feed" rel="self" type="application/rss+xml" />
	<link>http://www.riazilog.com</link>
	<description>اولين سايت تخصصي رياضي در ايران</description>
	<lastBuildDate>Mon, 10 Nov 2008 16:35:15 +0000</lastBuildDate>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>محاسبه عددی انتگرال معین به روش ذوزنقه ای</title>
		<link>http://www.riazilog.com/13860319/mohasebe-integral-zoozanaghe.htm</link>
		<comments>http://www.riazilog.com/13860319/mohasebe-integral-zoozanaghe.htm#comments</comments>
		<pubDate>Sat, 09 Jun 2007 08:52:44 +0000</pubDate>
		<dc:creator>مسعود اقدسی فام</dc:creator>
				<category><![CDATA[آناليز عددي]]></category>
		<category><![CDATA[برنامه نويسي]]></category>
		<category><![CDATA[مجله رياضي]]></category>

		<guid isPermaLink="false">http://www.riazilog.com/?p=154</guid>
		<description><![CDATA[ما در بسیاری از اوقات نیاز به استفاده از روشهای عددی برای محاسبه انتگرال معین داریم. در کاربرد های واقعی عموما انتگرالهای معین در حالتی نیستند که بتوان به روش پادمشتق به محاسبه آنها پرداخت. در اینصورت باید به روشهای عددی متوسل بشویم. در اینجا با روش ذوزنقه ای برای محاسبه عددی انتگرال معین بیشتر آشنا می شویم: [...]]]></description>
			<content:encoded><![CDATA[<p>ما در بسیاری از اوقات نیاز به استفاده از روشهای عددی برای محاسبه انتگرال معین داریم. در کاربرد های واقعی عموما انتگرالهای معین در حالتی نیستند که بتوان به روش پادمشتق به محاسبه آنها پرداخت. در اینصورت باید به روشهای عددی متوسل بشویم. در اینجا با روش ذوزنقه ای برای محاسبه عددی انتگرال معین بیشتر آشنا می شویم:<br />
فرض کنید قصد داریم انتگرال معین تابع f(x) را در بازه [a,b] پیدا کنیم. بدون اینکه در کلیت بحث خللی وارد شود فرض می کنیم در این بازه تابع همواره نامنفی است. بازه فوق را به n بخش مساوی افراز می کنیم. نقاط افراز به این ترتیب خواهند بود:</p>
<p align="center"> <img src="http://www.riazilog.com/cgi-bin/mimetex.cgi?\normal x_{0}=a,x_{1},...x_{n-1},x_{n}=b" /></p>
<p>توجه داشته باشید که برای راحتی کار فاصله بین این نقاط برابر در نظر گرفته شده است. یعنی، <img src="http://www.riazilog.com/cgi-bin/mimetex.cgi?\normal d=\frac{b-a}{n}=\Delta x_{i}=x_{i}-x_{i-1};0&lt;i\leq n" />.</p>
<p>حالا به عبارت <img src="http://www.riazilog.com/cgi-bin/mimetex.cgi?\normal S\left( i\right) =\frac{f\left( x_{i}\right) +f(x_{i-1})}{2}\times d;0&lt;i\leq n" /> توجه کنید. اگر دقت کنید متوجه می شوید که مقدار<img src="http://www.riazilog.com/cgi-bin/mimetex.cgi?S\left( i\right)" /> برابر است با مساحت ذوزنقه ای که در شکل زیر با رنگ خاکستری روشن نمایش داده شده است:</p>
<p><a href="http://www.riazilog.com/wp-content/uploads/2007/06/pic1.JPG" title="pic۱.JPG"></a><a href="http://www.riazilog.com/wp-content/uploads/2007/06/pic1.JPG" title="pic۱.JPG"></a><a href="http://www.riazilog.com/wp-content/uploads/2007/06/pic1.JPG" title="pic۱.JPG"></a></p>
<p style="text-align: center"><img src="http://www.riazilog.com/wp-content/uploads/2007/08/pic1.JPG" alt="pic۱.JPG" /></p>
<p>مجموع این <img src="http://www.riazilog.com/cgi-bin/mimetex.cgi?\normal S\left( i\right)" /> ها مساحت زیر نمودار را با خطایی معادل قسمتهای خاکستری تیره شکل بالا به ما می دهد. به عبارت دیگر داریم:</p>
<p style="text-align: center"><img src="http://www.riazilog.com/cgi-bin/mimetex.cgi?\normal\int\limits_{a}^{b}f(x)dx=\lim_{n\rightarrow \infty }\sum\limits_{i=1}^{n}S(i)=\lim_{n\rightarrow \infty }\sum\limits_{i=1}^{n}\left( \frac{f(x_{i})+f(x_{i-1})}{2}\times d\right)" /></p>
<p>هرچه مقدار n به عنوان تعداد تقسیمها بیشتر باشد خطای محاسبه (مساحت سطح خاکستری تیره) کمتر می شود. البته انتخاب مقدار مناسب n به موارد دیگری نیز بستگی دارد.<br />
برنامه های مربوط به این روش محاسبه را به زبانهای C، بیسیک، ++C و پاسکال می توانید از <a target="_blank" href="http://www.riazilog.com/wp-content/uploads/2007/08/trap.zip">اینجا</a> دانلود کنید.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riazilog.com/13860319/mohasebe-integral-zoozanaghe.htm/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>روش وتری</title>
		<link>http://www.riazilog.com/13860106/ravesh-vatari.htm</link>
		<comments>http://www.riazilog.com/13860106/ravesh-vatari.htm#comments</comments>
		<pubDate>Mon, 26 Mar 2007 14:58:30 +0000</pubDate>
		<dc:creator>مسعود اقدسی فام</dc:creator>
				<category><![CDATA[آناليز عددي]]></category>
		<category><![CDATA[برنامه نويسي]]></category>
		<category><![CDATA[مجله رياضي]]></category>

		<guid isPermaLink="false">http://www.riazilog.com/?p=121</guid>
		<description><![CDATA[روش وتر رو می شه به نوعی ترکیبی از روش نصف کردن و نیوتن دونست. این روش مشابه روش نصف کردن از قطعه بندی بازه برای رسیدن به ریشه استفاده می کنه، و مثل روش نیوتن از محل تقاطع خطوط با محور طولها برای قطعه بندی بازه ها! فرض کنید تابع (y = f(x در [...]]]></description>
			<content:encoded><![CDATA[<p align="right">روش وتر رو می شه به نوعی ترکیبی از روش نصف کردن و نیوتن دونست. این روش مشابه روش نصف کردن از قطعه بندی بازه برای رسیدن به ریشه استفاده می کنه، و مثل روش نیوتن از محل تقاطع خطوط با محور طولها برای قطعه بندی بازه ها!</p>
<p align="right">فرض کنید تابع (y = f(x در بازه [a , b] تعریف شده باشه و</p>
<p align="right">۱- در این بازه پیوسته باشه.</p>
<p align="right">۲- حاصلضرب (f(a و (f(b منفی باشه.</p>
<p align="right">۳- بازای هیچ نقطه ای از بازه مشتق اول صفر نباشه.</p>
<p align="right">در این صورت برای محاسبه ریشه معادله f(x)=0 با روش وتر به این ترتیب عمل می شه:</p>
<p align="right">معادله خط واصل دو نقطه ((a,f(a) و ((b,f(b) رو می نویسیم و محل برخوردش با محور طولها رو c نامگذاری می کنیم. اگه f(c)=0 که به ریشه رسیدیم. وگرنه یکی از بازه های [a , c] یا [c , b] حاوی ریشه معادلست (فرض گرفتیم ریشه منحصربفرد در این بازه داریم). برای تشخیص بازه مورد نظر از شروط سه گانه فوق فقط شرط ۲ رو برای هر بازه بررسی می کنیم. دو شرط دیگه مطمئنا در هر زیر بازه ای از [a , b] صادق هستن.</p>
<p align="right">عملیات بالا رو برای بدست آوردن زیر بازه های کوچکتر تا جایی ادامه می دیم که یا به خود ریشه برسیم و یا به تقریب مناسبی از اون.</p>
<p align="right">با توجه به اطلاعات دوران شیرین راهنمایی مقدار c از رابطه زیر به دست می یاد:</p>
<p align="left">(((c = a &#8211; (f(a)*(b-a)/(f(b)-f(a</p>
<p align="right">با نتیجه به توضیحات فوق الگوریتم محاسبه تقریبی ریشه به روش وتر به این صورته:</p>
<p align="right">۰- شروع</p>
<p align="right">۱- مقدار a و b و e را بگیر.</p>
<p align="right">۲- مقدار (((a &#8211; (f(a)* (b-a)/(f(b)-f(a را در c قرار بده.</p>
<p align="right">۳- اگر مقدار قدرمطلق (f(a کوچکتر از e بود برو به ۷٫</p>
<p align="right">۴- اگر حاصلضرب (f(a و (f(c منفی بود مقدار c را در b قرار بده.</p>
<p align="right">۵- وگرنه مقدار c را در a قرار بده.</p>
<p align="right">۶- برو به ۲٫</p>
<p align="right">۷- مقدار c را به عنوان ریشه تقریبی چاپ کن.</p>
<p align="right">۸- پایان.</p>
<p align="right">مقدار e هم مقدار تقریبیه که برای محاسبه ریشه در نظر گرفته شده. این تقریب رو می شه به روشهای مختلفی اعمال کرد که ما اینجا به عنوان قدرمطلق مقدار تابع در نظر گرفتیم. توجه داشته باشید که هرچقدر مقادیر a و b دقیقتر و نزدیکتر به هم انتخاب بشن به جواب تقریبی زودتر می رسیم.<br />
کدهای مربوط به این روش رو به زبانهای بیسیک، C، پاسکال و ++C می تونید از <a href="http://www.riazilog.com/wp-content/uploads/2007/03/vatar.zip">اینجا</a> دریافت کنید.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riazilog.com/13860106/ravesh-vatari.htm/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>روش نیوتن</title>
		<link>http://www.riazilog.com/13851104/nioton-method.htm</link>
		<comments>http://www.riazilog.com/13851104/nioton-method.htm#comments</comments>
		<pubDate>Tue, 23 Jan 2007 23:29:05 +0000</pubDate>
		<dc:creator>مسعود اقدسی فام</dc:creator>
				<category><![CDATA[آناليز عددي]]></category>
		<category><![CDATA[برنامه نويسي]]></category>
		<category><![CDATA[مجله رياضي]]></category>

		<guid isPermaLink="false">http://www.riazilog.com/?p=108</guid>
		<description><![CDATA[روش نیوتون یا روش مماس از جمله روشهای مشهور و پرکاربرد محاسبه ریشه توابع محسوب می شه. این روش به خاطر گستردگی شیوه استفاده و همگرایی بسیار سریع، محبوبیت زیادی داره. فرض کنیم بازه [a,b] حاوی ریشه مورد نظر باشه. شرایط استفاده از روش نیوتون به قراره زیره: ۱- مشتق اول تابع در هیچ نقطه [...]]]></description>
			<content:encoded><![CDATA[<p>روش نیوتون یا روش مماس از جمله روشهای مشهور و پرکاربرد محاسبه ریشه توابع محسوب می شه. این روش به خاطر گستردگی شیوه استفاده و همگرایی بسیار سریع، محبوبیت زیادی داره.</p>
<p>فرض کنیم بازه [a,b] حاوی ریشه مورد نظر باشه. شرایط استفاده از روش نیوتون به قراره زیره:</p>
<p>۱- مشتق اول تابع در هیچ نقطه ای از بازه صفر نباشه.</p>
<p>۲- مشتق دوم تابع در بازه تغییر علامت نده.</p>
<p>فرض کنید x0 یه تقریب اولیه از صفر تابع در بازه [a,b] باشه. دنباله {(x(n} رو بصورت زیر تعریف می کنیم:</p>
<p align="left">( ( x( n ) = x( n &#8211; 1 ) &#8211; f( x( n &#8211; 1 ) ) / df( x( n &#8211; 1</p>
<p>که f و df به ترتیب ضابطه تابع و مشتق اولش رو مشخص می کنه. براحتی می شه ثابت کرد که اگه شرایط دو گانه فوق برقرار باشه و مقدار x0 هم درست انتخاب بشه، دنباله {(x(n} به صفر تابع همگراست. باید سعی کنید مقدار x0 رو تا حد امکان نزدیک به ریشه انتخاب کنید (برای اینکار می تونید از روش تنصیف استفاده کنید). انتخاب نادرست مقدار x0 ممکنه باعث ایجاد حلقه تکرار حول ریشه معادله بشه. این مورد از معایب روش نیوتن به حساب می یاد.پ</p>
<p>این روش دو ویژگی خیلی مهم داره:</p>
<p>۱- سرعت همگرایی بسیار بالا (اکثر دستگاههای محاسباتی برای محاسبه ریشه های معادلات، یا محاسبه توابعی نظیر رادیکال و . . . از این روش استفاده می کنن).</p>
<p>۲- قابلیت گسترش برای محاسبه ریشه های مضاعف و تکراری معادلات.</p>
<p>کدهای مربوط به این روش رو به زبانهای بیسیک ، ++C ، C و پاسکال می تونید از <a href="http://www.riazilog.com/wp-content/uploads/2007/01/newton.zip">اینجا</a> دانلود کنید.</p>
<p>برای این کدها از تابع با ضابطه زیر استفاده شده:</p>
<p align="left">f( x ) = x² + ۲x &#8211; 2</p>
<p> شما به دلخواه می تونید هر تابعی رو جایگزین کنید. البته باید به شروط دو گانه روش توجه داشته باشید.</p>
<p>امیدوارم از این مطلب ریاضی استفاده لازم را ببرید.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riazilog.com/13851104/nioton-method.htm/feed</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>روش تنصیف</title>
		<link>http://www.riazilog.com/13850822/tansif-method.htm</link>
		<comments>http://www.riazilog.com/13850822/tansif-method.htm#comments</comments>
		<pubDate>Mon, 13 Nov 2006 10:37:44 +0000</pubDate>
		<dc:creator>اسماعیلی فر</dc:creator>
				<category><![CDATA[آناليز عددي]]></category>
		<category><![CDATA[برنامه نويسي]]></category>
		<category><![CDATA[مجله رياضي]]></category>

		<guid isPermaLink="false">http://www.riazilog.com/archives/99</guid>
		<description><![CDATA[روش نصف کردن اولین و ساده ترین روش برای پیدا کردن صفرهای تابع است ، که البته معایب و محدودیتهایی دارد.این روش برای توابعی قابل اجراست که حول ریشه خود اکیدا یکنوا باشند. به عبارت دیگر این روش تنها برای پیدا کردن ریشه های ساده قابل استفاده است ، و قادر به یافتن ریشه های [...]]]></description>
			<content:encoded><![CDATA[<p dir="rtl">روش نصف کردن اولین و ساده ترین روش برای پیدا کردن صفرهای تابع است ، که البته معایب و محدودیتهایی دارد.این روش برای توابعی قابل اجراست که حول ریشه خود اکیدا یکنوا باشند. به عبارت دیگر این روش تنها برای پیدا کردن ریشه های ساده قابل استفاده است ، و قادر به یافتن ریشه های مضاعف نیست. در ضمن سرعت همگرایی آن بسیار کند است و به همبن دلیل اغلب برای محاسبه صفرهای توابع چند جمله ای (معادلات ساده) استفاده می شود.<br />
الگوریتم روش نصف کردن برای تابعی به نام f به صورت زیر است ، که  در آن [a,b] به عنوان بازه حاوی ریشه و عدد e به عنوان میزان دقت به کار رفته است.<br />
۰ &#8211; شروع<br />
۱ &#8211; اعداد a ، b و e را بگیر.<br />
۲ &#8211; (a+b)/2 را در m قرار بده.<br />
۳ &#8211; اگر قدرمطلق f(m) کمتر از e بود برو به ۷<br />
۴ &#8211; اگر f(a) * f(m) منفی بود m را در b قرار بده<br />
۵ &#8211; وگرنه m را در a قرار بده<br />
۶ &#8211; برو به ۲<br />
۷ &#8211; مقدار m را به عنوان صفر تابع چاپ کن.<br />
۸ &#8211; پایان<br />
اکیدا یکنوا بودن تابع حول ریشه اش برای شرط عبارت ۴ الزامی است. این شرط مشخص می کند که ریشه در کدام نصفه بازه قرار دارد.<br />
کد الگوریتم بالا به چهار زبان بیسیک ، سی ، ++C و پاسکال از <a target="_blank" href="http://iranmath.googlepages.com/bisec.zip">اینجا</a> قابل دانلود است. برای نتیجه دادن این برنامه ها  مقادیر a و b باید به درستی وارد شود. انتخاب بازه ای که شامل ریشه نیست ، حلقه بی نهایت ایجاد می کند. در این برنامه ها از تابع با ضابطه f(x) = x² &#8211; ۲ استفاده شده که شما می توانید هر تابع دلخواه دیگری را جایگزین کنید.</p>
<ul dir="rtl">
<li><em>این مطلب رو دوست خوبم مسعود اقدسی فام برام آماده کرده که مدت ها بود می خواستم اینجا قرار بدم اما به دلیل اینکه لطمه ای به مطالب مارپیچ اعداد وارد نشه ارسال نکرده بودم. ولی برای اینکه تا مطلب بعدی مارپیچ اعداد مطلب برا خوندن داشته باشید تصمیم گرفتم این مطلب خوب کاربردی رو براتون تو سایت قرار بدم. با تشکر مجدد از مسعود عزیز.</em></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.riazilog.com/13850822/tansif-method.htm/feed</wfw:commentRss>
		<slash:comments>68</slash:comments>
		</item>
		<item>
		<title>مثلث خیام پاسکال</title>
		<link>http://www.riazilog.com/13831107/khayyam-pascal.htm</link>
		<comments>http://www.riazilog.com/13831107/khayyam-pascal.htm#comments</comments>
		<pubDate>Wed, 26 Jan 2005 23:16:35 +0000</pubDate>
		<dc:creator>اسماعیلی فر</dc:creator>
				<category><![CDATA[برنامه نويسي]]></category>
		<category><![CDATA[مجله رياضي]]></category>

		<guid isPermaLink="false">http://fa.riazilog.com/?p=4</guid>
		<description><![CDATA[با عرض ادب و احترام خدمت عزیزان امتحانات ترم با همه فراز و نشیب هایش تموم شد. واقعا ترم سختی پیش روم بود. آنالیز ۱ ، جبر خطی ، ریاضی گسسته و &#8230; نفسمو گرفتن. با این حال خوب تونستم خودمو جمع و جور کنم. معدل این ترمم ۱۶٫۵ شد. حیف که الف نشد. البته [...]]]></description>
			<content:encoded><![CDATA[<p align="justify" class="PostBody">با عرض ادب و احترام خدمت عزیزان</p>
<p align="justify" class="PostBody">امتحانات ترم با همه فراز و نشیب هایش تموم شد. واقعا ترم سختی پیش روم بود. آنالیز ۱ ،<br />
جبر خطی ، ریاضی گسسته و &#8230; نفسمو گرفتن. با این حال خوب تونستم خودمو جمع و جور کنم. معدل این ترمم ۱۶٫۵ شد. حیف که الف نشد. البته باکی نیست. ترم بعدی جبران می کنم. راستی گفتم ترم بعد ، یاد یه مطلبی افتادم. ترم آینده دانشگاه ما مسئول برگزاری مسابقه دانشجویی ریاضی است. به قول استاد یزدانی چراتی (استاد گسسته ، کامپیوتر ، تحقیق در عملیات و &#8230;) خیلی بد میشه که تو این همه اهدای جوایز اسم بچه های دانشگاه مازندران نباشه. نظر منم همینه. در هر صورت من مطمئنم بچه های دانشکده تلاش خودشونو می کنن.<br />
از این مسائل که بگذریم ، قول داده بودم که یک سری مطلب تو وبلاگ بزارم. دوست داشتم مقاله<br />
&#8220;مفهوم هندسی استقلال و وابستگی خطی&#8221; را به عنوان اولین مطلب انتشار دهم ولی دیدم که بهتر است مقاله هایی از این دست رو به صورت PDF در اختیار علاقه مندان قرار دهم.به همین دلیل اولین مطلب وبلاگ رو اختصاص میدم به عشق خودم : برنامه نویسی.</p>
<p align="justify" class="PostBody">برنامه ای که اینجا قرار دادم برای همتون آشناست.  »»»  برنامه مثلث خیام پاسکال.<br />
شاید همه شما این برنامه رو نوشته باشید. ولی من مطمئنم در ایجاد فرمت خروجی (به شکل مثلث) با مشکل روبرو شدید (هر کی هم مشکل نداشت &#8230; آفرین). برنامه حاضر با استفاده از پروسیجرهای غیرمعمول ، سطرها و جاهای خالی مابین اعداد واقع بر مثلث را ایجاد می کند.یک برنامه کاملا آموزشی برای آنها که به خوانایی برنامه اهمیت می دهند.</p>
<p align="left" dir="ltr" class="PostBody">PROGRAM KHAYYAM;<br />
VAR<br />
  Pos,N,K:Integer;<br />
FUNCTION Fact(K:Integer):LongInt;    {تابع بازگشتی محاسبه فاکتوریل}<br />
BEGIN<br />
  IF (K=0) OR (K=1) THEN Fact:=1 ELSE Fact:=K*Fact(K-1);<br />
END;<br />
FUNCTION Tarkib(K,I:Integer):longInt;    {تابع محاسبه ترکیب}<br />
BEGIN<br />
  Tarkib:=trunc(Fact(K)/(Fact(I)*Fact(K-I)));<br />
END;<br />
PROCEDURE Blank;    {پروسیجر ایجاد فواصل خالی}<br />
VAR I:Integer;<br />
BEGIN<br />
  FOR I:=1 TO Pos DO<br />
    Write(&#8216; &#8216;);<br />
  Pos:=Pos-3;<br />
END;<br />
PROCEDURE Satr(K:Integer);     ‌{پروسیجر ایجاد سطرهای مثلث }<br />
VAR I:Integer;<br />
BEGIN<br />
  FOR I:=0 TO K DO<br />
    Write(Tarkib(K,I):6);<br />
END;<br />
BEGIN{Of Main}<br />
  Pos:=33;    ‍{قرار دادن مکان نما در وسط صفحه نمایش}<br />
  Write(&#8216;Enter Your Number: &#8216;);    {گرفتن تعداد سطرهای مثلث از کاربر}<br />
  Readln(N);<br />
  FOR K:=0 TO N DO<br />
  BEGIN<br />
    Blank;<br />
    Satr(K);<br />
    Writeln(&#8221;);<br />
  END;{Of For}<br />
  Readln<br />
END.{Of Main}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riazilog.com/13831107/khayyam-pascal.htm/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>
