matlab方程组求解问题

来源:百度知道 编辑:UC知道 时间:2024/06/21 17:48:33
我在计算时遇到要这样的方程组,用下面的方法为什么不对啊?怎样才能解出来,是不是方程中有反三角函数解不了?好像换成三角函数还是解不了,各位高手帮帮忙!小弟先谢谢了!!
syms thetar2 thetaR2 v2 x
g1='thetar2-acos((7086690207654121/427993491046400000000000*v2^2*x^2-1)/(1-7086690207654121/427993491046400000000000*v2^2*(2-7086690207654121/427993491046400000000000*v2^2)*x^2)^(1/2))=0'
g2='thetaR2-2*pi+acos((3189/199300000000*v2^2*x^2-1)/(1-3189/199300000000*v2^2*(2-3189/199300000000*v2^2)*x^2)^(1/2))=0'
g3='thetaR2-thetar2-550297616108123/281474976710656=0'
g4='1960630145625185/33554432+v2^2-8411179992709517/549755813888*v2*(7575036083959549/9007199254740992*x+2436619930421929/4503599627370496*(1-x^2)^(1/2))=0'
[thetar2,thetaR2,v2,x]=solve(g1,g2,g3,g4);
syms thetar2 thetaR2 v2 x
定义了四个未知数啊,然后四个方程,这应该没问题
方程里这些数据都是把前面算好的变量带进去过后的数据,我试过把前面的数据改成short,不过得到的方程数据还是很大,怎么才能把数据弄小?

你的数值取得太大了点吧,建议简化一下后再用吧。还有你的方程中间只有两个未知数,却有四个方程啊?
syms thetar2 thetaR2 v2 x
这句话的意思我估计你都没有清楚。自己找书好好看下吧。你在这里用的不对。
还有不是你说的什么换成三角函数的问题。
以下是我修改的。你的数值太大了,我在我的电脑上运行了10分钟都没有出结果。如果你的电脑够强悍的话,你自己运行吧。建议你把你的数据根据你所要的精度进行简化,这样很快就能出结果。
clc
clear all
close all

s=solve('thetar2-acos((7086690207654121/427993491046400000000000*v2^2*x^2-1)/(1-7086690207654121/427993491046400000000000*v2^2*(2-7086690207654121/427993491046400000000000*v2^2)*x^2)^(1/2))=0','thetaR2-2*pi+acos((3189/199300000000*v2^2*x^2-1)/(1-3189/199300000000*v2^2*(2-3189/199300000000*v2^2)*x^2)^(1/2))=0','thetaR2-thetar2-550297616108123/281474976710656=0','1960630145625185/33554432+v2^2-8411179992709517/549755813888*v2*(7575036083959549/9007199254740992*x+2436619930421929/4503599627370496*(1-x^2)^(1/2))=0');

syms thetar2 thetaR2 v2 x
定义了四个未知数啊,这句话基本上就没有用,这不是C语言哦。
怎么简化?比如说7086690207654121/427993491046400000000000近似为7087/4279934910464,当然还要大概看下未