MATLAB教程_11方程式求根_台大郭彦甫课程笔记

  • 一、符号寻根法(解析法)
    • 1、使用sym()或syms()创建符号变量
    • 2、符号根查找:solve()
    • 3、解多重方程
    • 4、求解用符号表示的方程
    • 5、符号微分:diff()
    • 6、符号积分:int()
    • 7、符号与数字
  • 二、数值方法
    • 1、Review of [Function Handles](https://blog.csdn.net/weixin_45433350/article/details/113394742) (@)
    • 2、fsolve()
    • 3、fzero()
    • 4、可以给函数fsolve()和fzero()附加选项
    • 6、数值寻根方法

解一个函数的方法:
1. 解析解
2. 图解
3. 数值解

一、符号寻根法(解析法)

对符号而不是数字进行数学运算
使用“符号变量”执行符号数学

1、使用sym()或syms()创建符号变量

syms()

>> syms x        %简单,建议使用
>> x + x + x
ans =
3*x
>> (x + x + x)/4
ans =
(3*x)/4>> y = x^2-2*x-8
y =
x^2 - 2*x - 8

sym()

>> x=sym('x');
>> x + x + x
ans =
3*x
>> (x + x + x)/4
ans =
(3*x)/4

2、符号根查找:solve()

函数“solve”找到方程的根
1)基本解法

>> syms x
>> y = x*sin(x)-x
y =
x*sin(x) - x
>> solve(y,x)  %解的是令y=0时函数的根
ans =0
pi/2

2)简化解法

>> syms x
solve(x*sin(x)-x, x)
ans =0
pi/2
  • 练习1:cos(x)2−sin(x)2=0cos(x)^2-sin(x)^2=0cos(x)2−sin(x)2=0和cos(x)2+sin(x)2=0cos(x)^2+sin(x)^2=0cos(x)2+sin(x)2=0【解得的答案不完整】
>> syms x
>> y = cos(x)^2-sin(x)^2;
>> solve(y,x)
ans =
pi/4
%在[0,2π]应该有两个解
>> clear;
f=@(x) cos(x)^2-sin(x)^2
fzero(f,0)
f =包含以下值的 function_handle:@(x)cos(x)^2-sin(x)^2
ans =-0.7854
%用数值方法求解也只有一种解>> syms x
y = cos(x)^2+sin(x)^2;
solve(y,x)
ans =
Empty sym: 0-by-1
%应该有虚数解

3、解多重方程

举例——二元一次方程式{x−2y=5x+y=6\begin{cases} x-2y=5 \\ x+y=6 \end{cases}{x−2y=5x+y=6​

>> syms x y
eq1 = x - 2*y - 5;
eq2 = x + y - 6;
A = solve(eq1,eq2,x,y)
A =包含以下字段的 struct:x: [1×1 sym]y: [1×1 sym]
>> A.x    %查看x,y的值时,用的是“ . ”
ans =
17/3
>> A.y
ans =
1/3

4、求解用符号表示的方程

如果给我们一个用符号表示的函数怎么办?
ax2−b=0ax^2-b=0ax2−b=0

>> syms x a b
solve('a*x^2-b')
检查对函数 'solve' 的调用中是否缺失参数或参数数据类型不正确。
>> solve(a*x^2-b)
ans =
b^(1/2)/a^(1/2)
-b^(1/2)/a^(1/2)

求bbb的解怎么办?
改变solve括号中的xxx为bbb

>> syms x a b
solve(a*x^2-b,b)
ans =
a*x^2
  • 练习2:用符号方法求解这个方程(x−a)2+(y−b)2=r2(x-a)^2+(y-b)^2=r^2(x−a)2+(y−b)2=r2
>> syms x y a b r
eq = (x-a).^2 + (y-b).^2 - r.^2;
solve(eq,x)
ans =
a + (b + r - y)^(1/2)*(r - b + y)^(1/2)
a - (b + r - y)^(1/2)*(r - b + y)^(1/2)
  • 练习3:用符号方法求矩阵逆inv(A)
>> syms a b c d
A = [a b; c d];
inv(A)
ans =
[ d/(a*d - b*c), -b/(a*d - b*c)]
[-c/(a*d - b*c),  a/(a*d - b*c)]

5、符号微分:diff()

计算符号函数的导数:y=4x5y=4x^5y=4x5

>> syms x
y  = 4*x^5;
yprime = diff(y)
yprime =
20*x^4
  • 练习4:计算微分法
    f(x)=ex2x3−x+3,dfdx=?f(x)=\frac{e^{x^2}}{x^3-x+3}, \; \frac{df}{dx}=?f(x)=x3−x+3ex2​,dxdf​=?
    g(x)=x2+xy−1y3+x+3,dfdx=?g(x)=\frac{x^2+xy-1}{y^3+x+3}, \; \frac{df}{dx}=?g(x)=y3+x+3x2+xy−1​,dxdf​=?
syms x y
f(x) = exp(x^2)/(x^3 - x + 3);
g(x) = (x^2 + x*y - 1)/(y^3 + x + 3);
>> fprime = diff(f(x))
fprime =
(2*x*exp(x^2))/(x^3 - x + 3) - (exp(x^2)*(3*x^2 - 1))/(x^3 - x + 3)^2
>> gprime = diff(g(x))
gprime =
(2*x + y)/(y^3 + x + 3) - (x^2 + y*x - 1)/(y^3 + x + 3)^2

6、符号积分:int()

计算符号函数的积分:

提示:使用subs()

>> syms x;
y = x^2*exp(x);
z = int(y)
z =
exp(x)*(x^2 - 2*x + 2)
>> z = z-subs(z, x, 0)
z =
exp(x)*(x^2 - 2*x + 2) - 2
  • 练习5:
>> syms x;
y = (x^2 - x +1)/(x + 3);
int(y,[0,10])
ans =
log(302875106592253/1594323) + 10

7、符号与数字

优势 劣势
Symbolic 解析解 有时候解决不了
让你凭直觉了解解的形式 可能太复杂了
Numeric 总能找到解决办法 很难得出更深的理解
可以使解决方案精确
易于编码

二、数值方法

用MATLAB中的一些内建的数值运算、函式来解方程式的根

1、Review of Function Handles (@)

•handle是指向函数的指针
•可用于将函数传递给其他函数

2、fsolve()

•数值根解算器
•例如,求解此方程:

MATLAB教程_11方程式求根_台大郭彦甫课程笔记相关推荐

  1. 台大李宏毅课程笔记3——New Optimization for Deep Learning深度学习新优化

    台大李宏毅课程笔记3 SGD with Momentum(SGDM) RMSProp Adam SWATS AdaXXX Adam分析 AMSGrad AdaBound SGDM分析 Cyclical ...

  2. 廖雪峰讲python高阶函数求导_廖雪峰python课程笔记

    1. 可以通过 print(os.sys.path) 来查看python可导入的包的路径情况,这会打印出一个list.当我们import某一个包时,python会根据这个list,从前向后搜寻相匹配的 ...

  3. MATLAB 方程式求根

    文章目录 前言 一.Problem Statement 二.Symbolic Root Finding Approach 符号求根法 三.Symbolic Root Finding: solve() ...

  4. matlab求两向量夹角_MATLAB教程-台大郭彦甫-第十节,含练习答案

    10-数值微积分 一.Polynomial differentiation and integration(多项式微分与积分) (一)Differentiation(微分) 1.The derivat ...

  5. 【台大郭彦甫】Matlab入门教程超详细学习笔记七:数值微积分(附PPT链接)

    数值微积分 前言 一.多项式微积分 1. 多项式计算 2. 多项式微分 3. 多项式积分 二.数值微积分 1. 数值微分法 2. 高阶微分法 3. 数值积分法 三.回顾Function Handles ...

  6. 【台大郭彦甫】Matlab入门教程超详细学习笔记二:基本操作与矩阵运算(附PPT链接)

    Matlab入门教程超详细学习笔记二:基本操作与矩阵运算 前言 一.基本操作 1.把matlab当作计算器使用 2.变量 3.控制格式输出 二.矩阵运算 1.矩阵 2.矩阵索引 3.使用:创建向量 4 ...

  7. 【台大郭彦甫】Matlab入门教程超详细学习笔记五:初阶绘图(附PPT链接)

    初阶绘图 前言 一.基础绘图 1.plot() 绘制二维线图 2.legend()添加图例 3.title()和*label()添加标题与坐标轴 4.text()和annotation()增加注解 二 ...

  8. 【台大郭彦甫】Matlab入门教程超详细学习笔记六:高阶绘图(附PPT链接)

    高阶绘图 前言 一.进阶二维绘图 1. 对数图 2.一图双y轴 3. 直方图 4. 条形图 5. 饼状图 6. 极坐标图 7. 阶梯图与取样图 8. 箱线图以及误差线图 9. 填充图 二.配色 1.R ...

  9. 【台大郭彦甫】Matlab入门教程超详细学习笔记四:数据类型与文件读写(附PPT链接)

    变量类型与文件读写 前言 一.变量类型 1.numeric(数值类型) 2.char(字符类型) 3.string(字符串类型) 4.structure(结构体) 5.cell(元胞数组) 5.高维数 ...

最新文章

  1. 华为云classroom应用_华为任正非:将来所有应用都会长在云土地上,但现在还不是...
  2. 2021年,Azure云遇到. NET5,注定开启高光时刻,微软的心,真大!
  3. python语言程序设计赵璐课后答案_Python语言程序设计
  4. java集合对字符串或对象去重
  5. java ttf_使用iText从* .ttf文件创建字体
  6. 用C#制作PDF文件全攻略 (专至csdn)
  7. Android设备新型恶意软件,融合银行木马、键盘记录器和移动勒索软件等功能
  8. 捷信达酒店管理系统密码修改SQL语句
  9. python周报第十九周
  10. Android Q共享音频输入
  11. [4G5G专题-45]:物理层-基带子载波数字调制解调(星座图, 相位调制PSK, 正交幅度相位调制QAM)
  12. mmap之内存映射文件与常规文件操作比较
  13. 诗词收集——用于人文素养扫盲
  14. Windows 10 键盘快捷方式速查表
  15. java泊松分布随机数,C语言生成泊松分布随机数
  16. grub4dos引导启动linux,grub4dos中怎么样调用syslinux引导
  17. 【JAVA】RequestResponse
  18. 笑话--老外与山东妞(爆笑)
  19. G3D 渲染引擎简介
  20. Python:Turtle图形绘制

热门文章

  1. 前端:transition结合transform实现变形的平滑过渡效果
  2. 如何用示波器准确地测量电源纹波?
  3. 网上招标系统的分析与实现
  4. CSR8670 学习记录
  5. php执行dmidecode,Linux dmidecode 命令
  6. 点播影院——影院微信运营新模式
  7. 超声波测距HY-SRF05模块的学习总结
  8. excel秒数据转换成年月日时分秒格式
  9. 快拖v3.4.4.646无广告官方绿色版
  10. 10款屏幕取色器介绍