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


解一个函数的方法:
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: c o s ( x ) 2 − s i n ( x ) 2 = 0 cos(x)^2-sin(x)^2=0 cos(x)2sin(x)2=0 c o s ( x ) 2 + s i n ( x ) 2 = 0 cos(x)^2+sin(x)^2=0 cos(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 − 2 y = 5 x + y = 6 \begin{cases} x-2y=5 \\ x+y=6 \end{cases} { x2y=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、求解用符号表示的方程

如果给我们一个用符号表示的函数怎么办?
a x 2 − b = 0 ax^2-b=0 ax2b=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)

b b b的解怎么办?
改变solve括号中的 x x x b b b

>> syms x a b
solve
  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值