求MATLAB复杂的方程组求解:a=sqrt(40*40-36*36);h=70;L=90.9825;R=40;
f=solve('s*(-2*a*sqrt(1-h^2/(L-a^2))+4*a*(1-h^2/(L-a^2)))+2*s^2*(1-h^2/(L-a^2))=(L-R-5)^2-a^2-2*a*L*sqrt(1-h^2/(L-a^2))+2*a^2*sqrt(1-h^2/(L-a^2))+2*(L-a)^2*(1-h*h/(L-a*a))=s-b');
原本想要用solve解答,结果没用,求解法
求MATLAB复杂的方程组求解
答案:2 悬赏:50
解决时间 2021-03-05 07:28
- 提问者网友:醉人眸
- 2021-03-04 21:51
最佳答案
- 二级知识专家网友:伤口狠精致
- 2021-03-04 22:15
这说明此微分方程没有显示解,应用数值方法求解,例如ode45等函数
就一个例子(选自matlab帮助文档)
解入下微分方程组
1,建立方程组函数
function dy = rigid(t,y)dy = zeros(3,1); % a column vectordy(1) = y(2) * y(3);dy(2) = -y(1) * y(3);dy(3) = -0.51 * y(1) * y(2);
2,求解并绘图
[T,Y] = ode45(@rigid,[0 12],[0 1 1]);plot(T,Y(:,1),'-',T,Y(:,2),'-.',T,Y(:,3),'.')
结果
求采纳为满意回答。
就一个例子(选自matlab帮助文档)
解入下微分方程组
1,建立方程组函数
function dy = rigid(t,y)dy = zeros(3,1); % a column vectordy(1) = y(2) * y(3);dy(2) = -y(1) * y(3);dy(3) = -0.51 * y(1) * y(2);
2,求解并绘图
[T,Y] = ode45(@rigid,[0 12],[0 1 1]);plot(T,Y(:,1),'-',T,Y(:,2),'-.',T,Y(:,3),'.')
结果
求采纳为满意回答。
全部回答
- 1楼网友:初心未变
- 2021-03-04 23:44
有时候,用solve()函数不一定能得到解析值或数值解。特别是含有较复杂的三角函数方程往往是得不到你想要的值。所以求解这类方程可以考虑数值方法。一般可以用fsolve()函数。
求解步骤:
1、用ezplot(eq1,eq2)绘出两函数方程的图形,来判断两函数曲线的交点的位置。
从图形来看,很容易判断x、y初值为[-12 0]或[-8 0]或[4 0]。。。。。。时,有交点。
2、将两函数方程自定义为一个变量{x}的函数,即f(x1,x2)
fun=@(x)[sin(x(1)).*sin(a)+cos(x(1)).*cos(a)*cos(pi*6)-sin(atan(x(2)/sqrt(1.1383^2+0.5142^2))),sin(x(1))*sin(a)+cos(x(1))*cos(a)*cos(pi*5/24)-sin(atan(x(2)/sqrt(1.516^2+0.5715^2)))]
3、用fsolve()函数求解。
[x,f,h]=fsolve(fun,[-12 0])
[x,f,h]=fsolve(fun,[-8 0])
[x,f,h]=fsolve(fun,[4 0])
。。。。。。
x=x(1),y=x(2)
f1≈0,f2≈0说明所求的x、y是方程的解。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯