MATLAB数值计算——0
MATLAB数值计算
- MATLAB中文论坛基础板块常见问题归纳(出处: MATLAB中文论坛)
登录http:www.mathworks.com/moler 获取NCM文件,注册账户,下载Toolbox格式,点击安装——在MATLAB中输入ncmgui出现图案即为success!(pathtool添加默认路径)
开始学习:
format 表示格式 help format 可以查询format帮助
format short 把输出的格式改为默认设置
format rat 显示为分数
format long e 显示长精确度并用科学计数法
format long 并没有重计算,把显示数字的有效位5->15位
format compact/loose 紧凑/松散(默认)格式
roots(矩阵) 求多项式的根
solve()通常在不确定方程是否有符号解的时候,优先使用
pretty()使结果已于观察
vpa(phi,50) vpa是可变精度算术函数,可得到任意位数数字的表达式
inline() 内联函数
ezplot(f,0,4) 轻松作图0<=x<=4 range的图像
求解方程通常有两种方法,符号求解solve()和数值求解。
1.solve()
通常在不确定方程是否有符号解的时候,推荐先使用solve进行尝试,因为solve相比于数值求解来说,它不需要提供初值,并且一般情况下能够得到方程的所有解。对于一些简单的超越方程,solve还能够自动调用数值计算系统给出一个数值解。
solve的调用形式:
sol=solve(eq)
sol=solve(eq,var)
sol=solve(eq1,eq2,…,eqn)
sol=solve(eq1,eq2,…,eqn,var1,var2,…,varn)
eq为符号表达式,var为指定的要求解的变量。如果不声明要求解的变量(第一和第三种形式),则matlab自动按默认变量进行求解,默认变量可以由symvar (eq)确定。
eg.x+y-1=0,x-11*y-5=0,求不等式
syms x y %声明符号变量
eq1=x+y-1
eq2=x-11*y-5
sol=solve(eq1,eq2,x,y)
x=sol.x
y=sol.y
2.fzero()
然而在很多情况下solve并不能求得方程的解析解,这时就可以采用数值法求解。数值求解法包括fzero和fsolve,其区别在于fzero只适用求解一元函数零点,而fsolve适用于求解多元函数零点(包括一元函数)。当求解一元函数零点时,推荐优先使用fzero,原因是fzero求解一元方程往往更容易,因为它不仅支持提供初值的搜索,还支持在一个区间上进行搜索。
fzero的常用形式:
x = fzero(fun,x0)
[x,fval] = fzero(fun,x0)
其中fun为函数句柄,x0为搜索初值,fval为求解误差。
eg.以一元方程sin(x)+cos(x)^2=0为例:
y=@(x)sin(x)+cos(x).^2 %这里采用匿名函数,也可以使用函数文件形式
[x,fval]=fzero(y,1) %1为搜索初值
如果方程有多个零点时,fzero只能根据你提供的初值求得最靠近初值的一个零点,如果希望求得多个零点的话,那么只能够通过改变初值来得到不同的零点。
对于零点的选取,目前来说没有什么比较好的办法,只能够通过分析方程的性质,或者通过作图的方法去寻找一个比较靠近零点的初值。另外,fzero能够提供区间搜索,注意区间两端的端点函数值符号需要反向:
y=@(x)sin(x)+cos(x).^2
[x,fval]=fzero(y,[-1 1]) %fzero在[-1,1]这个区间搜索初值
除此之外,fzero还能够求解积分方程
3.fsolve()
fsolve可以求解多元方程,用法和fzero类似。
fsolve的常用形式:
x = fsolve(fun,x0)
[x,fval] = fsolve(fun,x0)
其中fun为函数句柄,x0为搜索初值,fval为求解误差
例:求解方程组x+y=1, x-11y=5
eq=@(x)[x(1)+x(2)-1;x(1)-11*x(2)-5]
[sol,fval]=fsolve(eq,[1,1])
这里对于方程的的输入需要采用矩阵的形式,其中x(1)代表x,x(2)代表y。有时候变量较多时可能会容易混淆,这里提供另一种方法,采用符号变量形式再利用matlabFunction转化为函数句柄:
syms x y
eq1=x+y-1
eq2=x-11*y-5
eq1=matlabFunction(eq1); %将符号函数转化为函数句柄
eq2=matlabFunction(eq2);
eq=@(x)[eq1(x(1),x(2));eq2(x(1),x(2))]
[sol,fval]=fsolve(eq,[1,1])
效果与之前相同,但不容易出错。求得的解以矩阵形式返回给sol,即sol的第一个值是匿名函数的第一个输入参数值x,sol的第二个值是匿名函数的第二个输入参数值y。
MATLAB数值计算——0的更多相关文章
- Matlab数值计算最简单的一个例子——指数衰减
放射性衰变是指数衰减的典型例子.另外还有化学反应某反应物的减少,RC电路电流的减小,大气压随海拔高度的减小等. 指数衰减的方程: \begin{equation} \frac{dN(t)}{dt}=- ...
- Matlab——数值计算——单个代数方程 代数方程组
方程求解 求解单个代数方程 MATLAB具有求解符号表达式的工具,如果表达式不是一个方程式(不含等 号),则在求解之前函数solve将表达式置成等于0. >> syms a syms b ...
- Matlab数值计算示例: 牛顿插值法、LU分解法、拉格朗日插值法、牛顿插值法
本文源于一次课题作业,部分自己写的,部分借用了网上的demo 牛顿迭代法(1) x=1:0.01:2; y=x.^3-x.^2+sin(x)-1; plot(x,y,'linewidth',2);gr ...
- [转载] Win7下MATLAB 7.0下载地址和详细安装
移步http://blog.csdn.net/feecooling/article/details/7525140 MATLAB中文手册命令汇总http://wenku.baidu.com/view/ ...
- Matlab 数值计算
本博客记录一些简单的计算 det(A):矩阵求行列式 A=[1,2;3,4]; det(A) ans=-2; inv(A):矩阵求逆 A=[1,2;3,4]; B=inv(A) B=[-2,1;1,5 ...
- 数字图像处理实验(8):PROJECT 04-04,Highpass Filtering Using a Lowpass Image 标签: 图像处理MATLAB 2017-05-25 0
实验要求: 高通滤波器可以通过1减去低通滤波器的传递函数得到. 使用公式 计算可以的得到 . 实验代码: % PROJECT 04-04 Highpass Filtering Using a Lowp ...
- [软件推荐、资料分享]MATLAB
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分. Matlab ...
- MATLAB介绍
MATLAB MATLAB[1] 是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink ...
- 杂项-数学软件:MATLAB
ylbtech-杂项-数学软件:MATLAB MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATL ...
随机推荐
- 洛谷P3121 【[USACO15FEB]审查(黄金)Censoring (Gold)】
双栈+AC自动机 这题其实跟一道KMP算法的题有一些渊源,它就是这道题的简单板. Clear: 给你两个串A,B,每次在B串中从左到右找串A,并将该子串删除,直到找不到为止,问你能删几次. 样例输入: ...
- js中几种继承实现
继承实现的几种方式 1.借助call实现继承 function p1() { this.name = 'p1' this.say = function () { console.log(this.na ...
- 使用Typescript重构axios(二十一)——请求取消功能:添加axios.isCancel接口
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...
- 你了解MySQL的加锁规则吗?
注:加锁规则指的是next-key lock,如果还不了解next-key lock,请阅读上一篇博客 加锁规则可以概括为:两个原则.两个优化和一个bug: 原则1:加锁的基本单位是next-key ...
- 201871010114-李岩松《面向对象程序设计(java)》第二周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
- 【Spring】Spring的定时任务注解@Scheduled原来如此简单
1 简介 定时任务的实现非常多,JDK的Timer.Spring提供的轻量级的Scheduled Task.QuartZ和Linux Cron等,还有一些分布式的任务调度框架.本文主要介绍Schedu ...
- nyoj 214-单调递增子序列(二) (演算法,PS:普通的动态规划要超时)
214-单调递增子序列(二) 内存限制:64MB 时间限制:1000ms Special Judge: No accepted:11 submit:35 题目描述: 给定一整型数列{a1,a2..., ...
- 阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建
本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...
- drf序列化组件之视图家族
一.视图家族的分类 1.导入分类 from rest_framewok import views, generics, mixins, viewsets views:视图类 两大视图类:APIVi ...
- python进程概要
进程 狭义:正在运行的程序实例. 广义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,他是操作系统动态执行的基本单元. python的进程都是并行的. 并行:两个进程同时执行一起走. ...