MATLAB数值求解带参数方程

MATLAB里面数值求解方程的函数为fsolve,MATLAB自带的帮助文档里有如何直接使用的例子,但没有如何解带参数方程的例子,其实只需要对待求解方程稍作修改即可。比如我们求如下关于 x 1 x_1 x1 x 2 x_2 x2的方程:
e − e − ( x 1 + x 2 ) − x 2 ( 1 + x 1 2 ) − c 1 = 0 x 1 cos ⁡ ( x 2 ) + x 2 sin ⁡ ( x 1 ) − c 2 = 0 e^{-e^{-(x_1+x_2)}}-x_2(1+x_1^2)-c_1=0\\ x_1\cos(x_2)+x_2\sin(x_1)-c_2=0 ee(x1+x2)x2(1+x12)c1=0x1cos(x2)+x2sin(x1)c2=0

其中 c 1 c_1 c1 c 2 c_2 c2为外部设定的参数,那么首先自定义一个函数:

function myfun1 = root2d(x,c1,c2)

myfun1(1) = exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2)-c1;
myfun1(2) = x(1)*cos(x(2)) + x(2)*sin(x(1)) -c2;

然后在主程序文件中给定 c 1 c_1 c1 c 2 c_2 c2的值,以及 x 1 x_1 x1 x 2 x_2 x2的迭代初值,利用@符号将待求解变量进行区分,即可调用fsolve进行求解。

c1=0;
c2=0.5;
x0 = [0,0];
fun = @(x)root2d(x,c1,c2);
x = fsolve(fun,x0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值