四章节应用MATLAB解决高等代数问题

上传人:M****1 文档编号:568762272 上传时间:2024-07-26 格式:PPT 页数:81 大小:366KB
返回 下载 相关 举报
四章节应用MATLAB解决高等代数问题_第1页
第1页 / 共81页
四章节应用MATLAB解决高等代数问题_第2页
第2页 / 共81页
四章节应用MATLAB解决高等代数问题_第3页
第3页 / 共81页
四章节应用MATLAB解决高等代数问题_第4页
第4页 / 共81页
四章节应用MATLAB解决高等代数问题_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《四章节应用MATLAB解决高等代数问题》由会员分享,可在线阅读,更多相关《四章节应用MATLAB解决高等代数问题(81页珍藏版)》请在金锄头文库上搜索。

1、第四讲:应用第四讲:应用MATLAB解决高等代解决高等代数问题数问题1.1.交换矩阵中的两个行向量的位置;交换矩阵中的两个行向量的位置;2.2.用一个非零数乘以矩阵的某一行向量用一个非零数乘以矩阵的某一行向量3.3.把矩阵的某一个行向量乘以实数并加到矩阵把矩阵的某一个行向量乘以实数并加到矩阵的另一行上的另一行上一、矩阵的初等变换与方程的一、矩阵的初等变换与方程的MATLAB求解求解侧蜜椭像立市排裹理棘臀踌棋晾郸邯资讼耘然沟纫迅陇霖怪葛渍青病堤堂四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题例:求解线性方程组例:求解线性方程组线性代数方法用增广矩阵初等变换即消元法过

2、程线性代数方法用增广矩阵初等变换即消元法过程坝匪倾芝氯八垮猾钵法禾醒砷讼镍怔节磅勿畸乃悠脆誓出病烤勒瓦许巴庞四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题经过初等行变换将矩阵经过初等行变换将矩阵变为矩阵变为矩阵 这时矩阵对应的方程组这时矩阵对应的方程组此方程组的解为此方程组的解为驼脓嚏菠涪右以志浩栽锈迎茅远节店姆匣唐洁牡静痔踏嚏玩瓢痞势勤扬特四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题A=3 -1 5 3;1 -1 2 1;1 -2 -1 2 %输入矩阵的数据输入矩阵的数据A(1 3,:)=A(3 1,:) %交换第一行和第三行数据

3、交换第一行和第三行数据A(2,:)=A(2,:)-A(1,:) %将第一行乘以将第一行乘以-1加到第二行加到第二行A(3,:)=A(3,:)-3*A(1,:)%将第一行乘以将第一行乘以-3加到第三行加到第三行A(3,:)=A(3,:)-5*A(2,:) %将第二行乘以将第二行乘以-5加到第三行加到第三行 方法之一:初等变换法方法之一:初等变换法营臂吾球捕辟解盯狂咆移估隋瓤袖厌拈捡俩海厄丝碟望怪哈极屯裔榨埠擦四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题A=3 -1 5 3;1 -1 2 1;1 -2 -1 2 %输入矩阵的数据输入矩阵的数据format rat %

4、分数数据格式分数数据格式rref(A) %化简矩阵化简矩阵方法之二:方法之二:Cramer法则法则A=3 -1 5;1 -1 2 ;1 -2 -1 %输入矩阵的数据输入矩阵的数据B=3 1 2; %输入线性方程组的常数项输入线性方程组的常数项S=0 0 0; %给解向量赋初值给解向量赋初值for i=1:3 %for循环循环忙磋团敬蔚旗乔窥纯磊银疲肥订蔽栅樟驭契赦岂拱挖捉厚蒜谗嗽猫萍负都四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题C=A; %将矩阵将矩阵A赋给临时矩阵赋给临时矩阵C C(:,i)=B; %将常数项赋给矩阵将常数项赋给矩阵C的第的第i列即求列即求A

5、i S(i)=det(C)/det(A); %求求xiendformat rat %数据格式说明为分数形式数据格式说明为分数形式S %显示显示S苛痴烤羌切痢条告宗掣蔑酒憋足兜拄欣贞野趋柞宽隋吸贸比俄艺轴恼硷得四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题方法之三:利用矩阵的左除方法之三:利用矩阵的左除“”A=3 -1 5;1 -1 2 ;1 -2 -1 ;b=3 1 2; x=Abx = 10/7 -1/7 -2/7 二、线性方程组的解结构二、线性方程组的解结构1。齐次方程组的解结构。齐次方程组的解结构AX=0求解方程过程如下旁放秩翌脖阂林炭场蝴酚烃旅斜盛钱校涵琶

6、唉嫉浸爬辞植镁潜贰殉召肉鼎四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题根据最简行阶梯形矩阵写出简化方程组确定自由求知量整理方程组为向量形式量提取方程组右端各自由求知量的系数形成的向量组即为基础解系将系数矩阵化为最简行阶梯形矩阵券暂赖硝捞脾麓性男能凌挂樱秒崎萎肯全岭埂稼非涟鞠耀撑僵民张推妄杰四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题例:解线性方程组:例:解线性方程组:应用应用MATLAB计算过程如下:计算过程如下:A=1 1 1 1;1 1 1 1;1 1 2 2 %输入矩阵输入矩阵rref(A) %将矩阵化为最简阶梯形矩阵将矩阵

7、化为最简阶梯形矩阵归奸摩义绑叹管迭磐堂农厌馏笋躲敦轻畅晶擎穿菊徊析藤羌费席折桔俊平四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题运行结果为:运行结果为:A = 1 -1 1 -1 1 -1 -1 1 1 -1 -2 2ans = 1 -1 0 0 0 0 1 -1 0 0 0 0黔糖钾香按甥峰卢骨竿呕栖压祭燎论被狼茹茨篱寄哦歇挽境免慕屁匹凰贺四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题由运行结果知化简的等价方程组为:由运行结果知化简的等价方程组为:取取x2,x4为自由求知量,得方程组的解的向量形为自由求知量,得方程组的解的向量形式为

8、式为巍增激挠拣茶植迟脸擒哺盗潍延郸锄匿纫减香豁榆设侥作醛臆判抑荡伏扛四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题所以齐次方程组的通解为所以齐次方程组的通解为所以基础解系为:所以基础解系为:太驼纽忍狱菏袒糠撮嫡刁捆御剁望惊脓也碌具撰来毫赁躬馁摇额诉寿羽枉四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题2.非齐次方程组的解的结构非齐次方程组的解的结构求解非齐次线性方程组的通解的步骤如下:求解非齐次线性方程组的通解的步骤如下:1)、写出非次方程组的增广矩阵;)、写出非次方程组的增广矩阵;2)、将增广矩阵化为最简行阶梯形矩阵;)、将增广矩阵化

9、为最简行阶梯形矩阵;3)、观察增广矩阵与系数矩阵的秩是否相等,若相等)、观察增广矩阵与系数矩阵的秩是否相等,若相等则方程组有解,若不相等则方程组无解;则方程组有解,若不相等则方程组无解;4)、写出对应的简化的线性方程组;)、写出对应的简化的线性方程组;5)、确定自由求知量)、确定自由求知量6)、整理方程组为向量形式。)、整理方程组为向量形式。潍焊浦辉吏礁狙獭贤虐漫瞅番淑巫目擂友猫腥甩它换盗噎龄炼翔芭菜右项四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题例:求解下列非齐线性方程组例:求解下列非齐线性方程组尽砚沙你尸闷棘砌志于峨硬椰莫奥暖厚燃滤踢蠕簿团留携米刹首摧研饲私

10、四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题在在MATLAB中输入的命令如下中输入的命令如下A=1 2 3 1;1 4 5 2;2 9 8 3;3 7 7 2;b=3;2;7;12 ;format ratc=A b;rref(c);计算结果如下计算结果如下强邓幕卵欠浊拓撂粟获寅抹罚讽鹊执辩糖过居帖啄贩岩纺效达凛效合窜耘四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题ans = 1 0 0 -1/2 31/6 0 1 0 0 2/3 0 0 1 1/2 -7/6 0 0 0 0 0 所以简化方程组为:所以简化方程组为:糖牲肉淬谎硷祁虫数

11、运誓屑扮伐鳖豢赫蹋排颖酌错屋猾肌顽蝉挚抢竹摩仕四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题所以原线性方程组的通解为:所以原线性方程组的通解为:取取x4为自由求知量为自由求知量宏例遥糕圭饿汁御忿榷旷巢绩炔舔璃必登佯拾冬涯搜枢防妓班琢说熟坤茁四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题三、向量组的线性相关性判定三、向量组的线性相关性判定1.向量组线性相关与线性无关的定义:向量组线性相关与线性无关的定义:如果存在如果存在m个不全为零的一组数个不全为零的一组数k1,k2, ,km使使成立,则称向量组成立,则称向量组是线性相关的。是线性相关

12、的。如果仅当如果仅当k1=k2= =km=0时时设有设有m个向量个向量僵夷姿戳疤澈蹭碾励芭泣裁乳疼恶同邓辟始蒜耕抡蠕积腆课百新毕味挝动四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题1)将给定的)将给定的m个向量组的写成列向量形式,个向量组的写成列向量形式,组成一个组成一个nm阶的矩阵阶的矩阵2.应用应用MATLAB进行向量组的线性相关性的进行向量组的线性相关性的判定步骤:判定步骤:才有上面的等式成立,则称向量组才有上面的等式成立,则称向量组线性无关线性无关2)判定是否存在不全为零的一组数判定是否存在不全为零的一组数k1,k2, ,km使得使得哈掐处负崇禄孩哪搂亭骋

13、耗扰脸隶束娃脐臣锥咸示拎沧炎渴价句筒垮散靴四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题即判定线性方程组即判定线性方程组铁帝述但壕顿南昔缅约赂秤赦瓢氖枣辖艳青检突广链延汪韦企颂邑贮近琼四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题是否有非零解,从而有是否有非零解,从而有这说明向量组线性相关。如果方程组只有零这说明向量组线性相关。如果方程组只有零解,则说明该向量组线性无关。解,则说明该向量组线性无关。3)用命令)用命令rref将矩阵将矩阵A化为最简行阶梯形矩阵;化为最简行阶梯形矩阵;4)观察最简行阶梯形矩阵中非零行向量的)观察最简行阶梯

14、形矩阵中非零行向量的数目是否小于向量组全部向量数目数目是否小于向量组全部向量数目m,若小于若小于m则向量组线性相关;否则线性无关。则向量组线性相关;否则线性无关。咳械诗混阔票芭词尧淋唆恩让晓肆妈巳饥扣盂蛆忍家撂糜纯批葱刽然冀揣四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题例例 判断下列向量组的线性相关性判断下列向量组的线性相关性1)、a1=4 3 1 1 1,a2=2 1 3 2 5 a3=1 3 0 1 2,a4=1 5 2 1 62)a1=1 0 0 1 4,a2=0 1 0 2 5,a3=0 0 1 3 6a4=1 2 3 14 32,a5=4 5 6 32

15、 77(北京大学数学力学系高等代数北京大学数学力学系高等代数p151 16-4)逞欺铃话承观寅征今抉傻全获掺雍汝邵棍瓷旦欢眷炬谊和块升框邮阶饲红四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题解:解:1)先在先在MATLAB中将上面四个向量以中将上面四个向量以行向量数据形式输入,再转置为列向量组行向量数据形式输入,再转置为列向量组成的矩阵,然后用成的矩阵,然后用rref命令将其化为最简命令将其化为最简行阶梯形矩阵,命令如下行阶梯形矩阵,命令如下A=4 3 -1 1 -1;2 1 -3 2 -5;1 -3 0 1 -2;1 5 2 -1 6A=Arref(A)孰沦敞倍

16、淀辩恒权岳陌腑哥混窝百技言幸拆科悯峰悦乖灰军嚣已棋己家赣四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0最简行阶梯形矩阵的变量名为最简行阶梯形矩阵的变量名为ans,它的不全为它的不全为零为行向量数为零为行向量数为4,而向量组中向量数也是,而向量组中向量数也是4,所所以向量组是线性无关的。以向量组是线性无关的。溺糟莹报肢士障养贫瓜估聂碳挚奴滁宿腐掠沙没班灰迁幽台汇急耿百点硼四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题a1=1 0 0 1 4,a2=

17、0 1 0 2 5,a3=0 0 1 3 6a4=1 2 3 14 32,a5=4 5 6 32 77A=a1;a2;a3;a4;a5rref(A)2)可以应用矩阵拼接命令可以应用矩阵拼接命令犹锥挞絮毯迫翼驼昂扇茵缔嘎搬粗荔终增挖卜氏材例皑碎破勿榨嚼奥撰袭四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题得非零行数为得非零行数为3,所以该向量组线性相关。,所以该向量组线性相关。ans = 1 0 0 1 4 0 1 0 2 5 0 0 1 3 6 0 0 0 0 0 0 0 0 0 0搬苫横垄扦谤硷缺腆涟竣它茎允钮碴伟寿咏谐遭霉搪仪里庸好隆斑缘危靡四章节应用MATLA

18、B解决高等代数问题四章节应用MATLAB解决高等代数问题四、向量组的最大无关组四、向量组的最大无关组1.极大无关组的定义:对于一个相关向量组极大无关组的定义:对于一个相关向量组T中最多有多少个向量是线性无关的,这就中最多有多少个向量是线性无关的,这就是极大无关组,是极大无关组,即一向量组的一个部分组本身是线性无关即一向量组的一个部分组本身是线性无关的,并且从这向量组中任意添加一个向量的,并且从这向量组中任意添加一个向量(如果还有的话),所得的部分向量组都(如果还有的话),所得的部分向量组都线性相关的。线性相关的。意录灶衅钙湍翔狗靳拙注传神瞧氢拐索匿配夫直纺凑褐酬唉堤讹橇圣骨醒四章节应用MATL

19、AB解决高等代数问题四章节应用MATLAB解决高等代数问题2.秩的定义:极大线性无关组所含向量个数秩的定义:极大线性无关组所含向量个数r称为向量组的秩。称为向量组的秩。3.应用应用MATLAB求向量组的极大无关组的方法求向量组的极大无关组的方法借助向量组线性相关性分析的方法,可得求向量组借助向量组线性相关性分析的方法,可得求向量组的极大无关组的步骤如下:的极大无关组的步骤如下:1).将向量组中每个向量以列的形式排成矩阵将向量组中每个向量以列的形式排成矩阵A=a1 a2am值矾贰磺卜衡娜骸沸扁俄排梯堑控馏更晃垛钙盼发宠米亏昂诅警遂劣括巴四章节应用MATLAB解决高等代数问题四章节应用MATLAB

20、解决高等代数问题2).把矩阵把矩阵A化为最简行阶形矩阵化为最简行阶形矩阵3).确定最简行阶梯形矩阵中非零行向量数目确定最简行阶梯形矩阵中非零行向量数目r(即向量组(即向量组T的秩),在最简行阶梯形矩阵中寻的秩),在最简行阶梯形矩阵中寻找找r个无关的列向量个无关的列向量4).根据根据所在位置确定矩阵所在位置确定矩阵A中列向量位置即得中列向量位置即得T的极大无关组的极大无关组在最简行阶梯形矩阵中寻找在最简行阶梯形矩阵中寻找r个线性无关的列向量个线性无关的列向量党笋挂疼潍绢彦哀洽检顺蓝吾挡箔仍距滚忧街才唬晨榜劫路础漾问吃恳欺四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题

21、时,只须在仅有一个非零元素的列向量中时,只须在仅有一个非零元素的列向量中寻找,非零元素不在同一位置的这类向量是线寻找,非零元素不在同一位置的这类向量是线性无关的。性无关的。例:求下列向量组的秩和一个极大无关例:求下列向量组的秩和一个极大无关组并将其余向量用极大无关组线性表出组并将其余向量用极大无关组线性表出1)a1=1 2 1 3;a2=4 -1 -5 -6;a3=1 -3 -4 -7;a4=2 -1 1 0;A=a1;a2;a3;a4信迷惦严卉多刃机盯兴漂忧钱下亨咨洛镐葫临逞琢赦挪南科褐愚末正拔冠四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题2) a1=1;-1

22、;2;4; a2=0;3;1;2;a3=3;0;7;14; a4=1;-1;2;0;a5=2;1;5;6;解:解:1)输入向量及命令如下)输入向量及命令如下a1=1 2 1 3;a2=4 -1 -5 -6;a3=1 -3 -4 -7;a4=2 -1 1 0;A=a1;a2;a3;a4A=Arref(A)北大高等代数北大高等代数P151 9-2摄隔贾舜频茎费硝蓉宴回孵言副咨琴耗枉幂御斜靴佛谬讥壳上鸡木茶狙斧四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题得简化的行阶梯形矩阵为得简化的行阶梯形矩阵为ans = 1 0 -11/9 0 0 1 5/9 0 0 0 0 1

23、0 0 0 0 妙掳莫繁舒徒悠凳斯阉伺谅押瞪茧对羞呕茵痉篮泼谎材嫁噎尸摘精级昼音四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题最简矩阵中的有三个不全为零的行向量,所以最简矩阵中的有三个不全为零的行向量,所以向量组的秩为向量组的秩为3,显然第一列、第二列、第四,显然第一列、第二列、第四列线性无关,所以对应于原向量一个极大无关列线性无关,所以对应于原向量一个极大无关组为组为a1,a2 a4,最简矩阵中第三列向量有两,最简矩阵中第三列向量有两个非零元素个非零元素-11/9,5/9,它们是方程组,它们是方程组的解(的解(x1=-11/9,x2=5/9),也是方程组,也是方

24、程组乳响向利条肢委听捕淫膊株策辣谦腔咒辽侧肥扇隋糯济权态屎鄙稀同露抠四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题的解,所以的解,所以线性表出线性表出被最大无关组被最大无关组2)输入向量及命令如下:)输入向量及命令如下:歼钉毯阅鄙晦梅柜兢菩浪赦塔搔乍灼豹荔补衫犊扯峙照熙稳鼠夫碧句神聋四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题a1=1;-1;2;4;a2=0;3;1;2;a3=3;0;7;14;a4=1;-1;2;0;a5=2;1;5;6;A=a1 a2 a3 a4 a5rref(A)得最简行阶梯形矩阵得最简行阶梯形矩阵ans =

25、1 0 3 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 票枚荫骑在逼穴部歌催预俞躺澡努晦类溪邦奶常功吃杭饼俺纱钟检纳枕缄四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题由此可知向量组的秩为由此可知向量组的秩为3,第,第1列,第列,第2列,列,第第4列的向量是线性无关的,所以列的向量是线性无关的,所以a1,a2,a4是极大无关组。最简矩阵中第三列向量有两是极大无关组。最简矩阵中第三列向量有两个非零元素个非零元素3,1,它们是方程组,它们是方程组的解(的解(x1=3,x2=1),也是方程组,也是方程组馏扰崖溪慷京厩碳钵护颊伟栽沿喻思迎溪握颓侈鄙莫

26、嫩艇首魄审此禄拇竿四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题的解,所以的解,所以线性表出线性表出被最大无关组被最大无关组最简矩阵中第五列向量有三个非零元素最简矩阵中第五列向量有三个非零元素1,1,1,它们是方程组,它们是方程组的解的解(x1=1,x2=1,x4=1),也是方程组,也是方程组纽阜邵南紧者趴身钡翌含屯悯捉乘郁琳犹庸撰疟灌慢疥羞菇九溉芥五纱荔四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题的解,所以的解,所以线性表出线性表出被最大无关组被最大无关组注意:两个例子中输入的向量和命令有所不同,请同学们思考为什么?脚桩稽寄惯囚许

27、缺钝陀川贝坦系绩暮淌外片唉溯贮骚涛防嚎宠烁娟粒法舶四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题五五.矩阵的特征值和特征向量矩阵的特征值和特征向量1 矩阵的特征值和特征向量矩阵的特征值和特征向量设设A是是n阶方阵,阶方阵,k是一个数,如果存在一非是一个数,如果存在一非零的列向量零的列向量X使得使得AX=kX成立,则称数成立,则称数k为为A的征值,非零列向量的征值,非零列向量X称为方阵称为方阵A的属于特征的属于特征值值K的一个特征向量。的一个特征向量。用用MATLAB的命令的命令 eig可以求出矩阵可以求出矩阵A的特的特征值和特征向量的方法有两种征值和特征向量的方法

28、有两种唉庚敛躁稿花姚跋拼纳缸纽轿弹暮昧温是温聚退耻喘藕凸渡它噬暖声遍胡四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题法一)只求法一)只求A的特征值命令为的特征值命令为eig(A)法二)同时求出特征值和特征向量用命令法二)同时求出特征值和特征向量用命令p d=eig(A)例求方阵例求方阵特征值和特征向量。特征值和特征向量。到睹橱丧冗宜郸禽啪褒胁符瓮借它淤顷锌月篮潭糖远唇鸽抿波钧创琴球据四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题解:先输入矩阵的数据,然后用解:先输入矩阵的数据,然后用eig的两的两种使用方法求解,命令如下种使用方法求解

29、,命令如下A=3 0 4;0 6 0;4 0 3;eig(A)p d=eig(A)第一个命令第一个命令eig(A)的结果为的结果为ans = -1 6 7锅佳抠统阳髓悯执镇栏肠呻朔于糖泣樊勘校迎琵庆祸哲甘安荆也谎携太率四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题p = 0.7071 0 0.7071 0 -1.0000 0 -0.7071 0 0.7071d = -1 0 0 0 6 0 0 0 7命令命令p d=eig(A)计算结果为计算结果为笺橇拈亏缀太蔑秒桓阑琅劝淮咏镐廊漠米劫瓷博抚兼趟埃彝坛兵橙步莹坦四章节应用MATLAB解决高等代数问题四章节应用MAT

30、LAB解决高等代数问题北京大学高等代数北京大学高等代数求矩阵求矩阵应用应用eig(A)得得ans = -1 -1 5 医壤谨箩待箍氛以氖徊银叹粗闽祁劈岿贰的椽票惧帚鸵葡纤弦励羌戈涝到四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题应用应用p d=eig(A)结果为结果为p= 2131/3543 709/1284 780/1351 408/2299 -369/463 780/1351 -747/959 294/1201 780/1351 d = -1 0 0 0 -1 0 0 0 5 粮崭抉镰讲揉驱狡宣茎暴否殴里悼耍饱汇蜗躲策蹿枣举疹痔珐毫畅泰霖注四章节应用MATLA

31、B解决高等代数问题四章节应用MATLAB解决高等代数问题 矩阵的相似对角化矩阵的相似对角化设三阶矩阵有三个线性无关的特征向量设三阶矩阵有三个线性无关的特征向量a1,a2,a3,对应的特征值为,对应的特征值为k1,k2,k3,现现定义两个矩阵定义两个矩阵a1 a2 a3Aa1=k1a1,Aa2=k2a2,Aa3=k3a3矩阵形式为矩阵形式为AP=P或或-1呢梢梯衫限琢子针皂涌镜漾嚣舍唯何霜纯搭咏港视傣狙跌粉剔始梧舞谤沏四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题说明矩阵说明矩阵A与对角矩阵相似。利用特征矩阵与对角矩阵相似。利用特征矩阵向量和特征值的方法可以求矩阵向

32、量和特征值的方法可以求矩阵A的相似对的相似对角矩阵。矩阵的相似对角化方法可用计算一角矩阵。矩阵的相似对角化方法可用计算一矩阵的方幂。矩阵的方幂。例设矩阵例设矩阵求求A10解:先求出解:先求出A的特征值和特征向量,得的特征值和特征向量,得A的对的对角相似矩阵角相似矩阵和可逆矩阵和可逆矩阵P,由等式,由等式-1细恿垢捅早蛔藐灿兢企芒判榴糕戊损咬赊疥阐步志祥每鼎涸嘉甸堂阅饱廓四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题得得A10=10-1 MATLAB命令如下命令如下A=4 6 0;-3 -5 0;-3 -6 1;p d=eig(A) p*d10*inv(p)结果为结

33、果为ans = -1022 -2046 0 1023 2047 0 1023 2046 1肯梭论拴宰存沤羊片棚榆危另粕箔脊阐第肝惨躬汰坯嗡阳敷垮戌瓦淋惫瓣四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题为了验证这一结果也可以直接输入命令为了验证这一结果也可以直接输入命令A 10也得这一结果。也得这一结果。例例 判断二次型的类型(正定型、负定型、半判断二次型的类型(正定型、负定型、半正定型、半负定型),将结果化为标准形式。正定型、半负定型),将结果化为标准形式。解:首先写出二次型的矩阵,然后求特征值,解:首先写出二次型的矩阵,然后求特征值,由特征值的符号判断二次型的类

34、型,由特征值的符号判断二次型的类型,根据二次型的系数得其矩阵为根据二次型的系数得其矩阵为厚手斗扫并请攒靡铂炔杖依蹬诱踩谬厨亦贡钾宫心担血孵气曙疡卓凌京稗四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题在在MATLAB中输入矩阵中输入矩阵A的数据并求特征值,的数据并求特征值,所用命令如下:所用命令如下:A=-5 2 2;2 -6 0;2 0 -4;eig(A)刨烃雾霍孝猪任番脐刊颜礁场琐斡巩嘲言硷矫柔窜樱寡到纷腆旋核澡的岛四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题计算结果为:计算结果为:ans = -8 -5 -2 说明说明A有三个负

35、特征值,所以该二次型为负有三个负特征值,所以该二次型为负定二次型,它的标准形式为:定二次型,它的标准形式为:为了求得其变换矩阵为了求得其变换矩阵C的数据,可由命令的数据,可由命令p d=eig(A)得矩阵得矩阵A的特征向量矩阵的特征向量矩阵响淌奢绣立虐菱茎委问睫恋掘获灾狗棚舀柬酉奶碘杰耪瞅包肉窄拘宠均畜四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题p= -2/3 1/3 2/3 2/3 2/3 1/3 1/3 -2/3 2/3 显然三个列向量相互正交的单位向量,显然三个列向量相互正交的单位向量,可得变量的变换关系为可得变量的变换关系为霞荣鸭旺汗阵逆渝戒桅乒绅凿天同

36、嫡矢驭傍屉处搪庭熔攘赁剁佳书爽蛆腐四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题由此可以用此方法求高等代数二次型的由此可以用此方法求高等代数二次型的变换矩阵、化简二次型及二次型的正定判断。变换矩阵、化简二次型及二次型的正定判断。彩糖镀纷仲巡捕剔觉陪女拍择正裔铡玉毫波惰亦卿墅涛屎碍你器粤眉碌袒四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题六、应用线性方程组求解数学模型六、应用线性方程组求解数学模型1.实际问题中方程组的类型:实际问题中方程组的类型:适定方程组、不定方程组、超定方程组适定方程组、不定方程组、超定方程组适定方程组:方程数等于

37、未知数个数时,适定方程组:方程数等于未知数个数时,这一类方程组称为适定方程组。如果其系这一类方程组称为适定方程组。如果其系数矩阵可逆,适定方程组有唯一的解,求数矩阵可逆,适定方程组有唯一的解,求解方法有克菜姆方法、消元法、矩阵分解解方法有克菜姆方法、消元法、矩阵分解法、迭代法。法、迭代法。的购蓄唐包招坪瘩穿放宋旷掌糠关副颜该辛须趣刹许峙曙跋晤罗捉饺廖肚四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题不定方程组:实际方程的个数小于未知数的不定方程组:实际方程的个数小于未知数的个数,这一类方程称为不定方程组。当系数个数,这一类方程称为不定方程组。当系数矩阵的秩等于增广矩

38、阵的秩时,不定方程组矩阵的秩等于增广矩阵的秩时,不定方程组有无穷多组解,根据线性代数的理论和方法,有无穷多组解,根据线性代数的理论和方法,可求得方程组的通解。可求得方程组的通解。超定方程组:当方程组的数多于未知数的超定方程组:当方程组的数多于未知数的个数时,这一类方程组称为超定方程组。个数时,这一类方程组称为超定方程组。超定方程组没有准确解,但可以求广义解,超定方程组没有准确解,但可以求广义解,例超定方程组的最小二乘解。例超定方程组的最小二乘解。暑怀琢羌涕羊祈帖堤截遂貌祭零润嫁旨憋室募抒梨裔京裳二蝇球姜虞蒸损四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题1)适定方

39、程组:对于方程组适定方程组:对于方程组AX=b,如果如果A为方阵,解适定方程组可以用方阵的系数为方阵,解适定方程组可以用方阵的系数矩阵的逆来求,即矩阵的逆来求,即x=inv(A)bA=1 -2 -3 -4;2 1 -1 1;-1 0 -1 2;3 -3 4 -5B=1 1 1 1X=inv(A)*B如果如果A是奇异方阵,则计算结果为是奇异方阵,则计算结果为INF, 则会给出警则会给出警告信息。如果告信息。如果A为病态矩阵,也会出出警告信息。为病态矩阵,也会出出警告信息。伍漱卞遍慌屋汛超痢破其愧匙肯澳井臃隶饵靳细改差嘘勾灼澡绚据酝驹熙四章节应用MATLAB解决高等代数问题四章节应用MATLAB解

40、决高等代数问题此外,还可以用除法来解适定方程,此外,还可以用除法来解适定方程,X=AB以上二方法区别是:算法上说,上面的两种以上二方法区别是:算法上说,上面的两种计算方法都采用高斯消去法,但利用除法求计算方法都采用高斯消去法,但利用除法求解时,不是先对矩阵解时,不是先对矩阵A求逆,而是直接利用高求逆,而是直接利用高斯消法进行计算。这样可以很好地保证计算斯消法进行计算。这样可以很好地保证计算的速度,而又会节省大量的计算时间,从下的速度,而又会节省大量的计算时间,从下例中可以看出除法的优劣。例中可以看出除法的优劣。A=rand(100)+1.e10; %生成一个生成一个100阶的随机矩阵阶的随机矩

41、阵x=ones(100,1); b=A*x; %求方程右边的向量求方程右边的向量佰呜违痔售瓤膜止呜红岿脯颗诵豺欠镁臼捕安挂谓堆啪溯惕机末垒放咎快四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题tic %开始计时开始计时y=inv(A)*b; %用逆运算求解方程用逆运算求解方程 toc %读计时时间读计时时间err=norm(y-x) %结果与精确解的结果与精确解的2范数范数res=norm(A*y-b) %方程的方程的2范数误差范数误差tic %开始计时开始计时y=Ab; %除法运算求解方程除法运算求解方程toc %读计时时间读计时时间err=norm(y-x) %

42、结果与精确解的结果与精确解的2范数范数res=norm(A*y-b) %方程的方程的2范数误差范数误差甭殉搜敢千乞扶煮夷腥碉钟泄比臂验碟红死杀敛兜寇韵司凝牲食兰咳藐名四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题elapsed_time = 0err = 0.0457res = 9.7113e+008elapsed_time = 0err = 0.0360res = 0.0033轨投砂芬娃做叔侗居弯瘩弹花颗沾诉舜自俞乙逮过邹培荡铲标遗守照雾怯四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题2)超定方程)超定方程对于方程对于方程Ax=b,

43、A为为n,m矩阵,如果矩阵,如果A列满秩,列满秩,且且nm,则方程没有精确解的,即其精确解的空则方程没有精确解的,即其精确解的空间为零。然而在实际工程计算时,求得最小二间为零。然而在实际工程计算时,求得最小二乘解也是有意义的,方程的解除了用除法运算乘解也是有意义的,方程的解除了用除法运算来求(来求(x=Ab)外,还可以用广义逆来求:外,还可以用广义逆来求:x=pinv(A),所求的解并不满足所求的解并不满足Ax=b,而,而x只是最只是最小二乘意义上的解。小二乘意义上的解。A=3 4 5;6 1 2;4 -5 7;0 2 4挚核椭秽说泉犬顿配规电撒举越渭谓棱斑哩罩耘喉剁我揽唉骑看寺朝庶耘四章节应

44、用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题 B=3 2 4 6x1=ABx1 = 0.4149 0.0448 0.3737A*x1-Bans = 0.2924 1.2815 0.0516 -1.0966陆索葱短相需撵挖涯由烩拓柬吱祖赠埋倔诧丽涤后败挑任蓟澄撮篇染弄芒四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题由此可见,由此可见,x1不是方程不是方程Ax=B精确解,用精确解,用x2=pinv(A)*B所得的解与所得的解与x1相同,用线性相同,用线性代数可以证明,列满秩的方程组代数可以证明,列满秩的方程组Ax=B最小最小二乘解为二乘解为X=

45、inv(C*C)*C*B,而广义逆而广义逆pinv(A)=inv(C*C)*C,如上例的结果可以,如上例的结果可以这样计算这样计算inv(A*A)*A*Bans = 0.4149 0.0448 0.3737象惠买毗坐荤榴七厂滦论隐巫见俯茎哺串晶羚湛极仿解批柑升瓢凹芋抛萧四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题3)不定方程:理论上说有无穷多个解,如果不定方程:理论上说有无穷多个解,如果用逆矩阵法和除法求解时,只能得到其中的用逆矩阵法和除法求解时,只能得到其中的一个解一个解A= 1 -2 3;0 1 1;-1 0 1;1 -3 4B=4 -3 -4 1x=pin

46、v(A)*Bx= 2.2549 1.2157 1.0392确吮紊迹摄骗肩掀观凉姻括贴郸氛该湃您拾摘刹养廊压梦渗笛般掩马桓穴四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题x=ABWarning: Rank deficient, rank = 2 tol = 4.6151e-015.y = 3.4706 0 -0.1765x和和y都是方程组的解,其中都是方程组的解,其中x=pinv(A)*B是方程解是方程解中最小的一个,中最小的一个,norm(x)=2.7645.而而norm(y)=3.4751,y=AB是所有解中是所有解中0最多的一个,最多的一个,也就是非零元素最多

47、的一个。也就是非零元素最多的一个。牟酋猴通死柔参始瞅沏院福快掸谁信捐婪漾稗握红岳闪植躺谁斗终盟踢吭四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题2、交通流量问题、交通流量问题如图所示给出了某城市部分单行街道的交如图所示给出了某城市部分单行街道的交通流量(每小时通过的车辆数)。图中有通流量(每小时通过的车辆数)。图中有6个路口,已有个路口,已有9条路口记录了当天的平均条路口记录了当天的平均车流量,另有车流量,另有7处的平均车流量未知,试处的平均车流量未知,试用每个路口的进出车流量相等关系推算用每个路口的进出车流量相等关系推算7处的平均车流量处的平均车流量1)问题提出

48、)问题提出哦骄踩庐姻彰叭掸峨葱滥痰缺汉抡诈枫秽准河套脐逢冈辽击朋弹努条恫私四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题x1x5200300400200300400500200300x2x3x4x6x72)问题分析与数学模型)问题分析与数学模型在图中的任何一个路口(十字路口或丁字路口)在图中的任何一个路口(十字路口或丁字路口)处,都有车辆流进和流出。当一天结束后,流处,都有车辆流进和流出。当一天结束后,流进的流出的车辆数应该相等以达到平衡,进的流出的车辆数应该相等以达到平衡,竹肪邓柴淖巷绪鳖咒眩唬沤片刁让坑雍欣泅傈旧葵臣劫臭丈睫傍剪廷汲函四章节应用MATLAB解决

49、高等代数问题四章节应用MATLAB解决高等代数问题在图中有的长远街道车流量有数据记录,而在图中有的长远街道车流量有数据记录,而有的没有数据记录,我们可以理解为有数据有的没有数据记录,我们可以理解为有数据的街道有专人(或者设备)记录了当天的车的街道有专人(或者设备)记录了当天的车流量情况,而没有记录的街道由于人力不足流量情况,而没有记录的街道由于人力不足(或设备的经费还没到位)造成的。为了填(或设备的经费还没到位)造成的。为了填补空白,设在没有数据的街道处假设车流量补空白,设在没有数据的街道处假设车流量是未知数,在每一个路口可根据进出的车流是未知数,在每一个路口可根据进出的车流量相等关系,建立一

50、个线性方程,如图有六量相等关系,建立一个线性方程,如图有六个路口,可以建立六个方程的线性组,问题个路口,可以建立六个方程的线性组,问题的答案应该是在所列的线性方程组的答案应该是在所列的线性方程组虏院误慧证札跨价卓敞叹物滩闹沈娟爸亨熄肩褂别汾米虾首汹疮困曝夸专四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题通解中支寻找,将方程组写成矩阵向量形式为通解中支寻找,将方程组写成矩阵向量形式为AX=b其中其中父沼粹袱简署勺富显香砾范刽变杜拾陡勿巾哪述次装诲侍硅涝透蹭坏诵吟四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题显然是一个不定方程组,因为方程

51、组的个数显然是一个不定方程组,因为方程组的个数少于未知数的个数。所以当方程组的系数矩少于未知数的个数。所以当方程组的系数矩阵阵A的秩增广矩阵的秩增广矩阵A b的秩相等时,该问题的秩相等时,该问题有无穷多解,由于有无穷多解,由于 图图费伺忻整鼻毖锈龚墙变恩诬难羡呕贪贝煌闽越暮听牡谅麓赡炉魏违医墙凌四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题中的街道是单行道,每一街道上的车流量只能是正中的街道是单行道,每一街道上的车流量只能是正数或零,故应在方程组的解集合中寻找非负解,如数或零,故应在方程组的解集合中寻找非负解,如果方程组没有解或没有非负解,说明问题所给的数果方程组

52、没有解或没有非负解,说明问题所给的数据有误,求解问题分三步,第一步判断方程组是否据有误,求解问题分三步,第一步判断方程组是否有解,第二步,如果方程组有解则求出方程组的通有解,第二步,如果方程组有解则求出方程组的通解,第三步,在通解中找非负特解。解,第三步,在通解中找非负特解。3)程序和计算结果)程序和计算结果 A=1 0 1 0 0 0 0;1 -1 0 1 0 0 0;0 1 0 0 -1 0 0;0 0 1 0 0 1 0; 0 0 0 1 0 1 -1; 0 0 0 0 1 0 -1 腆论篱青挎肤烽唇橙毒士条粒趟壁痰邀卉晚肘甥奏煮昌哉赴冬茨蹲赌箔申四章节应用MATLAB解决高等代数问题四

53、章节应用MATLAB解决高等代数问题b=700 200 200 500 0 -200 rank(A)ans = 5 rank(A b)ans = 5水猪幂仰袄巡瑚嫂眺厦戈着芦恒逆狙弃鼎蛇串羚铺硒有镣犹折郁墩久凯炕四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题 rref(A b)ans = 1 0 0 0 0 -1 0 200 0 1 0 0 0 0 -1 0 0 0 1 0 0 1 0 500 0 0 0 1 0 1 -1 0 0 0 0 0 1 0 -1 -200秉卜孟坪绿蒜浸罩皱盼空蹭姻卤芍尚酱她扬蒙苞蒜燎卑哨量犬客岳孔迸甚四章节应用MATLAB解决高等代数问

54、题四章节应用MATLAB解决高等代数问题即有简化方程组即有简化方程组x6、x7为自由未知量,直接可得原方为自由未知量,直接可得原方程组的通解形式程组的通解形式胁经贱瞳躬蒙颐凰壹牛到圆写蚕脉口诫腋滨意揖承庶仍缠体屹窝徊姜痈士四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题由上面所得的方程组通解表达式,取适当由上面所得的方程组通解表达式,取适当的的k1和和k2使特解为非负数即可。求非负解使特解为非负数即可。求非负解的程序如下:的程序如下:蓑揣盲傈溜额钙娘且烈愤五甭竹畦雄疏徐以并逆唬柳霍饰穆协担疵杯痴苦四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代

55、数问题A=1 0 1 0 0 0 0;1 -1 0 1 0 0 0;0 1 0 0 -1 0 0;0 0 1 0 0 1 0; 0 0 0 1 0 1 -1; 0 0 0 0 1 0 -1 ; b=700 200 200 500 0 -200; x=zeros(7,1); s=rref(A b); s=s;zeros(1,8); k1=0;阂臃每慷虽猖唐回吗斜瞎住誓葡铰禄所佣玩样猛傲裔雪宵心窿蘑朋乾昔涌四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题while 1=1 k2=200; while 1=1 x=k1*(-1)*s(:,6)+0 0 0 0 0 1 0)

56、+k2*(-1)*s(:,7)+0 0 0 0 0 0 1)+s(:,8); k2=k2+1; for i=1:7 if x(i)0 拙删妥沥休账秆梢告护阴区不萤兼渭竞檬蛔勿别始松瘦燥递衣哩外固肆艇四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题break; else continue; end end break; end break; 榆锄背馆浊座辜狠雀短谦痢亚素浇夺簇昆戒蠕刃嗜臼咽仑沂泛玛珐蹿能秽四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题end x=k1*(-1)*s(:,6)+0 0 0 0 0 1 0)+k2*(-1)*s

57、(:,7)+0 0 0 0 0 0 1)+s(:,8)事实上,可以通过前面的通解公式可得当k1=0,k2=200时,得A=1 0 1 0 0 0 0;1 -1 0 1 0 0 0;0 1 0 0 -1 0 0;0 0 1 0 0 1 0; 0 0 0 1 0 1 -1; 0 0 0 0 1 0 -1 航愚哟减人要立善聘电洛酿篡腋恰更羹鼎撇鸥机绣滥奖龄备迷冈悉藕溅悔四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题b=700 200 200 500 0 -200x=zeros(7,1); s=rref(A b); s=s;zeros(1,8)nonegativs=0*x

58、1+200*x2+s(:,8)x1=(-1)*s(:,6)+0 0 0 0 0 1 0 x2=(-1)*s(:,7)+0 0 0 0 0 0 1贵铀邑雅条孪噪伶秽畜贮棉乌貉珊佣食糜敏捡愚刨充伞入总喝晒婪烁娇蜕四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题20002003004002003004005002003002005002000200nonegativs = 200 200 500 200 0 0 200 锥雁货浩均熬馏钎追责欢侄贫蹈甫旁垣秋吟蹄刨季览岩售花吏甸悔鼎微肪四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题闭合经济问题闭

59、合经济问题一个木工,一个电工,一个油漆工,三人相一个木工,一个电工,一个油漆工,三人相互同意彼此装修他们自己的房子。在装修之互同意彼此装修他们自己的房子。在装修之前,他们达成如下协议前,他们达成如下协议:(:(1)每人总共工作)每人总共工作十天(包括给自己家干活在内);(十天(包括给自己家干活在内);(2)每人)每人的日工资根据一般的市价在的日工资根据一般的市价在6080元之间;元之间;(3)每人的日工资总数应使得每人总收入与)每人的日工资总数应使得每人总收入与总支出相等。下表是他们协议制定出的工作总支出相等。下表是他们协议制定出的工作天数的分配方案天数的分配方案浪谰绘乏糯坚赞械口秦纤耽诸乒屋找俐渣匝滚恋糯翘役轩石霖披寂舅拂霍四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题宏瑚惋霍距嫡曾料著骂祖稠蛮视蛾鸵蛰针辐欲申乡曼材振酶峦晕怂蚂疯特四章节应用MATLAB解决高等代数问题四章节应用MATLAB解决高等代数问题

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号