PDA

نسخه کامل مشاهده نسخه کامل : معادلات



samira3
16-11-2008, 22:13
با سلام من میخوام معادلات دیفرانسیل کد نویسی کنم
اصلا چه باید داد چی گرفت:41:

_H2_
16-11-2008, 22:34
سلام

با سلام من میخوام معادلات دیفرانسیل کد نویسی کنم
منظورتان چندان واضح نیست! یعنی از VB چه انتظاری دارید؟ یک معادله دیفرانسیل را حل کند؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
این کارها را متلب تا حدود زیادی انجام میدهد.
اگر میخواهید در vb همچین برنامه هایی بسازید، باید بدانید که یک زبان برنامه نویسی پایه ای فقط اعمال اصلی ریاضی را به ذات پشتیبانی میکند (جمع و ضرب و تقسیم و توان و رادیکال و سینوس و آرک سینوس و ...) اگر اعمال غیر معمول و پیچیده تری مثل ماتریس و دترمینال و از همه بدتر معادلات دیفرانسیل میخواهید، خودتان باید با کمک توابع قبلی و پایه ای برای این موارد غیر معمول کد نویسی کنید.
یعنی مثلاً برای محاسبه یک انتگرال معین، ان را به مستطیل های کوچک بشکنید و مجموع مساحت مستطیل ها را به دست اورید و...

samira3
17-11-2008, 20:31
این قسمت انتگرال که گفتین مستطیل بشکنید ومساحت اون حساب کنه من اونه با دلفی انجام دادم
ولی یه چیزی بهتر میخوام
مثل همگن بودن نبودن
مشتق وانتگرال نا معین
سری مک لورن . تیلور
حالا به من بگید چه کنم

_H2_
18-11-2008, 21:33
سلام

این قسمت انتگرال که گفتین مستطیل بشکنید ومساحت اون حساب کنه من اونه با دلفی انجام دادم
شما که این کار را قبلاً انجام داده اید، باید مشکلی نداشته باشید !؟

مشکل شما چندان با کد نیست بلکه با الگوریتم است.
مثلاً سری تیلور...
یک تابع طویل است که کافی است در یک حلقه for به تعداد مشخصی از جملات را محاسبه کنید، میتوانید از متغییر های Double استفاده کنید، این متغییر تا دقت حدود 16 رقم را ساپورت میکند.


ولی یه چیزی بهتر میخوام
منظورتان از بهتر چیست؟ یعنی تیلور بهتر از انتگرال است؟ یا اینکه حل انتگرال با مستطیل میتواند راه بهتری داشته باشد؟




شما چهار عمل اصلی و توابع پایه ای را دارید با یک متغییر با دقت 16 رقم اعشار، بقیه اش دیگر پیدا کردن روش ریاضی برای حل مسائل با کمک این ابزارها است، روش ریاضی با این ابزارها را که داشته باشید، به الگوریتم هم خواهید رسید.
ولی معجزه ای در کار نیست و همچنان نمیتوانید با یک خط کد نویسی انتگرال را محاسبه کنید !

samira3
24-11-2008, 13:42
سلام من برنامه نوشتم اخه تعداد خطش کم
استاد به این 10خط نمره نمیده
اگه بخوام f(x)از ورودی بگیره چی؟
البته دلفی است نه وبی
function f(x:real):real;
begin
f:=(sqr(x));
end;
var a,b,n,w,i:integer;
h,x,s:real;
begin
s:=0;
a:=strtoint(edit3.Text);
b:=strtoint(edit4.Text);
n:=strtoint(edit1.text);
h:=(b-a)/n;
for i:=1 to n do
begin
x:=a+i*h ;
s:=s+h*f(x);
end;

edit2.Text:=realtostr(round(s));
end;

_H2_
24-11-2008, 23:22
سلام

اگه بخوام f(x)از ورودی بگیره چی؟

من دلفی بلد نیستم ولی سوال فوق راه حل قطعی و طیبا و قدرتمندی در vb9 دارد.
شما میتوانید در یک textbox بزرگ تابع را به صورت کامل و مطابق با سینتکس #C و VB9 تحویل بگیرید و در runtime کد را کامپایل کنید و delegate ای از کد کامپایل شده را برای پردازش نهایی تحویل هسته پردازش مرکزی بدهید.

برای کامپایل میتوانید از کلاسس System.CodeDom.Compiler.CodeDomProvider استفاده کنید.