Matlab解方程组
解法1 符号解法,即使用solve函数
解法步骤:
第一步:定义变量syms x y z ...;
第二步:求解[x,y,z,...]=solve('eqn1','eqn2',...,'eqnN','var1','var2',...'varN');
第三步:求出n位有效数字的数值解x=vpa(x,n);y=vpa(y,n);z=vpa(z,n);
看一个简单的例子
[x ,y]=solve('y=2*x+3','y=3*x-7'); 写成[x y]=solve('y-2*x-3','y-3*x+7')也可以
网上可能有些代码在之前加了一句 syms x y,表示定义符号变量x,y 不加也是可以的。
但是代码如果写成这样
[x y]=solve(y-2*x-3,y-3*x+7) (无单引号括起来,则必须先说明x,y是符号变量)
syms x y
[x y]=solve(y-2*x-3,y-3*x+7)
解二(多)元二(高)次方程组
[x,y]=solve('x^2+3*y+1=0','y^2+4*x+1=0');
x=vpa(x,4)% vpa(x,n)用来控制运算精度,这里表示保留4位有效数字
y=vpa(y,4)
x =
-0.2824
-2.988
1.635 - 3.029*i
1.635 + 3.029*i
y =
-0.3599
-3.309
1.835 + 3.303*i
1.835 - 3.303*i
解法2 采用左除运算解方程组x=A\b
原方程可以变为
2*x-y=-3
3*x-y=7
代码:
A=[2,-1;3,-1]; 系数矩阵
B=[-3;7];
X=A\B
解法3采用求逆运算解方程组x=inv(A)*b
从这段话,可以看出虽然可以使用法3来求解。但是从速度和精度来说,法2更好
例1:
syms A B P
[A,B,P]= solve('12.56*(A-311)=-20.9*(B-311)','B/311=P^0.71','933*P=A*20+B')
输出参数顺序
l solve函数求解出的参数按字母表顺序排序
syms x y z t
[x,y,z,t]=solve(2*x+3*y-z+t-2,5*x+y+z-t-13,x-y+2*z+2*t-3,3*x+2*y+2*z+9*t+3)
正确写法应该是: solve函数会求解出xyzt的值,并把他们按字母表顺序排序,所以第一个是t 后三个一次为xyz
syms x y z t
[t,x,y,z]=solve(2*x+3*y-z+t-2,5*x+y+z-t-13,x-y+2*z+2*t-3,3*x+2*y+2*z+9*t+3)
已知参数求方程组
例如求解该方程组
[x,y]=solve('x^2+y^2=1','x+y=1')
x =1 y=0 或x=0 y=1
修改该方程
此时方程加入了已知参数
[x,y]=solve('a*x^2+b*y^2=c','d*x+e*y=f')
此时求解出来的变量用已知参数表示。如果已知参数值
a=1;b=1;c=1;d=1;e=1;f=1;
然后用subs函数来替换已知参数中的值,即计算变量的值。
完整代码:
[x,y]=solve('a*x^2+b*y^2=c','d*x+e*y=f');
a=1;b=1;c=1;d=1;e=1;f=1;
subs([x y])
(a-x)^2+(b-y)^2=e^2
(C-x)^2+(D-y)^2=v^2
已知a,b,c,d,e,v 值
求解 X,Y 请问用 matlab 如何写,就是求2个园的交点问题。
仿真程序为:
global a b c d e v;
a=1;b=0;c=-1;d=0;e=1.5;v=1.5;%参数的值
%可以不用展开
[x,y]=solve('x^2+y^2-2*a*x-2*b*y=e^2-a^2-b^2','x^2+y^2-2*c*x-2*d*y=v^2-c^2-d^2')
运行结果
subs(x)
subs(y)
带入参数数值后的结果
MATLAB
课
程
报
告
系 别:电气工程与自动化学 号: B11043425
姓 名:贺阳阳
Matlab课程报告
上大学的第五年终于学习了MATLAB这门课程,之前大专期间很多专业基础课里都有MATLAB应用,一直对MATLAB充满了好奇,想学习它,了解它,进而在以后能够使用它。
通过一个学期的学习,我了解该软件的基本功能,也知道了该软件在我们生活中的重要地位。随着社会的不断发展,科技的不断进步,计算机的普及,它也被应用在越来越多的方面。
首先,通过学习,我了解到了Matlab软件的历史。MATLAB(MATrix LABoratory,即矩阵实验室)是美国 MathWork 公司推出的一套高效率的数值计算和可视化软件。 MATLAB 是当今科学界最具影响力、也是最具活力的软件,它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。
其次,知道了Matlab软件的功能。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。在国际学术界,Matlab已经被确认为准确、可靠的科学计算标准软件。在国际一流的学术刊物上,尤其是信息科学刊物上,都可以看到Matlab的应用。
最后,以下是我一个学期学习后对MATLAB的认识和了解:
一、语言简洁紧凑,使用方便灵活,库函数极其丰富。与之前学过的C语言相比较。它的语言简练明了,有时候只要一个字符就能表示出整句语句,不用一步步去读。这种语言简单而实用。每个函数建立一个同名的M文件,如上述函数的文件名为fun.m。这种文件简单、短小、高效,并且便于调试。比如说,函数的赋值。在C语言中,它需要一个个去赋值,x=?;y=?;当变量很多的时候,我们不能一次性的去赋值。并且我们需要注意赋值的类型。而在Matlab软件中,我们只需要知道它的初值,自变量的数值,以及它的范围,就可以用矩阵把整个函数赋值。这减去了我们的工作复杂性,也降低了我们时间花费。
二、运算符丰富,用Matlab软件设计程序,它更加方便快捷。MATLAB 的基本数据单元是既不需要指定维数、也不需要说明数据类型的矩阵,而且数学表达式和运算规则与通常的习惯相同。因此,在MATLAB环境下,数组的操作与数的操作一样简单。对比C语言,Matlab确实简单不少。我们在编写程序时简便了许多。例如,求1 1 2 3 5 8 13…这个算法。C语言得用许多的语句去循环算这个算法。而Matlab软件可以首先数据初始化,然后用while去循环,做出循环体,就可以你要多少数据,它会给你多少数据。还
有在Matlab软件设计程序时,少了很多的定义,减少了复杂度,节省了计算机的暂时内存使用率。就和C语言一样,在语句结束时用“{ }”,Matlab软件中一句话结束时,也需要用end。MATLAB既具有结构化的控制语句(如for循环、while循环),又有面向对象编程的特性。
三、语法限制不严格,程序设计自由度大。程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。Matlab具有一个强大的工具箱,里面的东西,只要你想要的,你可以毫不犹豫的提取出来,不用想C语言编程中,你要的东西你得用函数调用的形式去借用。这些工具箱提供了用户在特别应用领域所需的许多函数,这使得用户不必花大量的时间编写程序就可以直接调用这些函数,达到事半功倍的效果。
四、MATLAB的图形功能强大。不管你二维图形,三维图形,还是现在流行的四维图形。只要你想要,能编写出来函数式。在短短几秒钟之内,它会呈现在你眼前。另外就是图形的直观性,你在绘编图形时,加上一点修饰,它会自动标注你想要图形的阴影部分。MATLAB 具有二维和三维绘图功能,使用方法十分简便。而且用户可以根据需要,坐标图上加标题。坐标轴标记。文本注释及栅格等,也可以指定图线形式(如实线、虚线等)和颜色,也可以在同一张图上画不同函数的曲线,对于曲面图还可以画出等高线。
例如用madlab创建矩阵时,方法有两种:第一、可以直接依次输入矩阵各行各列的元素,但矩阵元素必须用[ ]括住,矩阵元素必须用逗号或空格分隔 ,在[ ]内矩阵的行与行之间必须用分号分隔。第二、用MATLAB函数创建矩阵。MATLAB可以进行矩阵的加减、乘除的元素,求可逆矩阵、转置矩阵,求矩阵的特征值,求线性方程组等等。
MATLAB的功能是非常强大的,MATLAB不仅有强大的运算功能,它还有强大的绘图功能,我对它的了解也仅仅就是一点点,或许说还没有入门。比如说它含有丰富的内建函数,例如数学函数中的三角函数、复函数、多项式函数、数据分析函数的求平均值、最大最小值、排序等,以及逻辑/选择函数如if-else等,还有用来模拟随机发生事件的随机函数。这些我都不了解。
学了一个学期的Matlab软件应用,它的确好用方便,它能解决我们好多数学,物理,化学问题。同样能验证好多科学家的理论,定律。数学建模中更是一种非常实用的工具。虽学习MATLAB的时间虽然很短,但却让我了解到了它的强大和它的功能。课堂上的时间是有限的,老师也不能把所有的都讲解给我们,因为一个软件的功能需要我们自己不断的去摸索,老师也不可能知道所有。老师只是个指路的明灯,最终的学习还是要靠自己。
而且在摸索过程中,我们能够发现和体会学习的快乐。我会在以后的学习生活中继续学习,练习MATLAB,让它成为我学习和工作的好帮手。
该土地整理工程位于巴东县溪丘湾生态茶叶示范园园区内,土地整理面积400亩。工程于20xx年x月x日经批准开工,20xx年x月x日施…
心理课知识点总结声明:纯手工制作,自己总结的考试知识点,不喜勿喷。具体的题目在哪个题上可能会有偏差,但是总体知识点及考试题型分布就…
尊敬的各位领导、各位同仁,大家上午好!20xx年对我来说是难忘的一年,我有幸参加了安泽县中小学校长赴德清挂职学习,实现了多年来就有…
时间一晃而过,转眼间一周的挂职的锻已经结束,首先区团委能给我这个展示才能、实现自身价值的平台。这段时间是我人生中弥足珍贵的经历,也…
核桃寨小学20xx年爱国卫生运动活动开展情况总结根据上级文件精神要求,我们迅速召开了校级会,对爱国卫生运动工作进行了安排,现将活动…
XX大队X月份HSE工作总结X月份,XX大队根据XX厂“查找身边的十大隐患(风险)”活动及“从严管理年”活动的通知要求,督促各单位…
20xx-20xx第二学期教学工作总结20xx即将过去,我们又将迎来20xx的到来,回顾过去的一年,有收获,有进步,但更值得反思。…
摘要:小学在09学年开展的科技节活动,营造了浓厚的学科学、爱科学、用科学的氛围,让学生在活动中“学会生存”、“学会创造”,促进少年…
綦江区骑龙小学为提升我校教师的从教能力,培养综合素质,打造浓厚的校园文化氛围,构建良好的育人环境,在校支部、工会的指导下,教务处按…
少先队活动课建设自查报告根据《关于推进少先队活动课建设的通知》的精神,我校积极开展少先队活动课建设工作,进一步增强少先队活动的吸引…