امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
کد الگوریتم گرادیان مزدوج در متلب
#1
 
  clc; clear all;

A=[4 3 0;3 4 -1;0 -1 4];
b=[24;30;-24];
disp(A);
disp(b);
%
n = size(b,1)+1;% % % 0, 1, 2, 3
r = zeros(n-1,n);
x = zeros(n-1,n);
v = zeros(n-1,n);
t = zeros(n,1);
s = zeros(n,1);
%
x(:,1) = zeros(1,n-1);
r(:,1) = b - A*x(:,1);
v(:,1) = r(:,1);
t(1,1) = ( (r(:,1).'*r(:,1)) / (v(:,1).'*(A*v(:,1))) );

for k=2:n
    
    x(:,k) = x(:,k-1) + t(k-1,1)*v(:,k-1);
    r(:,k) = r(:,k-1) - t(k-1,1)*(A*v(:,k-1));
    s(k,1) = (r(:,k).'*r(:,k)) / (r(:,k-1).'*r(:,k-1));
    v(:,k) = r(:,k) + s(k,1)*v(:,k-1);
    t(k,1) = ( (r(:,k).'*r(:,k)) / (v(:,k).'*(A*v(:,k))) );
    
end
disp(x);
disp(x(:,end));
پاسخ
 سپاس شده توسط Dash @li


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان