- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
matlab 实验课2
解基本代数方程
在MATLAB 中,我们使用solve 命令解代数方程。
x = solve(x+3=0’)
x =
-3
第二种方法调用solve,我们可以告诉它我们需要它解哪个符号。使用下面的语法:
solve(equation, variable)
与你传递给solve 的方程一样,变量variable 也应该用单引号括起来。
solve(a*x + 5=0,a’)
MATLAB 响应输出为:
ans =
-5/x
solve 命令还可以用来求解高阶方程
s = solve(x^2 - 6*x - 12 = 0‘)
MATLAB 返回方程的两个根:
s =
3 + 21^(1/2)
3 - 21^(1/2)
本例中的两个根,它们是以s(1)和s(2)的形式保存的。所以我们可以使用其中的
一个根来定义一个新的量:
y = 3 + s(1)
y =
6+21^(1/2)
下面是我们引用solve 返回的两个根的例子:
s(1) + s(2)
ans =
6
符号方程绘图
首先我们创建表示方程的字串:
d = x^2 - 6*x - 12;
现在调用ezplot:
ezplot(d)
ezplot 已经在图象顶端显示出标题,不需要我们做任何的额外工作。
图象的 x 轴标签。
我们可以使用下面的语法指定我们所要的范围:ezplot(f, [x1 , x2])
我们要绘制-2 x 8 内的图象。我们可以使用下面的命令:
d = x^2 - 6*x - 12;
ezplot(d, [-2, 8])
例求函数x2 + x - 2 = 0 的根并绘制该图象,并确定根的数值。
首先我们创建一个字串表示该方程。注意你可以在方程中预定义MATLAB 表达式。因
此如下输入公式是完全可行的:
eq = x^2 + x - sqrt(2);
如果你喜欢,你也可以写成:
eq = x^2 + x - 2^(1/2);
下一步我们调用solve 求方程的根:
s = solve(eq)
s =
-1/2+1/2*(1+4*2^(1/2))^(1/2)
-1/2-1/2*(1+4*2^(1/2))^(1/2)
要确定根的数值,我们需要把它们从数组中提取出来,然后把它们转换成double 类型。
只需简单地把它们传递给double(.)命令即可做到。例如,我们要得到第一个根的值,写成:
x = double(s(1))
x =
0.7900
而第二个根则是:
y = double(s(2))
y =
-1.7900
要绘制函数的图象,我们调用ezplot:
ezplot(eq)
例求四次方程的根:x4 - 5x3 + 4x2 - 5x + 6 = 0,-10 x 10 范围内的图象。
首先我们创建一个表示该方程的字串:
eq1 = x^4 - 5*x^3 + 4*x^2 - 5*x + 6‘;
然后我们调用solve 求根:
s = solve(eq1);
现在我们定义一个变量用来从s 中提取根。如果你把它们用符号列出来,你会得到一大
堆。下面我们写出第一个根的一部分:
a = s(1)
a =
5/4+1/12*3^(1/2)*((43*(8900+12*549093^(1/2))^(1/3)+2*(8900+12*549093^(1/2))^(2/3)+104)...
实际操作一下你会看到这一行会很长,因此,我们使用double 得到它的数值结果:
double(s(1))
ans =
4.2588
现在的结果好多了。我们获取其它的根。由于这是一个四次方程,它有四个根:
double(s(2))
ans =
1.1164
double(s(3))
ans =
-0.1876 + 1.1076i
double(s(4))
ans =
-0.1876 - 1.1076i
solve 还可以用来方程组。要知道怎么做和输出解,最好的方法就是再举另一个简单的例子。假设你有下面的方程组:
5x + 4y = 3
x - 6y = 2
要使用solve 解出x 和y,我们要在调用它的时候传递两个参数给它——每个字串表示
一个方程。在本例中我们输入:
s = solve(5*x + 4*y = 3‘,x - 6*y = 2);
注意每个方程都放在单引号内,并使用逗号“,”把方程隔开。如下面,使用点句号“.”
我们就可以取得相应的x 和y 值。首先我们得到x:
x = s,x
x =
13/17y:
y = s,y
y =
-7/34
w + x + 4y + 3z = 5
2w + 3x + y - 2z = 1
w + 2x - 5y + 4z = 3
w - 3z = 9
我们可以以一组字串的形式输入
文档评论(0)