注册地址 登录
数学建模社区-数学中国 返回首页

Inconceivable··· http://www.madio.net/?498319 [收藏] [复制] [分享] [RSS] 希望今年的数模之路不可思议···

日志

作业一···

已有 844 次阅读2012-9-25 17:25 | 程序, 成功

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%以下程序均由一介遗石编写,并在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


路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

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 .

回顶部