|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%以下程序均由一介遗石编写,并在Matlab R2010b成功运行%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%此程序通过使用diag函数打印矩阵[4,5,6,0,0;3,4,5,6,0;...
2,3,4,5,6;0,2,3,4,5;0,0,2,3,4]
%清空环境变量
clc;
clear all;
%预制内存空间
B=zeros(5);
B=zeros(5)+diag([4 4 4 4 4]);
B(3:5,1:3)=B(3:5,1:3)+diag([2 2 2]);
B(2:5,1:4)=B(2:5,1:4)+diag([3 3 3 3]);
B(1:4,2:5)=B(1:4,2:5)+diag([5 5 5 5]);
B(1:3,3:5)=B(1:3,3:5)+diag([6 6 6])
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%此程序用rand创建一个5*6的数组,寻找该组中大于0的元素,并重新赋值为1
%清空环境变量
clc;
clear all;
x=rand(5,6);
for i=1:5
for j=1:6
if x(i,j)>0
x(i,j)=1;
end
end
end
x
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%此函数用于求解线性方程组
function x=Solving_LinearEquations(a,b)
%By YanHong Song
%2012年9月22日
%a为待求线性方程组的系数矩阵
%b为待求非齐次线性方程组的常数矩阵,为列向量
%调用格式:x=Solving_LinearEquations(a,b)
c=[a,b]; %c为待求方程组的增广矩阵
n=size(a,1);
m1=rank(a); %分别求矩阵a和矩阵b的秩,确定解的类型
m2=rank(c);
if m1==m2
if m1==n
%Method1:矩阵除法
disp('原方程的特解是:')
x1=a\b
%Method2:Gauss消去分解法
[l,u]=lu(a);
x2=u\(l\b)
%Method3:Cholesky分解法(此法要求待求方程组的系数矩阵为对称正定矩阵)
[r1,r2]=chol(a);
x3=r2\(r1\b)
%Method4:QR分解
[Q,R]=qr(a);
x4=R\(Q\b)
else
disp('原方程的一个特解为:')
x0=a\b
disp('原方程的基础解系为:')
xx=null(a)
end
else
disp('原方程的无解!')
end
%============================================
%题三调用格式:
%============================================
clc;clear all;
a=[2 -3 1 2;1 3 0 1;1 -1 1 8;7 1 -2 2];
b=[8 6 7 5]';
x=Solving_LinearEquations(a,b)
%============================================
结果得到:
原方程的特解是:
x1 =
2.5353
1.2033
6.8299
-0.1452
x2 =
2.5353
1.2033
6.8299
-0.1452
x3 =
2.8284
2.1213
2.4749
1.7678
x4 =
2.5353
1.2033
6.8299
-0.1452
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%此程序分别用for循环和while循环求解题四方程
%method 1:for循环
sum=0;
for i=1:10
sum=sum+i^i;
end
sum
%method 2:while循环
sum=0;
i=1;
while i<11
sum=sum+i^i;
i=i+1;
end
sum
两种方法得到的结果为:sum =1.0405e+010

Powered by Discuz! X2.5 © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 ) 论坛法律顾问:王兆丰
GMT+8, 2025-11-8 06:33 , Processed in 0.208395 second(s), 27 queries .