我是靠谱客的博主 要减肥香氛,最近开发中收集的这篇文章主要介绍matlab二元一次方程求解_2-函数的求解计算,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、本期介绍函数的求解有两种

(1)已知x求y

(2)已知y求x

1.1已知x求y

回想我们上一期,讲了多项式求解的方法,也是已知x求y。想一下,多项式不也是函数的一种吗,所以本期求解的方法同样适用于多项式,只不过比多项式稍微麻烦了一点点点。同学在学完本期内容之后可以对比下上一期。

例1、求下列函数x=1,2,3,4,5对应y的值

对函数求解有两种方式:

1.1.1创建函数文件

这种方法的原理是:

(1)构造一个函数文件,表示我们定义了一个函数(比如fun(x)),以后我们就可以随便使用这个函数了(为什么不直接在matlab命令行构建?是因为每解一个x我们就要输入一次y的表达式,不太方便。)。

(2)然后我们在命令行输入x的值(可以是单个数,也可以是多个值),再调用该函数,就可以得到y的值了

下面具体求解过程:

首先创建一个函数文件,操作如下:

d96a40b7916032a978f11acfdf16a712.png

在该函数文件中输入如下:

function  y = fun(x)          %定义该函数的名称为fun(),在结果中显示返回值y

y = 4*x.^3+3*sin(x)+2;        %输入y的表达式,注意要用.^,因为需要输入多个x


end                           %结束语句

点击上面菜单栏的保存即可,然后可以看到左侧出现该函数文件名称。这时候我们可以直接调用

2ff0e1efd5b03e24875a06c0ee81f262.png

我们关闭函数文件界面,返回命令行窗口,输入:

x = [1,2,3,4,5];
fun(x)

结果如下:

ans =

    8.5244   36.7279  110.4234  255.7296  499.1232

1.1.2直接在命令行创建函数的方法(函数句柄)

这种方法和创建函数文件的方法其实是一样的,因为直接在命令行调用,所以比较方便。但是当编写较为复杂的函数文件时,再用这种方法就不够直观,而且容易出错。所以这种方法适用于简单、临时的函数。

具体操作如下:

fun = @(x) 4*x.^3+3*sin(x)+2;
x = [1,2,3,4,5];
y = fun(x)

结果如下:

y =

    8.5244   36.7279  110.4234  255.7296  499.1232

可以看到,与构建函数文件得到的结果是一样的。

1.2已知y求x

要用到的函数:solve() ,用法如下

solve(y, x):求解y=0时,自变量x的值。

既然我们要求解根,那么我们首先需要让x占一个空间,然后求解。

这里我们需要用到syms或sym(' ')来定义符号。操作如下:

syms x           %将字符'x'定义为一个未知量 
sym('x')         %将字符'x'定义为一个未知量,输入麻烦,不常用

好的,我们来实际应用一下

1.2.1 求解一元方程

例2、求解

syms x                     %定义自变量x,这里不定义y是因为在后面的求解过程中认为其是0,没有占用空间,定不定义都一样
y = x*sin(x)-x;            %定义y,
solve(y,x)                 %求解y=0时,自变量x的值.也可以写成solve('x*sin(x)-x',x)

结果如下:

ans =
 
    0
 pi/2

1.2.2 求解多元方程

solve(eq1, eq2, ..., x, y, ...)前面写方程,后面写未知数

例3、 求解二元一次方程

这里是两个未知数了,那么我们需要定义两个未知数,将等式右边的值移到等式左边

syms x y                    %空格隔开
eq1 = x-2*y-5;
eq2 = x+y-6;
A = solve(eq1,eq2,x,y)      %前面写等式,后面写未知数。这里等式的顺序和未知数不影响结果。
                            %这里需要注意将solve结果赋值给A.因为solve函数只负责计算,并没有改变x,y是符号的性质
                            %matlab这样做的原因是为了区别谁是x谁是y

结果如下:

A = 

  包含以下字段的 struct:

    y: [1×1 sym]
    x: [1×1 sym]

那么我们如何去看x,y的值呢?请看下面

>> A.x
 
ans =
 
17/3
 
>> A.y
 
ans =
 
1/3

好的,通过上面两道题的练习,我们应该知道含有多个未知数的解法了,而且也不限于多项式方程,更复杂的方程也可以求解。

二、函数的符号运算

求解未知数以字符表示的方程

与前面内容不同的是:变量是某些符号的表示,而不是具体的数值

例4、求方程的根

syms x a b 
solve(a*x^2-b,x)   %后面如果将自变量定义的是b,那么求解的就是b用x,a表示。如果没有定义,默认是x

结果如下:

ans =
 
  b^(1/2)/a^(1/2)
 -b^(1/2)/a^(1/2)

例5、当x=1,2,3,4,5时,将y用a,b表示

首先创建函数文件

function y = fun(x)
syms a b
y = a*x.^2-b;
end

在命令行输入x,求y

x = [1,2,3,4,5];
fun(x)

结果如下:

ans =
 
[ a - b, 4*a - b, 9*a - b, 16*a - b, 25*a - b]

好的,通过这两道题的练习我们应该对定义符号变量有了充分的认识了。那么我们以后求解带有符号的方程都可以用这种方式。

总结

本节我们学习了函数的求解,包括构建函数及函数句柄@,并且还学习了含有符号变量的函数的运算。希望各位好好熟悉一下本节,非常重要,是以后复杂运算的基础。


操千曲而后晓声,观千剑而后识器

最后

以上就是要减肥香氛为你收集整理的matlab二元一次方程求解_2-函数的求解计算的全部内容,希望文章能够帮你解决matlab二元一次方程求解_2-函数的求解计算所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(87)

评论列表共有 0 条评论

立即
投稿
返回
顶部