1修改了一下,变动不大。
function x=Gauss_(A,b)
A=[10,-7,0;5,-1,5;-3,2,6];
b=[7;6;4]; %%%%%应该是列矩阵啊
n=length(b);
for k=1:n-1 %……消去过程……
if A(k,k)==0
disp('错误信息')
break;
end
index = [k+1:n];%用向量比用循环好
m = -A(index,k)/A(k,k); %提前定义一个较短的变量,相当于你的A(i,k)=A(i,k)/A(k,k);
A(index,index) = A(index,index) + mA(k,index);%矩阵A消元
b(index) = b(index) + mb(k);%矩阵b消元
end
x = zeros(n,1);%提前预置一个变量的位置,以提高运算速度
x(n) = b(n)/A(n,n);%……回代过程……
for i = n-1:-1:1
x(i) = ( b(i) - A(i,[i+1:n])x([i+1:n]) )/A(i,i);%还是写在一起吧,比较简捷
end
x
%%%%%%%%%结束啦
运行结果:
x =
00000
-10000
10000
2验证
>> A=[10,-7,0;5,-1,5;-3,2,6];
>> b=[7;6;4];
>> X=A\b
X =
0
-1
1
3验证
>> Gauss_(A,b)
x =
00000
-10000
10000
A=1:10
N=length(A);
B=zeros(N,2);
for n=1:N
subA=A(max(1,n-5):min(N,n+5));
B(n,:)=[mean(subA),var(subA)];
end
B
clear;
clc;
i = 1;
for k = 1:500
sumk = 0;
for m = 1:k/2
if mod(k,m)==0 %取模,即求因子
sumk = sumk+m; %是因子的话相加
end
end
if sumk==k; %比较因子和 和 原始值
y(i) = k; %如果相等 输出
i = i+1;
end
end
y
结果:
y =
6 28 496
if u<=1是对u这个矩阵在进行判断,所以其判定结果是0,直接进行下一步else运算,及对u中的元素开方。
对一个矩阵中的具体元素做判断,不能用if u<=1来进行
以上就是关于关于matlab的一个小程序,谁能给一点指点,愿意将我尽有的一点分都奉送全部的内容,包括:关于matlab的一个小程序,谁能给一点指点,愿意将我尽有的一点分都奉送、matlab小程序编程、matlab小程序,输出1-500所有完数,如1+2+3=6等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)