الله يخليكم عندي 3 أمثلة مانه عارف احلهم في الماتلاب

alhazeem

عضو جديد
إنضم
22 مايو 2009
المشاركات
1
مجموع الإعجابات
0
النقاط
0
السلام عليكم اخواني

انا الحين اتعلم ماتلاب بس عندي اشياء مانه عارف احلها يمكن اتحلون ليي هالمثالين بالماتلاب :55:

المسالة الأولى :: أريد حلها بطريقة نيوتن لحل المعادلات اللاخطية ويكون الحل قريب للexact :

x^2 + y^2 =4
x*y=1

@ x0=3 ;y0=-1.5

انا كتبت برنامج بس ما طلع صح : :55: هذا اهو :

...........................................................
x0=3;y0=-1.5
f1=x0^2+y0^2-4;f2=x0*y0-1
f1x=2*x0;f1y=2*y0;f2x=y0;f2y=x0
function sol=newton2(fn,jac,x0,tol)
old=x0+1;while max(abs(x0-old))>tol;old=x0;
f=feval(fn,old);f1=f(1);f2=f(2);
J=feval(jac,old);
f1x=J(1,1);f1y=J(1,2);f2x=J(2,1); f2y=J(2,2);
D=f1x*f2y-f1y*f2x;
h=(f2*f1y-f1*f2y)/D;
k=(f1*f2x-f2*f1x)/D;
x0=old+[h,k]
end;sol=x0;​

.........................................................

المسألة الثانية : ابي حلها بطريقة Taylor’s method of order two


y= x/y x, x = 0(0.2)1, y(0) = 2

انا كتبت برنامج بس ما طلع صح : :55: هذا اهو :
.......................................................​
MATLAB m-file for Taylor’s Method of order 2
function sol=tayl1(fun1,dfun1,a,b,y0,n)
h=(b-a)/n;​
x = a + (0 : n) h; y(1)=y0;
for k=1:n

y​
(k + 1) = y(k) + h feval(fun1, x(k), y(k))
+ (h.ˆ 2
feval(dfun1, x(k), y(k)))/2;
end;
sol = [x, y];

........................................................​
المسالة الثالثة : ابي مثال ببرنامج الماتلاب على طريقة :
The compsite trapezoidal intgration formula​

:80:
الله يخليكم ساعدوني لاني متورط​
 

مواضيع مماثلة

ahmedmecha

عضو جديد
إنضم
20 أكتوبر 2006
المشاركات
365
مجموع الإعجابات
9
النقاط
0
وعليكم السلام

هذا حل السؤال الاول

كود:
[COLOR=SeaGreen]% Newton's method for a system of 2 nonlinear equations in 2 unknowns.
% Note that x(1)=x ; x(2)=y[/COLOR]

clear [COLOR=DarkOrchid]all[/COLOR]
clc

f = @(x) [x(1)^2 + x(2)^2 - 4
                x(1) * x(2) - 1];

[COLOR=SeaGreen]% Jacobian matrix[/COLOR]
J = @(x) [ 2*x(1) 2*x(2)
                  x(2) x(1)];

x = [3; -1.5]; [COLOR=SeaGreen]% initial guess[/COLOR]
maxiter = 10; [COLOR=SeaGreen]% max. no. of iterations[/COLOR]
tol = 1e-10; [COLOR=SeaGreen]% max. allowable tolerance[/COLOR]

[COLOR=Blue]for[/COLOR] i = 1 : maxiter
    delta = -J(x) \ f(x);
    x = x + delta;
    [COLOR=Blue]if [/COLOR]norm(delta,inf) < tol
        fprintf([COLOR=DarkOrchid]'\n.. at iteration no. ''%d'' delta became less than the allowble tolerance \n'[/COLOR],i)
        fprintf([COLOR=DarkOrchid]'\n.. the final solution is \n'[/COLOR])
        x
        [COLOR=Blue]break[/COLOR]
    [COLOR=Blue]end[/COLOR]
    
    [COLOR=Blue]if[/COLOR] i == maxiter
        fprintf([COLOR=DarkOrchid]'\n.. the program exceeded the max. number of iterations \n'[/COLOR])
        fprintf([COLOR=DarkOrchid]'\n.. the final solution is \n'[/COLOR])
        x
        [COLOR=Blue]break[/COLOR]
    [COLOR=Blue]end
end[/COLOR]

أرجو أن يكون الحل صحيح .. وأن توضح بقية الاسئلة !!

 
أعلى