作业帮 > 综合 > 作业

请各位帮忙编一下MATLAB程序

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/06/24 13:27:46
请各位帮忙编一下MATLAB程序
已知a=149597887.5;b=149576999.826;c=2499813.5;m=35502040.757;p=145303943.239;T=25803.882
需为一个变量n赋值
如果n大于2010
则执行求解0.5*p*(m-c)-pi*a*b*(n-2010)/T-0.5*(b/a)*sqrt(a^2-x^2)*(x-c)+(a*b/2)*asin(x/a)-(a*b/2)*asin(m/a)=0
显示为x=结果
我在操作台上将字母全换成数,并赋n一值后又解,但编入文件就不行了,无论n输什么值都是“Warning:Explicit solution could not be found.”,是不是系统将n做字母而不是赋值后的数处理了?
请各位帮忙编一下MATLAB程序
a=149597887.5;
b=149576999.826;
c=2499813.5;
m=35502040.757;
p=145303943.239;
T=25803.882;
n=10000;
if n>2010
eqn=@(x)0.5*p*(m-c)-pi*a*b*(n-2010)/T-0.5*(b/a)*sqrt(a^2-x^2)*(x-c)+(a*b/2)*asin(x/a)-(a*b/2)*asin(m/a);
x=fsolve(eqn,0) %你这个好像没有解,你可以看一下ezplot(eqn)图像看一下
end

超越方程,的解析解一般不好给出来.你那段E文的意思:就是说没找到解析解.
你要用fsolve求数值解才可以,不过你的表达式有问题.
我看ezplot的图像根本没有零点.