matlab编程及其应用
MATLAB程序设计及应用实例

c=input('请输入一个字符','s'); if c>='A' & c<='Z'
disp(setstr(abs(c)+1)); elseif c>='a'& c<='z'
disp(setstr(abs(c)-1)); elseif c>='0'& c<='9'
disp(abs(c)-abs('0')); else
disp(c); end
5.1.4 选择结构- switch语句
switch语句
其语句格式为: switch 表达式 case 值1 语句组1 case 值2 语句组2 …… case 值m 语句组m otherwise 语句组m+1 end
5.1.4 选择结构- switch语句
例 某商场对顾客所购买的商品实行打折销售,已知打折标 准,求所售商品的实际销售价格
例 矩阵乘法运算要求两矩阵的维数相容,否则会出错。 先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘
Matlab编程基础及应用-四川大学课件

Matlab编程基础及应⽤-四川⼤学课件第三章基本数值计算
第⼀节数据的类型
1.变量
2.常量
3.字符变量
第⼆节矩阵构造及运算1.矩阵(matrix)的构造
(1)矩阵的建⽴
exno10:
exno10t:
(2)向量
(3)向量的点积与叉积
2.矩阵的加减乘除
3.对矩阵的操作
(1)对矩阵元素的操作
(2)对矩阵A的部分操作
(3)对矩阵A进⾏分析
4.矩阵的数组运算
练习3-3
:
若x= 0 : 0.1 : 2 plot(x, y)
5.矩阵元素的关系运算与逻辑运算
6.矩阵的多维数组形式
(1)数组的维
(2)多维数组的构成
a是3x3x2矩阵
c是3x3x3矩阵7.多项式及其运算式(1)多项式的创建
(2)多项式的引⽤polyval
(3)多项式运算的函数
(4)函数的多项式拟合
:
第四章符号运算
符号运算是数学计算的重要内容,特点是不带来计算误差,希望认真掌握本章内容。
第⼀节符号变量的创建
第⼆节符号函数的运算
1.函数求极限
第3句返回值:
exno18t:
a = 2/3 其中2/3是符号不是数字
2.微分与积分的运算
y1 =
y1,y2是两个变量
y(1),y(2)是y的两个元素
3.梯度函数gradient
注意:除了边界点是相邻作差,其他点应间隔⼀点作差再除以两倍相邻距离)。
matlab程序设计与应用

matlab程序设计与应用Matlab是一款高效能的编程语言,具有高品质的计算和分析功能,近十多年来被广泛应用在工程计算、科学研究、商业分析、金融模拟和教育工作等多个领域。
它拥有一系列强大的算法编写功能,可以实现非线性矩阵求解、信号处理、图像处理、生物医学信号处理等功能。
本文将介绍Matlab程序设计与应用,以及它在工程计算、科学研究、商业分析等领域的应用和示例。
一、Matlab程序设计Matlab是一种操作方便的高级编程语言,立足于原始编码,它建立在C及FORTRAN之上,而且它的高级结构使得设计程序不必写成复杂的程序框架,而可以把主要精力放在要实现的功能上。
Matlab在程序设计方面支持面向对象编程(Object-oriented programming,OOP)方式,可以实现结构化的程序设计,把大量的程序按照模块和函数来管理,方便调用和重用,并可以利用Matlab的类和类的方法来实现程序的重用和拓展。
二、Matlab在工程计算领域的应用Matlab在工程计算领域的应用如下:(1)Matlab可以用于科学计算,如:数值分析、科学计算、多元函数拟合、图像处理以及信号处理等。
(2)Matlab可以用于设计和调试电子电路,如:数字电路、模拟电路、射频电路、功率电路以及控制电路等。
(3)Matlab可以用于控制系统分析,如:数模转换、频响函数以及过程控制等。
(4)Matlab可以用于机械结构设计,如:机械结构分析、运动学以及动力学等。
三、Matlab在科学研究和商业分析领域的应用Matlab在科学研究和商业分析领域的应用如下:(1)Matlab可以用于统计学研究,如:概率统计、偏差分析、多元分析以及非参数分析等。
(2)Matlab可以用于数据挖掘,如:决策树分类、聚类分析以及因子分析等。
(3)Matlab可以用于仿真研究,如:求解方程、模拟实验以及模型预测等。
(4)Matlab可以用于商业分析,如:市场调研、销售预测以及风险评估等。
MATLAB程序设计及应用实例

MATLAB程序设计及应用实例MATLAB(Matrix Laboratory)是一种用于算法开发、数据分析、可视化和数值计算的高级技术计算语言和环境。
它的强大功能和灵活性使其成为各个领域研究和工程实践中广泛使用的工具。
下面将介绍几个MATLAB程序设计及应用的实例。
1.信号处理:MATLAB是信号处理的强大工具,它可以用于滤波、频谱分析、小波变换、分析和合成音频信号等。
例如,可以利用MATLAB进行语音信号的去噪处理,通过设计特定的滤波器来去除信号中的噪声成分,从而提取出清晰的语音信号。
2.图像处理:MATLAB可以进行图像的加载、处理和分析。
它提供了丰富的图像处理函数和工具箱,可以实现图像的滤波、二值化、边缘检测、图像增强等操作。
例如,可以使用MATLAB对医学图像进行分割,将感兴趣的区域提取出来,辅助医生进行病灶诊断。
3.控制系统设计:MATLAB是控制系统设计的有效工具。
它提供了丰富的控制系统分析和设计函数,可以进行系统建模、模拟和优化。
例如,可以使用MATLAB进行PID控制器的参数调整,通过对系统建模和后续仿真,优化PID控制器的参数,提高控制系统的性能和稳定性。
4.机器学习:MATLAB提供了强大的机器学习和深度学习工具箱,可以进行数据预处理、特征提取、模型训练和评估等操作。
例如,可以利用MATLAB进行图像分类,通过构建深度卷积神经网络模型,将输入的图像进行分类和识别。
5.数值计算:MATLAB对线性代数、数值优化和统计分析等有着强大的支持。
它提供的优化和求解函数可以解决复杂的线性和非线性优化问题,例如最小二乘拟合和参数估计等。
此外,MATLAB还拥有强大的统计分析工具,可以进行假设检验、数据拟合、方差分析等统计分析操作。
6.仿真模拟:MATLAB可以进行动态系统的建模和仿真,通过搭建系统方程和初始条件,可以对系统的动态响应进行模拟。
例如,在电力系统中,可以使用MATLAB进行电力系统稳定性分析,对电力系统的动态响应进行跟踪和分析。
MATLAB编程入门与应用

MATLAB编程入门与应用第一章:MATLAB简介与安装1.1 MATLAB的定义与概述1.2 MATLAB的优势与应用领域1.3 MATLAB的安装与配置第二章:MATLAB基础语法2.1 MATLAB的变量与数据类型2.2 MATLAB的算术运算与逻辑运算2.3 MATLAB的控制流程语句2.4 MATLAB的函数与脚本文件第三章:向量与矩阵运算3.1 MATLAB中的向量与矩阵定义与操作3.2 常见的向量与矩阵运算函数3.3 矩阵运算的应用案例第四章:数据可视化与绘图4.1 MATLAB绘图基础4.2 MATLAB中的二维绘图函数与参数4.3 MATLAB中的三维绘图函数与参数4.4 数据可视化的应用案例第五章:数据处理与统计分析5.1 数据导入与导出5.2 数据清洗与预处理5.3 常见的数据处理与统计分析函数5.4 数据处理与统计分析的应用案例第六章:图像处理与计算机视觉6.1 图像处理基础6.2 MATLAB中的图像处理函数与工具箱6.3 图像处理与计算机视觉的应用案例第七章:信号处理与数字信号处理7.1 信号处理基础7.2 MATLAB中的信号处理函数与工具箱7.3 信号处理与数字信号处理的应用案例第八章:机器学习与深度学习8.1 机器学习与深度学习基础8.2 MATLAB中的机器学习与深度学习工具箱8.3 机器学习与深度学习的应用案例第九章:MATLAB编程技巧与调试9.1 MATLAB编程技巧与规范9.2 MATLAB中的调试方法与工具9.3 常见的MATLAB编程问题与解决方法第十章:MATLAB与其他编程语言的结合10.1 MATLAB与C/C++的结合10.2 MATLAB与Python的结合10.3 MATLAB与Java的结合第十一章:MATLAB在工程与科学领域的应用11.1 MATLAB在工程领域的应用11.2 MATLAB在科学研究中的应用11.3 MATLAB在其他领域的应用与前景展望结语通过本文的介绍,读者对MATLAB的编程入门与应用有了更加全面的了解。
MATLAB求解编程

NIND=200;MAXGEN=2000;NV AR=55;max=5000000;P=0.3;M=3;N=5;L=7;A=[313000000 378000000 465000000] ;M=[20000 10000 30000 40000 40000] ;D=[165 150 200 100 150 300 200] ;f=[6000000;4000000;6000000;700000;5000000] ;V=[80;80;90;955;100] ;a=[15;20;24;20;15;20;20;15;20;24;20;15;24;20;15] ;C=[20;15;15;20;15;20;15;20;25;20;25;15;15;15;15;15;15;20;20;25;20;30;20;20;20;20;25;20;20;1 5;15;15;20;20;20;20] ;P=3;for i=l:NINDwhile 0<1for j=1:5chroml(i,j)=round(rand(i)) ;endif(sum(chroml(i,:),3)>=1)&(sum(chroml(i,:) ,3)<=P)breakendendendsumb=zeros(NIND,5) ;sumd=zeros(NIND,5);for i=l:NINDfor j=l:5if chrom1(i,j)=0chrom3(i,(2*(j-1)+1):(3*j))=0;chrom3(i, (7*(j-l)+1):(8*j))=0;elsewhile chroml(i,j)=l chrom3(i,(3*(j-1)+1):(3*j)=rand(i,3).* min(A[M(j)M(j)]);sumb(i,j)=sum(chrom3(i,(3*(j-l)+1):(3*j)),3);chrom3(j,(7*(j-1)+1):(7*j))=rand(1,7).*(rep([M(j)],[11]));sumd(i,j)=sum(chrom3(i,(7*(j-l)+1):(7*j)),3);chrom3(i,(7*(j-l)+1):(7*j))=(sumb(i,j)/sumd(i,j))*chrom3(i,(7*(j-l)+1):(7*j));if sumb(i,j)<=1.0*M(j)breakendendendendendchrom=[chroml chrorn2 chrom3];%产生初始种群[objvalue]=calobjvaluc(chrom,M,N,L,A,C, V,f);[fitvalue,restriction]=calfitvalue(objvalue,chrom,max,M,N,L,A,M,D,P); [bestindividual,bestfit,bestrestriction,nopos]=best(chrom,fitvalue,restriction);gem=0;while gen<MAXGEN,[objvalue]=calobjvalue(chrom,M,N,L,A,C,V,D);[fitvalue,restriction]=calfitvalue(objvalue,chrom,max,M,N,L,A,M,D,P); [bestindividuall,bestfitl,bestrestrictionl,noposl]=best(chrom,fitvalue,restriction);if bestrestriction>bestrestrictionlbestindividual=bestindividual l;besttit=-bestfitl;bestrestriction=bestrestriction l;endif bestrestriction =bestrcstrictionl)&(bestfit<bestfitl)bestindividual=beStindividual l;besttit=-bestfitl;bestrestriction=bestrestrictionl:endchrom(noposl,:)=bestindividual;[newchrom]=selection(chrom,fitvalue);[newchrom]=crossover(newchrom,M,N,1);[newchrom]=mutation(newchrom,P,M,N,1);[bestindividual2,bestfit2,bestrestrietion2,nopos2]=best(newchrom,fitvalue, restrietion); If bestrestriction>bestrestriction2bestindividual=bestindividual2;bestfit=bestfit2;bestrestriction=bestrestriction2;endif(bestrestriction=bestrestriction2)&(bestfit<bestfit2)bestindividual=bestindividual2;bestfit =-bestfit2;bestrestriction =bestrestriction2;endchrom=newchrom;gen=gen+1;endbestindividual,bestfit,bestrestriction%目标函数Function[objvalue]=ealobjvalue(chrom,M,N,L,A, V,f)Chrom1= chrom(:,1:N);Chrom2=chrom(:,(N+1):(N+M*N));chrom3= chrom (:,(N+M*N+1):(N+M*N+N*L));[NIND,NV AR]=size(chrom);for i=l:NINDfor j=l:Nu(i,j)=7300*sum(chrom2(i,(2*(j-l)+1):(2*j)),2);endendobjvalue=chrom2*a*7300+chrom3*c*3650+sqrt(u).* chroml*V+chroml*f; %适应度计算和约束判断Function[fitvalue restrection]=ealfitvalue(objvalue,chrom, max,M,N,l,A,M,D,P)Global gen;[NIND,NV AR]=size(chrom);Chroml=chrom (:,1:N);chrom2=Chrom(:,(N+1):(N+M*n));chrom3=Chrom(:,(N+M*N*N+1):(N+M*N+N*1));restriction=zeros(NIND,1);r=zeros(NIND,M);s=zeros(NIND,N);t=zeros(NIND,1);u=zeros(NIND,3);p=zeros(NIND,n);for i=l:NINDfor j=l:Mr(i,j)=A(j)-sum((chrom2(i,j:m:m*}n)),2);if r(i,j)<0restriction(i,1)=restriction(i,1)+1;endendfor j=l:lt(i,j)=sum((chrom3(i,j:l:n*1)),2)-D(j);if t(i,j)<0restriction(i,1)=-restriction(i,l)+1;endendfor j=l:ns(i,j)=chroml(i,j)*M(j)-sum(chrom2(i,(M*(j-1)+1):(M*j)),2);p(i,j)=abs(sum(chrom3(i,(1*(j-1)+1):(1*j)),2)-sum(chrom2(i,(M*(j-1)+1):(M*j)),2));if s(i,j)<0restrietion(i,1)=restriction(i,1)+l;endif p(i,j)>=l e-3restriction(i,1)=restriction(i,l)+l;endendu(i,1)=P-sum(chroml(i,:),2);if u(i,1)<0restriction(i,1)=restriction(i,l)+1;endu(i,2)=sum(chroml(i,:),2)-1;if u(i,2)<0restrigtion(i,1)=restriction(i,1)+l;endif(objvalue(i,1)<max)fitvaluc(i,1)=max-objvaluc(i,1);elsefitvalue(i,1)=0.0;endend%找出最优个体和最差个体function[bestindividual,bestfit,bestrestriction,nopos]=best(chrom,fitvalue,restriction); [NIND,NV AR]=size(chrom);pos=l;for i=l:NINDif restriction(pos,1)>restriction(i,1)pos=i;endif(restriction(pos,1)=restriction(i,1))&(fitvalue(pos,1)<fitvalue(i,1)) pos=i;endendbestindividual=chrom(pos,:);bestfit=fitvalue(pos);bestrestriction= restriction (pos,:);nopos=1;for i=l:NINDif restriction(nopos,1)<restriction(i,1)nopos=i;endif(restriction(nopos,1)=restriction(i,1))&(fitvalue(nopos,1)>fitvalue(i,1)) nopos=i;endend%选择Function[newchrom]=selection(chrom,fitvalue)totalfit=sum(fitvalue);fitvalue=:fitvalue/totalfit;fitvalue=cumsum(fitvalue);[NIND,NV AR]=size(chrom);ms=sort(rand(NIND,1));fitin=1;newin=1;while newin<=NINDif(ms(newin))<fitvalue(fitin)temp(newin,:)=chrom(fitin,:);newin=newin+1;elsefitin=fitin+1;endif fitin>=NINDfitin=NIND;endendnewchrom=temp;%交叉Function[newchrom]=crossover(chrom,M,N,1)global gen;[NIND,SVAR]=size(chrom);chrom1=chrom(:,l:n);chrom2=chrom(:, (N+1) : (N+M*N)) ;chrom3=chrom(:, (N+m*n+1) : (N+M*N+N*1)) ; newchrom=zeros(NIND,NV AR) ;P=0.75;for i=l:2:NIND-1if(rand<P)point=ceil(rand*(N-1));ifpoint<5newchrom(i,:)=[chroml(i,l:point)chromI(i+1,point+1:n) ... chrom2(i,l:M*point)chrom2(i+l,M*point+1:M*N) ... chrom3(i,1:l*point)chrom3(i+l,1*point+l:N*1)]; newchrom(i+l,:)=[chroml(i+l,1:point)chroml(i,point+l:n) ... chrom2(i+l,l:m*point)chrom2(i,M*point+l:M*N) ...chrom3(i+1,1:l*point)chrom3(i,1*point+l:N*1)];elsenewchrom(i,:)=chrom(i,:);newchrom(i+1,:)=chrom(i+l,:);endelsenewchrom(i,:)=chromo,:);newchrom(i+l,:)=chrom(i+l,:);endend%变异Function[newchrom]=mutation(chrom,P,M,N,L)global gen;FieldDR=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;20000 20000 10000 10000 30000 30000 40000 40000 40000 40000];RANGE=[0 0 0 0 0 0 0;165 150 200 100 150 300 200];[NIND,NV AR]=size(chrom);chroml=chrom(:,l:N);chrom2=chrom(:, (N+1):(N+M*N));chrom3=chrom(:, (N+M*N+1):(N+M*n+ 1));newchrom=zeros(NIND,NV AR);newchroml=zeros(NIND,N);newchrom2=zeros(NIND,M*N);newchrom3=zeros(NIND,N*1);for i=1:NINDfor j=l:Nif chrom l(i,j)=0newchrom2(i,(M*(j-1)+1):(M*j))=0;newchrom3(i,1*(j-l)+1):(1*j)=0;elseif round(rand)=0newchrom2(i,(M*(j-1)+1):(M*j))=chrom2(i,(M*(j-1)+1):(M*j)+ ...(FieldDR(2,(M*(j-1)+1):(M*j))=chrom2(i,(M*(j-1)+1):(M*j)))*(1-rand^((1-gen/2000)^10));newchrom3(i,(1*(j-1)+1):(1*j)=chrom3(i,(1*(j-1)+1):(1*j) + ...([165 150 200 100 150 300 200]-chrom3(i,(1*(j-1)+1):(1*j)))*(1-rand^((1*gen/2000)^10));elseif round(rand)=lnewChrom2(i,(M*(j-1)+1):(M*j) ) = Chrom2 (i,(M*(j-1)+1):(M*j)) ...(chrom2(i,(M*(j-1)+1):(M*j))-[00])*(1-rand^((1-gen/2000)^10));newchrom3(i,(1*(j-1)+1):(1*j)):chrom3(i,(1*(j-1)+1):(1*j)) ...(chrom3(i,(1*(j-1)+1):(N))-[0 0 0 0 0 0 0 0])*(1-rand^((1*gen/2000)^10));endendendendnewchrom1=chrom1;newchrom=[newchrom1 newchrom2 newchrom3];endendnewchrom1=chrom1;newchrom=[newchrom1 newchrom2 newchrom3];bestindividualbestindividual=columms 1 through 171.0000 1.0000 0 0 1.000 80.3686 20.6636 0 0 23.7458 50.7648 63.57695 0 0 123.6753 39.7648 19.5769 0 0 289.6753 columms 18 through 3419.5849 50.7648 45.7985 64.2875 19.9768 53.6843 135.6752 32.6437 24.5342 27.9485 9.9873 24.7638 125.7958 27.8745 columms 35 through 510 0 0 0 0 0 00 0 0 0 0 0 0columms 52 through 5595.7482 35.9862 83.4768 28.4769 74.5867 113.4786 44.4873。
MATLAB语言及应用教程

MATLAB语言及应用教程
1、MATLAB简介
MATLAB(即matrix laboratory)是美国MathWorks公司出品的商业
数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技
术计算语言和交互式环境。
MATLAB 不仅只是一个计算器,它还是一个完
整的编程语言。
MATLAB是一种具有矩阵语法的高级语言,用于构建专用的算法,处
理和可视化数据,提供深入的分析,以及创建强大的应用程序和系统。
MATLAB包括大量的可用函数和程序,用于帮助您解决各种各样的计算机
问题。
MATLAB可以帮助您节省时间,减少编程中的错误,提高工作效率,从而为您创造机会。
2、MATLAB组成
(1)命令窗口:MATLAB命令窗口是主要用户接口。
它是一个交互式
终端,用于输入数学表达式,变量和命令,并查看结果。
(3)图形化编程工具箱:图形化编程工具箱是一种图形化编程环境,可让您创建自定义MATLAB程序和应用程序,而无需手动编写MATLAB代码。
(4)函数库:MATLAB函数库是MATLAB软件包括的主题特定函数库。
matlab和python的应用场景

matlab和python的应用场景随着科学技术的不断发展,计算机编程语言应用的范围也逐渐扩大。
其中,Matlab 和Python 作为计算机编程领域中的两大带有科学计算性质的语言,各有其应用场景。
1. Matlab应用场景Matlab 是一种高级技术计算和可视化程序设计语言,主要适用于数学建模、数据分析、工程仿真、科学计算和科学可视化等领域。
以下是Matlab的一些应用场景:1.1 数值模拟和仿真Matlab 可以被用来模拟和仿真复杂的工程物理过程,例如流体力学、结构力学、电磁场理论、控制理论等等。
它提供了许多内置的函数和工具箱,使得用户能够直接创建数值模拟和仿真模型,并通过可视化数据来更好地理解模拟结果。
1.2 数学建模与数据分析Matlab 提供了一系列函数、算法和工具,能帮助用户从复杂的数据当中分析出有用信息。
它也支持数据可视化,以便用户能够更加深刻和清晰地理解数据分析结果,因此广泛应用于数学建模和数据分析领域。
1.3 信号处理Matlab 有丰富的信号处理功能,可以处理音频、图像、视频等多种类型的信号数据。
基于Matlab 的信号处理工具箱,用户能够快速地将复杂的信号数学问题转化为代码实现,以更好地处理音频信号、图像处理、视频处理等。
2. Python应用场景Python 是一种多用途的编程语言,易于学习。
以下是Python的一些应用场景:2.1 数据分析Python 在数据分析领域中的应用已经越来越多。
Python 使用高级数据结构和函数,便于用户对数据进行操作、可视化,甚至可以通过Python构建数据分析应用程序来做预测性分析。
2.2 机器学习在人工智能和机器学习的领域中,Python已经成为重要的编程语言。
它拥有丰富的机器学习库和框架,包括Keras、Tensorflow和Pytorch 等,可以用它们来实现各种类型的神经网络。
2.3 自动化测试Python 也适用于自动化测试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1/7
1
0
1
1/8
1
0
1
1/9
(2) :实验结果为:
A=
Columns 1 through 6
1/2
1/3
1/4
1/7
1/3
1/4
1/5
1/8
1/4
1/5
1/6
1/9
1/5
1/6
1/7
1/10
1/6
1/7
1/8
1/11
1/7
1/8
1/9
1/12
0
0
0
0
0
0
0
0
0 0 0 0 0 0 0 0 1
fprintf('给定的向量组是线性无关的。\n') else
fprintf('\n') fprintf('给定的向量组是线性相关的。\n')
fprintf('\n') fprintf('给定的向量组的秩为%d。\n',r) fprintf('\n') fprintf('给定的向量组的一个极大线性无关组为:\n') for i=1:r
X=null(A,'r') format end end
5、 实验结果与讨论、
1、 (1) :实验结果为 A=
Columns 1 through 6
1 0
1 0
0 0
0 0
0 1
0 1/6
1
0
0
0
1/2
1
0
0
1
1/3
1
0
0
1
1/4
1
0
0
1
1/5
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
Columns 7 through 10
A(k,l)=8; elseif k+l==14
A(k,l)=7; elseif k+l==15
A(k,l)=6; elseif k+l==16
A(k,l)=5; elseif k+l==17
A(k,l)=4; elseif k+l==18
A(k,l)=3; elseif k+l==19
A(k,l)=2; elseif k+l==20
fprintf('a%d',S(i)) A(:,S(i))' fprintf('\n') end b=1:n; for i=1:r b(S(i))=0; B=find(b); end for j=1:(n-r) fprintf('a%d=',B(j)) T=R(:,B(j)); for i=1:r fprintf('%d*a%d + ',T(i),S(i)) end fprintf('\b\b\n') end end 4、 clc clear A=[1,1,1,0,0;1,1,-1,-1,-2;2,2,0,-1,-2;5,5,-3,-4,-8]; b=[0;1;1;4] r1=rank(A); r2=rank([A,b]); n=size(A,2); if r1==r2 fprintf('原方程无解\n') else if r1==n fprintf('原方程有唯一解:\n') format rat
0 1 1 4
原方程无解
6、 总结
(1) :在编程中常常会把end给漏掉; (2) :对于高代中的知识点总是记得不是太清楚,导致判断最大线性 无关和秩等都不太会做。
1/5 1/6 1/7 1/8 1/9 1/10
1/6 1/7 1/8 1/9 1/10 1/11
1/8 1/13
1/9 1/14
1/10 1/15
1/11 1/16
1/9 1/10 1/11 1/12
Columns 7 through 10
1/8
1/9
1/9
1/10
1/10
1/11
1/11
1/12
x0=A\b format else fprintf('原方程有无穷多个解\n') fprintf('其中原方程的一个特解为:\n') [R,S]=rref([A,b]); X0=zeros(size(A,2),1); T=R(:,end); for k=1:length(S)
X0(S(k))=T(k); end format rat X0 fprintf('原方程组对应的齐次线性方程组的基础解系为:\n')
1/12
1/13
1/13
1/14
1/14
1/15
1/15
1/16
1/16
1/17
1/17
1/18
(3) 实验结果为:
A=
2004
20
0
2004
0
0
0
0
0
0
(4) :实验结果为:
A=
Columns 1 through 6
0
0
0
0
0
1/10 1/11 1/12 1/13
1/10 1/11 1/12 1/13 1/14 1/15 1/16 1/17 1/18 1/19
exp(x)*sin(2*x)*C2+exp(x)*cos(2*x)*C1+1/3*exp(x)*sin(x)
(3)实验结果为:x =
(1/2-1/4*2^(1/2))*exp(2^(1/2)*t)+
(1/2+1/4*2^(1/2))*exp(-2^(1/2)*t)
y= -(1/2-1/4*2^(1/2))*2^(1/2)*exp(2^(1/2)*t)+ (1/2+1/4*2^(1/2))*2^(1/2)*exp(-2^(1/2)*t)-(1/21/4*2^(1/2))*exp(2^(1/2)*t)(1/2+1/4*2^(1/2))*exp(-2^(1/2)*t)
6. 试说明下面两段程序的功能,最后两个 x 值为多少?
x=1; while x+x>x, x=x/2; end
x=1; while x+x>x, x=2*x; end
7. 已知 sin(x) 的幂级数展开公式为 试利用这个公式和第 5 题中的技巧,计算 sin(/2)和 sin(31/2) 的值,并与 Matlab 自带的 sin 函数比较,误差分别多大?为什么?
3、 A=
1 -1 2 4
0
3
3
0
1
7
2
14
2
1
1
-1
5
2
6
0
给定的向量组是线性相关的。 给定的向量组的秩为3。 给定的向量组的一个极大线性无关组为: a1 ans =
1
-1
2
4
a2 ans =
0
3
1
2
a4 ans =
2
1
5
6
a3=3*a1 + 1*a2 + 0*a4
a5=-1*a1 + -1*a2 + 1*a4 4、 b=
A(k,l)=1; else A(k,l)=0 end end end A 2、 (1) syms x y y=dsolve('(x*x-1)*Dy+2*x*y-sin(x)=0','x')
(2) syms x y y=dsolve('D2y-2*Dy+5*y=exp(x)*sin(x)','x') (3) clear clc syms x y t [x,y]=dsolve('Dx+x+y=0,Dy+x-y=0','x(0)=1,y(0)=0','t') ezplot(x,y) 3、 clc clear a1=input('请输入第1个向量a1='); a2=input('请输入第2个向量a2='); a3=input('请输入第3个向量a3='); a4=input('请输入第4个向量a4='); a5=input('请输入第5个向量a5='); A=[a1',a2',a3',a4',a5'] [R,S]=rref(A); [m,n]=size(A); r=length(S); if n==r
三、实验环境
(1)硬件:PC机 (2)软件:Windows 操作系统、matlab7.0
四、实验步骤:
1、(1)clear clc format rat for k=1:10
for l=1:10 if k==l A(k,l)=1/k; elseif k==l+1 A(k,l)=1; elseif l==k+1 A(k,l)=1; else A(k,l)=0; end
2、求微分方程的通解或特解 P97,1—3
3、用编程方法求向量组的秩、一个极大线性无关组,并将其余的向量 用极大无关组来线性表示:a1=[1,-1,2,4]
a2=[0,3,1,2] a3=[3,0,7,14] a4=[2,1,5,6] a5=[1,-1,2,0]