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(),在结果中显示返回值yy = 4*x.^3+3*sin(x)+2;        %输入y的表达式,注意要用.^,因为需要输入多个xend                           %结束语句

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

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 =0pi/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.xans =17/3>> A.yans =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]

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

总结

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


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux lnmp yum版安装

LAMP(linux、apache、mysql、php),是四个套件的合成,简单讲就是要把php运行在linux上,需要依赖apache和mysql数据库。 1 准备好一个linux系统(centos7)   确保selinux、firewall已经关闭   …

面向对象的四大特征

面向对象的四大特征 面向对象的程序设计方法要求语言必须具备抽象、封装、继承和多态性这几个关键要素。 面向对象程序设计,是通过为数据和代码建立分块的内存区域,以便提供对程序进行模块化的一种程序设计方法。对象是计算机内存中的一块区域&#xff0…

python装饰器调用顺序_聊一聊Python装饰器的代码执行顺序

为什么写这篇文章?起因是QQ群里边有人提了一个问题:之前导入模块只需要1~2秒,为什么现在变成需要2~3分钟?我的第一感觉是:是不是导入的模块顶层代码里边,做了什么耗时的事情。隔了一天,他的问题…

centos7 安装cacti

1 cacti运行环境准备   cacti需要phpapachemysqlsnmpRRDTool,以及cacti本身。cacti本体是用php开发的网站,通过snmp对远端设备信息进行采集。apachemysqlphp在以前已经做过了      这里只对剩余的部分进行安装。 2 安装snmp    yum install -y n…

python第三方库-基础

1.python社区 python有一个全球社区,提供了超过十三万个涵盖各种领域应用的第三方库,该社区可通过 http://pypi.org/ 来访问。PyPI(Python Package Index)是python包的索引,学会检索并利用PyPI,找到合适的第…

python折线图matplotlib库_Python如何使用内置库matplotlib绘制折线图

这篇文章主要介绍了Python如何使用内置库matplotlib绘制折线图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下环境准备:需要安装matplotlib,安装方式:pip install matplotlib…

linux下zabbix安装

1本人用的是apachemysqlphp 2下载zabbix软件包,官网下载 https://sourceforge.net/projects/zabbix/files/ZABBIX Latest Stable/2.2.23/zabbix-2.2.23.tar.gz/download 上传到 var/www/html下 3cd /var/www/html #进入软件包下载目录 tar zxvf zabbix-2.2.23.tar.g…

java cas机制_Java CAS机制详解

CAS目的:在多线程中为了保持数据的准确性,避免多个线程同时操作某个变量,很多情况下利用关键字synchronized实现同步锁,使用synchronized关键字修可以使操作的线程排队等待运行,可以说是一种悲观策略,认为线…

「一本通 4.1 练习 2」简单题

题目描述 题目来源:CQOI 2006 有一个 n 个元素的数组,每个元素初始均为 0。有 m 条指令,要么让其中一段连续序列数字反转——0 变 1,1变 0(操作 1),要么询问某个元素的值(操作 2&…

定时器取数据时实时进来的数据_Redis-数据淘汰策略amp;持久化方式(RDB/AOF)amp;Redis与Memcached区别...

Redis与Memcached区别: 两者都是非关系型数据库。主要有以下不同: 数据类型: Memcached仅支持字符串类型。 redis支持:String,List,set,zset,hash 可以灵活的解决问题。 数据持久化: Memcached不支持持久化。 Redis采…

linux 下建立多个tomcat

第一步:复制,解压 将准备好的tomcat压缩包复制到你准备安装的目录,我的tomcat压缩包名字是tomcat.tar.gz,我的安 装目录是 /usr/java/tomcat 第二步:解压tomcat [rootaliServer tomcat]# tar -xvf tomcat.tar.gz 第三步&#xff…

java apply 函数_Js(Javascript)中的apply方法的使用

Function.apply(obj,args)方法能接收两个参数,简单说apply方法作用就是给类或方法中的this赋值。所以学会这个方法首先要知道this的作用。(this的用法可以看一下这个链接:http://www.cjavapy.com/article/8/ )obj:这个对象将代替Function类里…

linux iptables配置

1 iptables默认系统自带 setup 2重启防火墙 /etc/init.d/iptables restart 3接受端口 Vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 4 #配置,禁止进,允许出,允许回环网卡 iptables -P I…

memcpy函数_[PART][BUG][MSVCRT][C][CCF NOI1097] 关于memcpy的坑

[Incompleted]CCF NOI1097 试题,本人的源码:Ubuntu Pastebin​paste.ubuntu.comUbuntu PastebinUbuntu Pastebin: SourceCodebyJulianDroid​paste.ubuntu.com满分代码:https://blog.csdn.net/tigerisland45/article/details/71038551​blog.…

Bugku杂项-convert

一进去就发现一堆二进制数,然后考虑怎么才能把这个和隐写扯上关系。首先,二进制我们肉眼就是看不懂再说什么的,这里就想到了转换,再联想上hex将原始数据转化为16进制。我们可以先把2进制转化为16进制,然后再放到hex上看…

tomcat:Cannot find /usr/local/tomcat1/bin/setclasspath.sh

首先看下报错代码: Cannot find /usr/local/tomcat1/bin/setclasspath.sh This file is needed to run this program这个可能是没有在 /etc/profile 中配置环境,这是第一种可能;如果是这种情况的话,可以这样做:vi /etc/profile 并…

在java中柱状图代码_我在java中编写了个柱状图,可运行了,我想让柱状图在JSP页面中显示,请问有什么方法么?谢谢。...

h1,h2 代表了柱形图的高度你可以这样试一试function createImgItem(count){var divdocument.createElement("");var imgdocument.createElement("");img.src"getCertReviewInfoImg.jspx?perCertId${perCertId}&reviewIndex"count;div.appen…

图解cacti简单使用

1登录 admin admin 2点击devices localhost 3进入配置保存 4保存 http服务要启动哦 5一步步做 6graph tree 7执行/usr/bin/php /var/www/html/cacti/poller.php 8如果时间设置错误去php.ini里面修改时间 YSTEM STATS: Time:0.4759 Method:cmd.php Processes:1 Threads:N/…

AFNetworking 3.0源码阅读 - AFURLResponseSerialization

这次来说一下AFURLResponseSerialization这个HTTP响应类。 定义了一个协议,该协议返回序列化后的结果。后续的AFHTTPResponseSerializer以及他的子类都遵循了该协议 该类内有很多子类定义,这里借用一张图来展示,之后一个一个来说。 我们先来看…

python3纵向输出字符串_Python 3.x 格式化输出字符串 % format 笔记

python格式化字符串有%和{}两种 字符串格式控制符.字符串输入数据格式类型(%格式操作符号)%%百分号标记%c字符及其ASCII码%s字符串%d有符号整数(十进制)%u无符号整数(十进制)%o无符号整数(八进制)%x无符号整数(十六进制)%X无符号整数(十六进制大写字符)%e浮点数字(科学计数法)%…