محاسبه لگاریتم


Re: محاسبه لگاریتم

نوشتهاز سوی Aryan_M در يكشنبه 29 بهمن 1391 - 01:00

exp دیگه چیه؟
نماد کاربر
 
سپـاس : 101

ارسـال : 331


نام: آرین مخدومی
سن: 23 سال
شهر: مشهد
نام نویسی: 91/10/17

مرد

Re: محاسبه لگاریتم

نوشتهاز سوی ehsan.helli1 در يكشنبه 29 بهمن 1391 - 01:01

تعریف لگاریتم طبیعی اینه
مساحت زیر نمودار 1/x از 1 تا x
تابع exp معکوس تابع لگاریتم طبیعی هستش
نماد کاربر
 
سپـاس : 644

ارسـال : 1688


نام: احسان
سن: 21 سال
شهر: تهران
نام نویسی: 90/10/30

مرد

Re: محاسبه لگاریتم

نوشتهاز سوی Aryan_M در يكشنبه 29 بهمن 1391 - 01:02

خوب منم می گم چرا از 1 تا x؟
اثبات این که چرا از 1 تا x رو می خوام.
درسته شکل یک هذلولی هستش و قرنه است و مساخت این ور و اون ورش یکیه پس باید از 1 به بعدو حساب کنیم. ولی این اثبات هردمبیلی رو دوست ندارم.
نماد کاربر
 
سپـاس : 101

ارسـال : 331


نام: آرین مخدومی
سن: 23 سال
شهر: مشهد
نام نویسی: 91/10/17

مرد

Re: محاسبه لگاریتم

نوشتهاز سوی ehsan.helli1 در يكشنبه 29 بهمن 1391 - 01:05

مساحت اونور نمودار که واگرا هستش!
از 1 تا 0
نماد کاربر
 
سپـاس : 644

ارسـال : 1688


نام: احسان
سن: 21 سال
شهر: تهران
نام نویسی: 90/10/30

مرد

Re: محاسبه لگاریتم

نوشتهاز سوی ehsan.helli1 در يكشنبه 29 بهمن 1391 - 01:06

double power(double x, int p);//x^p

double ln(double z)
{
double t =(z-1)/(z+1);
double result=0,oldResult=1;
int n=0;
double temp=0;
while((oldResult < result?result - oldResult:oldResult - result) > 0.00000000001)
{
oldResult = result;

temp =(2*n+1);
result =result + 2*( (1 / temp )* (power(t,2*n+1)) );

n=n+1;
}
return result;
}




double log(double x,double a)
{
return ln(x)/ln(a);
}
اینم الان پیدا کردم!فک کنم درست نوشته
نماد کاربر
 
سپـاس : 644

ارسـال : 1688


نام: احسان
سن: 21 سال
شهر: تهران
نام نویسی: 90/10/30

مرد

Re: محاسبه لگاریتم

نوشتهاز سوی Aryan_M در يكشنبه 29 بهمن 1391 - 01:09

چه جالب اتفاقا همین الان منم داشتم با matlab به زبان java همینو می نوشتم ولی اینی که شما اوردی خیلی اضافه نویسی داره.
نماد کاربر
 
سپـاس : 101

ارسـال : 331


نام: آرین مخدومی
سن: 23 سال
شهر: مشهد
نام نویسی: 91/10/17

مرد

Re: محاسبه لگاریتم

نوشتهاز سوی ehsan.helli1 در يكشنبه 29 بهمن 1391 - 01:10

متاسفانه جاوا بلد نیستم!
نماد کاربر
 
سپـاس : 644

ارسـال : 1688


نام: احسان
سن: 21 سال
شهر: تهران
نام نویسی: 90/10/30

مرد

Re: محاسبه لگاریتم

نوشتهاز سوی Aryan_M در يكشنبه 29 بهمن 1391 - 01:20

n=1000000;
x=2.718;
p=0;
for i=0:1:n
p=p+( (1/2i+1)* power( ((x-1)/(x+1)),(2i+1) ) );
end
p=p*2;


من اینو نوشتم ولی lne رو نشون می ده :
q =

-4.3720e+005 -9.3618e+005i
یعنی کجای کار ایراد داره!!!
نماد کاربر
 
سپـاس : 101

ارسـال : 331


نام: آرین مخدومی
سن: 23 سال
شهر: مشهد
نام نویسی: 91/10/17

مرد

Re: محاسبه لگاریتم

نوشتهاز سوی Aryan_M در يكشنبه 29 بهمن 1391 - 01:39

مشکلشو درست کردم نباید می نوشتم 2i+1 این فکر کرده عدد غیر حقیقیه.
ولی مشکلو درست کردم می گه جواب بی نهایته.
پس یا اون بسطی که نوشتین غلطه یا من اشتباه کردم!!!n=1000000;
x=2.718;
p=0;
for j=0:1:n
p=p+( (1/(2*j+1))*power( ((x+1)/(x-1)),(2*j+1) ) );
end
p=p*2;
>> p

p =

Inf

>>
نماد کاربر
 
سپـاس : 101

ارسـال : 331


نام: آرین مخدومی
سن: 23 سال
شهر: مشهد
نام نویسی: 91/10/17

مرد

Re: محاسبه لگاریتم

نوشتهاز سوی Aryan_M در دوشنبه 30 بهمن 1391 - 00:57

خودم فهمیدم چرا انتگرال 1/x می شه از 1 تا x و x>1 دلیلش اینه که درسته که انتگرال 1/x می شه خود تابع lnx ولی همون طور که می دونیم مشتق انتگرال یک تابع خودش نمی شه و کم درجه ترین جمله حذف می شه و تو اینجا هم انتگرال گیری از مشتق lnx خود تابعو نمی ده و این انتگرال مساحت نموداری رو می ده که ابتداش از محور مختصات باشه. در نتیجه به دلیل این که lnx در صفر مثیت به منفی بی نهایت میل می کنه در نتیجه مثل اینه که نمودار lnx زو اونقدر بیاریم بالا که ابتداش بشه ابتدای محور مختصات که امکان نا پذیره و اونوقت مقدار تابع همواره بی نهایت می شه.
ولی اگه انتگرال 1/x+1 رو از مبدا مختصات بگیریم می شه مقدار تابع lnx از نقطه x=1 به بعد که چون 1/x همواره مثبته پس انتگرالشم همواره مثبت و مقدار تابع lnx رو از y=0 به ما تحویل می ده.

در ضمن اون روشی که گفتم برای پیدا کردن مقدار تابع یعنی بیایم مشتق تابع رو به صورت پله پله بگیریم و ارتفاه این پله هارو جمع کنیم تا به مقدار خود تابع برسیم این چیز جدیدی نست بلکه انتگرال گیری از مشتق تابع است.

برای بدست اوردن لگاریتم یک عدد فقط کافیه انتگرال 1 تا x رو به ازای x>1 بگیریم می شه لگاریتم طبیعی . smile084
بسیار سادست شاید یکی از ساده ترین سیگما هایی که دیده باشید :
lim┬(n→∞)⁡∑_(i=0)^n▒1/(i+n/x)
اینو بندازین تو wrod نشون می ده.
البته برای آسونی محاسبه کامپیتور من سادش کردم وگرنه اصل معادله این شکلیه:
lim┬(n→∞)⁡〖x/n ∑_(i=0)^n▒1/(i/n x+1)〗

اینم کدش که لگاریتم طبیعی 2.718 رو به ازای n=10000 نشون داد 1.313086546919802 :

n=10000;
n=double(n);
x=0;
x=double(x);
x=2.718;
p=0;
p=double(p);
for j=1:1:n
p=p+( 1/(j+(n/x)) );
end

نمی دونم برنامه نویسیش چه مشکلی داره که دقیق حساب نمی کنه!
هرچی مقدار x بزرگتر باشه عدد دقیق تری می ده و عدد n تاثیر چندانی در دقت جواب نداره و فقط سرعتو میاره پایین.
مثلا لگاریتم 1000 رو نشون می ده 6.8596 که با ماشین حساب کامپیوتر بزنیم نشون می ده :6.9077
لگاریتم 1000000 رو برنامه من نشون می ده 13.3927 و ماشین حساب کامپیوتر می ده : 13.8155
ولی وقتی n رو می زارم 100000000 برنامه من می ده : 13.8105 که البته محاسبش 3 ثانیه طول می کشه.
از نظر دیفرانسیلی که مشکلی نداره ولی نمی دونم چرا با matlab که اینو نوشتم ایراد می گیره!

شاید فرمولای بهتری برای محاسبه دقیق تر و سریع تر لگاریتم باشه.

کسی فرمول بهتر می دونه؟
این فرمول زتایی که آقای احسان.هلی نوشتند رو کسی می تونه بررسی کنه؟ چون من برنامشو نوشتم و جوابش همیشه واگرا و بی نهایته.
نماد کاربر
 
سپـاس : 101

ارسـال : 331


نام: آرین مخدومی
سن: 23 سال
شهر: مشهد
نام نویسی: 91/10/17

مرد

Re: محاسبه لگاریتم

نوشتهاز سوی Aryan_M در يكشنبه 20 خرداد 1397 - 11:55

لگاریتم طبیعی توسط معکوس تابع نمایی (exp) به روش عددی، مثلا نیوتون رافسون، محاسبه می شود.
تاب نمایی هم با بست تیلور.
روش های دقیق تر هم موجود است.
https://en.wikipedia.org/wiki/Natural_logarithm
نماد کاربر
 
سپـاس : 101

ارسـال : 331


نام: آرین مخدومی
سن: 23 سال
شهر: مشهد
نام نویسی: 91/10/17

مرد

Re: محاسبه لگاریتم

نوشتهاز سوی assarzadeh در چهارشنبه 23 خرداد 1397 - 19:47

دوستان سلام
با دیدن موضوع این جستار لازم دیدم با توجه به اینکه سالها پیش به روشی برای محاسبه لگاریتم اعداد دست یافته بودم، شما را با آن آشنا کنم. هر چند که من هنوز تمام نظرات بیان شده در این موضوع را نتوانستم بخوانم.
با استفاده از روشی که من به آن دست پیدا کردم، میتوان لگاریتم هر عددی را در هر پایه مثبت و مخالف 1 فقط با یک ماشین حساب معمولی با دقت بسیار خوبی به دست آورد. من سالها پیش کدی هم به زبان C نوشته بودم که به کمک این روش لگاریتم اعداد را محاسبه میکرد. اما الان آن را پیدا نمیکنم؛ وگرنه آن را در همین جستار قرار میدادم. در این روش شما باید ابتدا قسمت صحیح حاصل لگاریتم را به دست بیاورید و سپس یک عدد صحیح بزرگتر از 1 به عنوان مبنای کار انتخاب نمایید که به نظر من اعداد 2 و 10 مقادیر مناسبی هستند. در ادامه توجه شما را به چگونگی محاسبه لگاریتم عدد 1000 در پایه عدد پی (π)، با انتخاب 10 به عنوان مبنای محاسبه جلب میکنم (در ماشین حساب مهندسی برای محاسبه این مقدار، کافیست حاصل لگاریتم عدد 1000 در یک پایه دلخواه مثل 10 یا e را بر لگاریتم عدد π در همان پایه ای که انتخاب کردیم تقسیم کنیم).
log 1000 = log (π^6 * 1000 / π^6) = 6 + log (1000 / π^6) = 6 + log 1.040161... = 6 + 0.1log 1.482544... = 6.0 + 0.01log 51.295159... = 6.03 + 0.01log 1.654347... = 6.03 + 0.001log 153.556305... = 6.034 + 0.001log 1.576406... = 6.034 + 0.0001log 94.772347... = 6.0343 + 0.0001log 3.056553... = ...

توضیح: پایه لگاریتمهای فوق عدد π است. در ابتدا ممکن است روش پیچیده ای به نظر برسد. اما یک روند منظم و سرراست دارد و با چند بار تمرین به راحتی به خاطر سپرده میشود. کلید این روش استفاده از رابطه log x = 1/b * log (x^b) است که در آن b همان مبناییست که انتخاب میکنیم. بر این اساس ابتدا قسمت صحیح حاصل لگاریتم را به دست میاوریم. برای این کار کافیست اگر عدد جلوی لگاریتم بزرگتر از 1 باشد، آن را آنقدر بر پایه لگاریتم یعنی π تقسیم کنیم تا به عددی بزرگتر یا مساوی با 1 و کوچکتر از π برسیم (یعنی عددی که جزء صحیح لگاریتم آن صفر باشد). در این صورت تعداد تقسیماتی که انجام داده ایم همان جزء صحیح لگاریتم عدد است. اگر هم عدد جلوی لگاریتم کوچکتر از 1 باشد، آن را آنقدر در پایه لگاریتم ضرب میکنیم تا به عددی در محدوده گفته شده برسیم. در این حالت تعداد ضربهای انجام شده با علامت منفی بیانگر جزء صحیح لگاریتم عدد است. در این مثال اگر عدد 1000 را 6 بار بر π تقسیم کنیم به عددی بین 1 و π خواهیم رسید. بنابراین جزء صحیح لگاریتم 1000 در پایه π عدد 6 است. طبق قاعده تبدیل ضرب به جمع، لگاریتم 1000 [در پایه π] عبارت خواهد بود از حاصل جمع عدد 6 و لگاریتم آن عددی که در نتیجه تقسیمات متوالی به آن دست یافتیم. حالا همین کار را برای محاسبه لگاریتم عدد جدید نیز انجام میدهیم؛ منتها ابتدا باید عدد جدید را به توان مبنای انتخابی (10) برسانیم و معکوس مبنا یعنی 0.1 را به عنوان ضریب بر حاصل لگاریتم اعمال نماییم. با تکرار این عمل میتوانیم لگاریتم مورد نظرمان را تا دقت دلخواه محاسبه کنیم. این روش را میتوان برای پایه های لگاریتم کوچکتر از 1 هم به کار بست. در این حالت باید تقسیمات (یا ضربهای) متوالی روی عدد مورد لگاریتم گیری را هر بار آنقدر انجام دهیم تا به مقداری کوچکتر یا مساوی با 1 و بزرگتر از پایه لگاریتم دست یابیم.
امیدوارم این متن مفید باشد.
نماد کاربر
 
سپـاس : 34

ارسـال : 62


نام: امیر عصارزاده
سن: 29 سال
نام نویسی: 93/10/12

مرد

قبلی

بازگشت به رياضيات در فيزيك

چه کسی هم اکنون اینجاست ؟

کاربرانی که در این تالار هستند: بدون کاربران عضو شده و 8 مهمان