Проблема в коде MATLAB для решения нужного 'n' числа одновременных уравнений типа Ax = b при условии, что решение включает в себя метод верхняя треугольная матрица, а значения A и b развиваются в Aprime и bprime вместе со значениями x.Код MATLAB для решения нужного 'n' числа одновременных уравнений типа Ax = b
Проблема заключается в написании кода, который может решить «n» число одновременных уравнений типа Ax = b с использованием матрицы верхней триангуляции. Значения A и b задаются как матрица в окне команд. Код должен возвращать значения Aprime, bprime и x в качестве ответа при успешной работе программы. Код также должен выдавать результат как «Ошибка, размеры матрицы не соответствуют» (или что-то еще!) Для определенных уравнений! Код работает отлично, за исключением того, что отображается ошибка вместе с приведенным выше сообщением об ошибке.
Код я использовал следующие,
function [x, Aprime, bprime]=solved(A,b)
n = size(A);
% Assign the size of A to n.
if (n(1)~= n(2)) || (det(A) == 0)
% Checking through the determinant method for dimension error.
disp('ERROR!! Matrix dimensions should agree.')
else
for j=1 %:n-1
% Fix the first value of j to 1.
if A(j,j)==0
u=A(j,:);
A(j,:)=A(j+1,:);
A(j+1,:)=u;
%using u as a temperary value "u", to save the row,to swap the positions of two rows.
v=b(j);
b(j)=b(j+1);
b(j+1)=v;
%using u as a temperary variable "v", to save the row,to interchange the positions of two rows in b matrix.
end
for i=j+1:n
if A(i,j)~=0
%If the first number of the particular row be zero.
b(i)=b(j)+(b(i)*(-A(j,j)/A(i,j)));
A(i,:) = A(j,:)+(A(i,:)*(-A(j,j)/A(i,j)));
end
%After this 'for'loop, the matrix becomes a upper triangle matrix.
end
Aprime=A;
bprime=b;
x=A\b;
% Using this command the values of x,y,z can be found.
end
end
end
Просьба представить соответствующую коррекцию ....
Результаты, которые получены в окне командной строки,
A = [1 1 0; 2 1 1; 1 2 3]
А =
1 1 0
2 1 1
1 2 3
б = [3; 7; 14]
б =
3
7
14
[х, апрель IME, bprime] = решена (А, б)
х =
1
2
3
Aprime =
1.0000 1.0000 0
0 0.5000 -0.5000
0 -1.0000 -3.0000
bprime =
3.0000
-0,5000 - 11.0000
Второй тип,
А = [1 2 3; 4 5 6]
А =
1 2 3
4 5 6
б = [7; 8; 9; 10]
б =
7
8
9
10
[x, Aprime, bprime] = resolved (A, b) ОШИБКА !! Матричные размеры должны совпадать. Ошибка в решении (строка 2) n = размер (A); Выходной аргумент «x» (и, возможно, другие), не назначенный во время вызова «C: \ Users \ Hari \ Documents \ resolved.m> resolved».
Вы можете исправить форматирование, о котором вы говорите? На данный момент очень трудно читать. –
Если я понимаю ваш вопрос, все, что вам нужно сделать, это установить x, Aprime и bprime на что-то (например, x = [];), где вы показываете ошибку – ioums
Я не понимаю, какое форматирование вы имеете в виду! Вопрос состоит в том, чтобы решить одновременные уравнения типа Ах = Ь, используя верхнюю треугольную матрицу! –