matlab之方程式求根

本文介绍了在MATLAB中求解方程的方法,包括使用`solve()`函数进行解析解,解决二元一次方程,利用`syms`处理微分和积分问题,以及`fsolve`、`fzero`和`roots`函数在数值求解中的应用。特别是`fsolve`的选项设置如`MaxIter`和`TolFun`对提高解的精度的影响,并讨论了递归函数在求解过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

【参见视频:https://www.bilibili.com/video/av14503445/?p=11

解析解

(Symbolic Root Finding Approach)

把x定义成一个符号。

用sym或者 syms创建一个symbolic variable:

>> syms x
>>   x+x+x
 
ans =
 
3*x
 
>> (x+x+x)/4
 
ans =
 
(3*x)/4
 
>> 

 

>> x = sym('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
 
>> 

此时y也是一个symbolic variable

solve()

用matlab求解:

>> syms x;
>> y = x*sin(x)-x
 
y =
 
x*sin(x) - x
 
>> solve(y,x)
 
ans =
 
    0
 pi/2
 
>> 

当找不到解时 : 

>> syms x
>> ff = cos(x)^2 +sin(x)^2
 
ff =
 
cos(x)^2 + sin(x)^2
 
>> solve(ff,x)
 
ans =
 
Empty sym: 0-by-1
 
>> 

解二元一次方程式:

>> syms x y
>> eq1 = x-2*y-5;
>> eq2 = x+y-6;
>> A = solve(eq1,eq2,x,y)

A = 

    x: [1x1 sym]
    y: [1x1 sym]

>> A.x
 
ans =
 
17/3
 
>>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值