作业帮 > 综合 > 作业

关于用MATLAB求解隐函数的问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 02:16:53
关于用MATLAB求解隐函数的问题
想用MATLAB求解一个隐函数,因为之前没学过用这个软件,麻烦您帮忙解决一下.
x为待求值,其余都是已知参数,函数为(a+b*cos(c)-d*cos(e))/cos(x)=(f+b*sin(c)-d*sin(e))/sin(x)
如果可以的话,还麻烦您给出个完整的程序,包括对个参数的付值形式,因为要计算很多组,所以参数每一组会不同.非常感谢了!
你是要求解析解还是数值解,如果你的Matlab装了Symbolic Toolbox的话,Matlab可以直接求解析解,如下:
solve('(a+b*cos(c)-d*cos(e))/cos(x)=(f+b*sin(c)-d*sin(e))/sin(x)','x')
ans =
-(log((a*exp(c*i)*exp(e*i) + b*exp(2*c*i)*exp(e*i) - d*exp(c*i)*exp(2*e*i) + f*exp(c*i)*exp(e*i)*i)/(b*exp(e*i) - d*exp(c*i) + a*exp(c*i)*exp(e*i) - f*exp(c*i)*exp(e*i)*i))*i)/2
用subs函数可以将solve接出来的解析解里面的变量用数字替换掉,然后得到数值解.
给你举个简单的例子,求a*x=b的解,先求解析解,然后用a=2,b=1代入求出数值
>> solution=solve('a*x=b','x')
solution =
b/a
>> num_solution = subs(solution,'[a,b]',[2 1])
num_solution =
1/2
>> num_solution = subs(num_solution)
num_solution =
0.5000