matlab solve解方程结果不对r=1.9;
d=0.175;
ac=11.5;
bc=6.5;
l=11.66;
cc=pi;
aa=solve('(bc*(1-cos(aa)))^2+(ac+r*cos(cc)-bc*sin(aa))^2+(r*sin(cc))^2-l^2','aa');
x=subs(aa);
x=double(aa);
%把得出来的两个解带进去算不对,这怎么解决,求大神帮忙。
对于你的问题,最好这样来处理。
r=1.9;d=0.175;ac=11.5;bc=6.5;l=11.66;cc=pi;
syms aa real
aa=solve((bc*(1-cos(aa)))^2+(ac+r*cos(cc)-bc*sin(aa))^2+(r*sin(cc))^2-l^2);
vpa(aa)
ans =
-0.32170999022918155334949100099991
2.2729436161889969111963218680334
将得到的两个解回带验算,结果正确,等于0
追问如果我的cc是一个从0增加到pi的数组,但是我想求的结果要在±pi╱2范围内
他这个绿色红色的分别是两个解的图像,下面蓝色的是cc的正弦函数,我想要的是在0附近波动的解,这怎么办啊。
追答可以用循环语句来实现。
clc,clear all,close all
cc1=-pi/2:pi/10:pi/2;
n=length(cc1);
i=1;
while i<=n
r=1.9;d=0.175;ac=11.5;bc=6.5;l=11.66;
syms aa
cc=cc1(i);
aa=solve((bc*(1-cos(aa)))^2+(ac+r*cos(cc)-bc*sin(aa))^2+(r*sin(cc))^2-l^2);
aa(i)=aa;
i=i+1;
end
real(double(aa))
你跑过吗?我跑出来是这样
追答是这样的
追问中间这么多0不对吧
我想要就是前面红绿线组成的在0附近波动的线
就是标出来的线,可以吗
谢谢啦,我用循环加if函数解决了问题
MATLAB解方程,用solve函数解出的解不正确,求大神解答
你的解是错误的。将你给出的值a=2,b=3,c=2分别代入 (a+b)\/c=2.5 (a+1)*(b+2)\/4=3.75≠3 (a+c)*(b+c)\/c=10 用matlab的正确解法为 syms a b c real h=2.5;i=3;j=10;[a b c]=vpasolve(h==(a+b)\/c,i==(a+1)*(b+2)\/4,j==(a+c)*(b+c)\/c)运...
matlab solve解线性方程组为什么答案会不一样
两组方程的解都是第一个未知数=1\/2 第二个未知数=5\/2。只不过你返回值的命名不一样罢了。
为什么用MATLAB解方程会出现错误啊?
x^6-21x^5+175x^4-735x^3+1624x^2-1764x+720=0 为此,先利用Solve命令求解出方程的所有根.solutions=Solve[x^6-21x^5+175x^4-735x^3+1624x^2-1764x+720==0]{{x→1},{x→2},{x→3},{x→4},{x→5},{x→6}} 仔细查看solutions, 可知它是包含子列表的列表. 先看第一部分...
matlab solve 解方程出错
[x,y]=solve('x+1==y','x*3==y','x','y');运行结果 x = 1\/2 y =3\/2
matlab里solve函数不能使用,即使算x+1都不对
有很多方程用solve是得不到解的 方程要放到‘’里,完整的还要加上'x'clear all;clc;solve('x+1=2','x')或:clear all;clc;solve('x+1=2')
matlab中调用solve函数出错?怎么解决
解决的办法是,定义符号变量lambda,然后把方程写成符号表达式从而代入l(i)、Re的值,再调用solve求解。2、下面的写法 for Re=linspace(4*10^3,10^7,100)Re作为循环控制变量,每次只取一个值,后面用semilogx绘图时,Re只是一个标量。3、使用vpa保留一定精度,得到的结果仍然是sym类型,不是数值类型...
MATLAB里想用solve解方程,出这个错误,请大神帮忙啊 。急急急,谢谢了...
[a]=solve('a+2=3''a')这句命令中,少了一个逗号。应改为 [a]=solve('a+2=3','a')
mathematics用solve解代数方程组总报错
因为方程系数会变化。用matlab的solve函数解方程,方程系数随给定变化,用的num2str()实现系数传递,但是换成方程组就不行了,就会总报错。
matlab solve 解这个方程组得出的结果不对
这样就好了,matlab不能把解一一对应 clear;clc G10DivideByG5=0.9271;X10=0.3030;G17=1;X17=0.6;X18=0.35;X8=0.35;X6=0.9485;G13=1;X13=0.6;syms G5 G6 G18 eq1=G5*G10DivideByG5*X10+G17*X17-G18*X18;eq2=(G18-G5)*X8+G6*X6-G13*X13;eq3=G6-G5*(1-G10...
一个MATLAB中求解方程solve函数,一直错误,求帮助
首先,你有语法错误。solve里的表达是默认为右端为零的方程,所以不能出现“=”,你看我下面做得就可以,把右边的那项移到左边这边来。其次,可能是solve不支持向量操作。我把方程改成 [h]=solve('(h*(sqrt(z2^2+(r11-h)^2)))\/((r11-h)*(sqrt(z1^2+h^2)))-c1\/c2');就解出h...