matlab 如何解非线性方程组

方程如下:
clc
clear all

syms n f

s11=12.3e-12;s12=-4.05e-12;s13=-5.31e-12;s33=15.5e-12;
d33=289e-12;d31=-123e-12;e33=1300*8.85e-12;p=7.5e3;

a=30e-3;l=2e-3;

Er=0.5*(1/(s11-s12)+1/(s13+s12+2*s13*n));
Ez=1/(s13+s13/n-d33*(d33+d31/n)/e33);
kr=2*pi*f/sqrt(Er/p);kz=2*pi*f/sqrt(Ez/p);

v12=-s12/s11;v13=-s13/s11;
k=sqrt(d33*(d33+d31/n)/(s33+s13/n)/e33);

A=kr*a*besselj(0,kr*a)*(1-v13*n)-besselj(1,kr*a)*(1-v12-2*v13*n);
B=1-k^2*tan(kz*l/2)/(kz*l/2);

[n f]=solve('A=0','B=0','n','f');

这两个贝塞尔超越方程,求出n和f,没有范围,没有初值,只是研究一下他的解

只有这么多财富了,大哥大姐们行行好啊

使用solve函数。举个例子,解非线性方程组
x^2+y^3=10
x^3-y^2=1
其中x,y为方程组的未知量
在Matlab的命名窗口中输入:
syms x y

[x y]=solve('x^2+y=10','x^2-y^2=1','x','y')

即可

输出计算结果为:

x =

(37^(1/2)/2 + 21/2)^(1/2)
(21/2 - 37^(1/2)/2)^(1/2)
-(21/2 - 1/2*37^(1/2))^(1/2)
-(1/2*37^(1/2) + 21/2)^(1/2)

y =

- 37^(1/2)/2 - 1/2
37^(1/2)/2 - 1/2
37^(1/2)/2 - 1/2
- 37^(1/2)/2 - 1/2

具体solve函数的使用方法,通过输入help solve来学习。追问

看了都看了,正因为不懂,所以才来求教,不知道怎么处理这种方程组,是不是要用牛顿法之类的来求解

温馨提示:内容为网友见解,仅供参考
无其他回答