数学建模matlab学习.doc

上传人:公**** 文档编号:550844588 上传时间:2024-01-07 格式:DOC 页数:37 大小:858.50KB
返回 下载 相关 举报
数学建模matlab学习.doc_第1页
第1页 / 共37页
数学建模matlab学习.doc_第2页
第2页 / 共37页
数学建模matlab学习.doc_第3页
第3页 / 共37页
数学建模matlab学习.doc_第4页
第4页 / 共37页
数学建模matlab学习.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《数学建模matlab学习.doc》由会员分享,可在线阅读,更多相关《数学建模matlab学习.doc(37页珍藏版)》请在金锄头文库上搜索。

1、第六章 复数数据、字符数据和附加画图类型36.1 复数数据36.1.1 复变量(complex variables)46.1.2 带有关系运算符的复数的应用46.1.3 复函数(complex function)51. 类型转换函数52. 绝对值和幅角函数53. 数学函数5例6.166.1.4 复数数据的作图76.2 字符串函数(string functions)116.2.1 字符转换函数116.2.2 创建二维字符数组126.2.3 字符串的连接126.2.4 字符串的比较136.2.5 在一个字符串中查找/替换字符146.2.6 大小写转换156.2.7 字符串转换为数字166.2.8

2、数字转化为字符串16例6.2186.3 多维数组216.4 关于二维作图的补充说明236.4.1 二维作图的附加类型236.4.2 作图函数276.4.3 柱状图286.5 三维作图286.5.1 三维曲线作图296.5.2三维表面,网格,等高线图象306.6 总结336.6.1 好的编程习惯总结336.6.2 MATLAB函数与命令总结336.7 练习346.1346.2356.3356.4356.5356.6356.7356.8356.9366.10366.11366.12366.13366.14366.15366.16366.17376.18376.19376.2037第六章 复数数据、

3、字符数据和附加画图类型在第二章中,我们学习了MATLAB基础数据类型:double和char。MATLAB还有许多的附加数据类型,在本章,我们将会了解它们中的一个。我们要讨论的附加数据类型是MATLAB支持的复数数据。我们也将学习如何使用char数据类型,以及如何把MATLAB数组扩展为多维数组。本章还会涉及到MATLAB的附加画图类型。6.1 复数数据复数是指既包含实部又包含虚部的数。复数出现在许多的科研工作问题上。例如,在电器工程中,我们可以用复数代表交变电压,交变电流和阻抗。描述电器系统行为的公式经常用到复数。因为这是非常常见的,作为一个程师如果没有很好理解和运用复数,它无法工作。复数的

4、一般形式如下:C=a+bi其中C为复数,a和b均为实数,i代表。a,b分别为C的实部和虚部。由于复数有两个部分,所以它能在平面内标出。这个平面的横轴是实轴,纵轴是虚轴,所以复数在这个平面内为一个点,横轴为a,纵轴为b。用上面的方式表示一个复数,叫做直角坐标表示,为坐标的横轴与虚轴分别代表复数的实部与虚部。复数有在一平面内另一种表达方式,既极坐标表示,公式如下,c = a + bi = z其中z代表向量的模,代表辐角。直角坐标中的a,b和极坐标z,之间的关系为a = z cos(6.2)b = z sin(6.3)z = (6.4)(6.5)aba+bi实轴虚轴Paa+bi实轴虚轴Pz图6.1

5、直角坐标系中复数图6.2 极坐标系中复数MATLAB用直角坐标表达复数。每一个复数应有一对实数(a,b)组成。第一个数(a)代表复数的实部,第二个数(b)代表复数的虚部。如果复数c1=a1+b1i和复数c2=a2+b2i,那么它们的加减乘除运算定义如下。c1 + c2 = (a1 + a2) + (b1 + b2)i(6.6)c1 - c2 = (a1 - a2) + (b1 - b2)i(6.7)c1 c2 = (a1a2 - b1b2) + (a1b2 + b1a2)i(6.8)(6.9)当两个复数进行二元运算,MATLAB将会用上面的法则进行加法,减法,乘法和除法运算。6.1.1 复变量

6、(complex variables)当复数值赋值于一个变量名,MATLAB将自动创建一个复变量。创建复数的最简单方法是用MATLAB本自带的因有变量i或j,它们都被预定义为。例如下面的语句将复数4+3i赋值于c1。 c1 = 4 + 3*ic1 = 4.0000 + 3.0000i函数isreal可以判断一个数组包是实数组还是复数组。如果一个数组中的所有元素只有虚部,那么这个数组是复数组,并且isreal(array)将会返回一个0。6.1.2 带有关系运算符的复数的应用用关系运算符=来判断两复数是否相等,或用关系运算符=判断两复数是否不相等,这种情况是可能的。这些运算都会产生出我们所期望的

7、结果。例如,如果c1=4+3i和c2=4-3i,那么关系运算c1=c2将会产生0,关系运算c1=c2将会产生1。但是,比较运算符,=将不会产生我们所期望的结果。当复数进行此类关系运算时,只对复数的实部进行比较。例如,如果c1=4+i3和c2=4+i8,那么比较运算c1c2将会产生1,尽管c1的模要比c2的模小。如果我们需要用这些运算对两复数进行比较,我们更加关心的是两复数的模,而不只是实部。复数的模可以由abs固有函数计算得到(在下一节介绍,或者由公式(6.4)得到)。(6.4)如果我们对两复数进行比较,得到的结果将更加合理。abs(c1)abs(c2)将会产生0,因为c1的模大于c2的模。常

8、见编程错误当我们应用关系运算符对复数运算时,一定要小心。关系运算符,=只比较复数的实部,而不是它们的模。如果你要用这些关系运算符对一复数进行运算,比较两复数的模将更加常见。6.1.3 复函数(complex function)MATLAB中有许多的函数支持复数的运算。这些函数可分为三大类。1. 类型转换函数这些函数把数据从复数据类型转换为实数数据类型(double)。函数real将复数的实部转化为double型数据,把复数的虚部抛弃。函数imag把函数的虚部转化为相应的实数。函数描述conj(c)计算c的共共轭复数。如果c=a+bi,那么conj(c)=abi。real(c)返回复数c的实部i

9、mag(c)返回复数c的虚部isreal(c)如果数组c中没有一个元素有虚部,函数isreal(c)将返回1。所以如果一个数组c是复数组成,那么isreal(c)将返回1。abs(c)返回复数c模angle(c)返回复数c的幅角,等价于atan2(imag(c),real(c)表6.1 常见的支持复数运算的MATLAB函数2. 绝对值和幅角函数这些函数把复数转化它的极坐标形式。函数abs(c)用于计算复数c相应的绝对值,公式如下其中c=a+bi。函数angle(c)用下面的公式计算复数c的幅角angle(c)=atan2(imag(c), real(c)由它产生的角的取值范围为-。3. 数学函

10、数许多的数函数都可以对复数进行运算。这些函数包括指数函数,对数函数,三角函数,还有平方根函数。函数sin,cos,log,sqrt等既能对复数数据进行运算,又能对实数据进行运算。一些支持复数运算的函数在表6.1中列出。例6.1二次方程的求解(重写)复数的价值体现在它能使运算简化。例如,我们在例3.2中已解决的二次方程的求解问题,但它根据判别式用到3个选项的选择结构,由于复数的出现,负数的平方根的处理将不困难。所以能够大大简化我们的计算。编写一个普通的程序,解一元二次方程的根,不管是什么类型的。用复变量,而不用选择结构。1. 陈述问题编写一个程序,解一元二次方程的根,不管有两个不同的实根,还是用

11、两个相同的实根或两个不同复根。不需要检测判别式。2. 定义输入输出本程序所需要方程式ax2 + bx + c = 0(3.1)的三个系数a,b,c。输出是这个方程式的所有根。3. 设计算法这个程序从整体上可以分为三大步,即输入,计算,输出Read the input dataCalculate the rootsWrite out the roots我们现在把每一步进行逐步细化。这时判别式的值对程序的执行过程不产生影响。伪代码如下:Prompt the user for the coefficients a, b, and c.Read a, b, and cdiscriminant b2 -

12、 4 * a * cx1 ( -b + sqrt(discriminant) ) / (2*a)x2 ( -b - sqrt(discriminant) ) / (2*a)Print x1 = , real(x1), + i , imag(x1)Print x2 = , real(x2), + i , imag(x2)4. 将算法转化为MATLAB语句% Script file: calc_roots2.m% Purpose:% This program solves for the roots of a quadratic equation% of the form a*x*2 + b*x

13、+ c = 0. It calculates the answers% regardless of the type of roots that the equation possesses.% Record of revisions:% Date Programmer Description of change% = = =% 12/06/98 S. J. Chapman Original code% Define variables:% a - Coefficient of x2 term of equation% b - Coefficient of x term of equation

14、% c - Constant term of equation% discriminant - Discriminant of the equation% x1 - First solution of equation% x2 - Second solution of equation% Prompt the user for the coefficients of the equationdisp (This program solves for the roots of a quadratic );disp (equation of the form A*X2 + B*X + C = 0. );a = input (Enter the coefficient A: );b = input (Enter the coefficient B: );c = input (Enter the coefficient C: );% Calculate discriminantdiscriminant = b2 - 4 * a * c;% Solve for the rootsx1 =

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

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