تسجيل الدخول

مشاهدة النسخة كاملة : سؤال حول matlab


khawla MI
2012-03-30, 15:30
السلام عليكم

سؤالي بسيط لكن لم أفلح في حله وهو أنه لدي برنامج matlab تنفيذه يستغرق مدة ساعة والسبب يعود الى أني استخدمت deux boucle for حاولت استبدالهما par faire ce que l'on appelle la vectorisation لكني لم أتحصل على النتيجة المرجوة

هل بالامكان مساعدتي في أيجاد طريقة لاستبدال les deux boucle
function Ing=integrale(f,a,b,c,d)
%l'approximation de l'integrale double par la methode de rectangle gauche
N = b*10-a;
M=d*10-c;
hx = (b - a)/N;
hy=(d - c)/M;

y = [c:hy:d];
x=[a:hy:b];
Ing = 0;
for i = 1:N
for j=1:M
Ing = Ing + hx*hy*f(x(i),y(j));
end
end
le probleme se pose lorsque le b et le d qui sont les bords de l'integrale tend vers un grand nombre
f dans ce programme est une fonction à deux variable definie comme suit
function r=f(x,y).
r=x+y;%par exemple
merci

khawla MI
2012-03-30, 15:33
j'ai oubliée de poser ma question
comment peut on minimiser le temps d'execusion
par que'elle procedure je doit remplacer les deux boucles for que j'ai utiliser tout en gardant les meme resultats trouver avec les deux boucles for
merci

djamel123
2012-03-30, 20:10
:dj_17:

لوضع برنامج أرجو الضغط هنا حتى يكون واضحا في القراءة.

http://img3.imageshack.us/img3/9483/sanstitre3el.jpg



الاجابة من الطبيعي أن تتأخر هذه الطريقة، لكن ليس لهذه الدرجة.
ومادام أن لديك مشكلة مع القيم الكبيرة فمن الأحسن أن تقومي بتبيت عدد المستطيلات التي تقومين بجمع مساحتها.
يعني مثلا نقسم محور x على 100 مستطيل ومحور y على 100 مستطيل وفي هذه الحالة يكون البرنامج كما يلي


function Ing=integrale(f,a,b,c,d)
%l'approximation de l'integrale double par la methode de rectangle gauche
N=100;
dx=(b-a)/N;
dy=(d-c)/N;
y=c:dy:d;
x=a:dx:b;
Ing = 0;
for i = 1:N
for j=1:N
Ing = Ing + dx*dy*f(x(i),y(j));
end
end


وطيعا كلما انقصتي في عدد المستطيلات N كلما كان الوقت أسرع والنتيجة أقل دقة.
كمثال أقوم بحساب تكامل باستعمال طريقة المستطيلات وباستخدام دالة الماتلاب dblquad.


F = @(x,y)y*x;
Q = dblquad(F,1,2,3,9);

f=inline('x*y','x','y');
Ing=integrale(f,1,2,3,9)


سأجد نتيجتين متقاربتين.

khawla MI
2012-03-30, 20:30
Sobhan allah w c vraimant machaallah
ça marche wallahi
je vous remerci monsieur pour votre aide

djamel123
2012-03-30, 20:39
sobhan allah w c vraimant machaallah
ça marche wallahi
je vous remerci monsieur pour votre aide

العفووووو

أي مساعدة أخرى لا تترددي بطرحها.

khawla MI
2012-03-30, 23:20
إن شاء الله
شكرا