MATLAB用fsolve解方程
来源:学生作业帮 编辑:神马作文网作业帮 分类:英语作业 时间:2024/09/21 16:16:45
MATLAB用fsolve解方程
H=1.90;
lanmuda=1.55;
n1=1.55;
n2=1.67;
n3=1.50;
k0=2*pi/lanmuda;
r1=sqrt(n^2-n1^2)*k0;
r2=sqrt(n2^2-n^2)*k0;
r3=sqrt(n^2-n3^2)*k0;
fun=@(n)(r2*H-atan(r1/r2)-atan(r3/r2))
s= fsolve(fun,1.60)
错误信息如下:
fun =
@(n)(r2*H-atan(r1/r2)-atan(r3/r2))
错误使用 fsolve (line 256)
FSOLVE requires all values returned by user functions to be of data type double.
出错 m11 (line 14)
s= fsolve(fun,1.60)
不要用solve,用slove我会解.
H=1.90;
lanmuda=1.55;
n1=1.55;
n2=1.67;
n3=1.50;
k0=2*pi/lanmuda;
r1=sqrt(n^2-n1^2)*k0;
r2=sqrt(n2^2-n^2)*k0;
r3=sqrt(n^2-n3^2)*k0;
fun=@(n)(r2*H-atan(r1/r2)-atan(r3/r2))
s= fsolve(fun,1.60)
错误信息如下:
fun =
@(n)(r2*H-atan(r1/r2)-atan(r3/r2))
错误使用 fsolve (line 256)
FSOLVE requires all values returned by user functions to be of data type double.
出错 m11 (line 14)
s= fsolve(fun,1.60)
不要用solve,用slove我会解.
fsolve要求所有内容都是double型,你这里r1,r2,r3
是sym变量,所以出错,改为下面:
f = @(n)sqrt(n2^2-n^2)*k0*H-atan(sqrt(n^2-n1^2)*k0/(sqrt(n2^2-n^2)*k0))-atan(sqrt(n^2-n3^2)*k0/(sqrt(n2^2-n^2)*k0));
>> fsolve(f,1.6)
再问: 好,我还想问下,如果想要r1,r2,r3改如何改,这样可以让式子简单点,如果不能就算了。还有结果出现如下信息,是什么意思?
Equation solved.
solve completed because the vector of function values is near zero
as measured by the .......
这对结果有影响吗?
再答: r1,r2,r3都有n,就不可能是double型,就没法代入fsolve中。
fsolve对解的区间有要求,不同的区间可能有不同的解,我这里的解是离1.6最近的,如果换成其他值有可能影响结果
是sym变量,所以出错,改为下面:
f = @(n)sqrt(n2^2-n^2)*k0*H-atan(sqrt(n^2-n1^2)*k0/(sqrt(n2^2-n^2)*k0))-atan(sqrt(n^2-n3^2)*k0/(sqrt(n2^2-n^2)*k0));
>> fsolve(f,1.6)
再问: 好,我还想问下,如果想要r1,r2,r3改如何改,这样可以让式子简单点,如果不能就算了。还有结果出现如下信息,是什么意思?
Equation solved.
solve completed because the vector of function values is near zero
as measured by the .......
这对结果有影响吗?
再答: r1,r2,r3都有n,就不可能是double型,就没法代入fsolve中。
fsolve对解的区间有要求,不同的区间可能有不同的解,我这里的解是离1.6最近的,如果换成其他值有可能影响结果
怎么用matlab的fsolve解方程?
MATLAB fsolve 解非线性方程
MATLAB中fsolve解非线性方程问题
Matlab问题:请教fsolve求解非线性方程问题
matlab 中解二元非线性方程组问题,fsolve高手帮帮忙
MATLAB求解非线性方程组用fsolve函数求解
matlab用fsolve求解非线性方程组,无法求解……
Matlab中syms构建函数后用fsolve求解
matlab 中fsolve求解非线性方程组可以给定解的区间么
用matlab解方程求matlab代码.
matlab 迭代我使用matlab中的fsolve函数解方程组,老是出现exitflag=0,我查了下是说迭代超过最大
用matlab怎么解方程