solve解方程,结果含有符号,怎么变成数值结果

2021-03-17 12:07:43 字数 3004 阅读 4237

1楼:鸭梨大呀好大呀

不知你的什么版本,我是2011a就告诉我noexplicitsolution即无解析解。没有出现你这种情况。这个方程组就是求两圆交点,顶多有两组解,你仔细看解出来的x第一个和x第二个是一模一样的。

后两个也是一样的。我以前用低版本的matlab(7.0.

1),似乎得到过你这样的解,但是现在用新版本的做就没有这样的问题。noexplicitsolution的话,需要求数值解了(matlab说没解析解,不等于你就算不出来了,它经常会告诉你没解析解的,不要吃惊)。其实你这里手算很好算的,何必让电脑去帮你做。

matlab符号解方程的能力非常有限,只能够解很简单的有解析解的方程,它的优势在于数值运算,就是你给出除了x,y以外其他变量的数值然后让它解。

求助matlab当用solve指令解含常数e的指数方程时,如何把结果里的数值提取出来。**见问题补充

2楼:

经过计算,我的x计算出来是一个sym类型,在这样的情况下:

使用double(x(1,1))就可以将你想要的1.399861315这个数回提取出来。

x的类答型

所取得的值,及其类型。

ps:我的matlab版本是2009a。

3楼:匿名用户

将x=vpa(y1,10)命令后面的所有内容全部删掉,包括分号,直接运行即可

matlab solve解方程,已经赋值变量,结果仍然还有变量

4楼:匿名用户

出在

问题原因有:

1、声明变量错误,变量应该写所求的变量。正确的写法

symss1 sd sdp;

2、 solve 命令函数 书写错误(多了单引号)。正确的写法

[s1,sd,sdp]=solve(0.5744==log(1500)/(log(1500)+s1),s1==sdp+sp,9==sdp+3+sd,'s1','sd','sdp')

运行下列**

>>syms s1 sd sdp;

>>pr1=0.57;sp=3;

>>[s1,sd,sdp]=solve(0.5744==log(1500)/(log(1500)+s1),s1==sdp+sp,9==sdp+3+sd,'s1','sd','sdp')

>> s1=vpa(s1,10)

>> sd=vpa(sd,10)

>> sdp=vpa(sdp,10)

怎么用matlab解含有字母系数的方程组的解,举个简单例子

5楼:大野瘦子

用法以这个为例:

x+a*y=10

x-b*y=1

其中x,y为变量,a,b为字母系数.

只要在matlab中输入

syms x,y,a,b

[x y]=solve('x+a*y=10','x-b*y=1','x','y')

即可求出解

x =(a + 10*b)/(a + b)

y =9/(a + b)

对于函数solve的具体用法,可以通过输入help solve来学习。

matlab中方程求解的基本命令

1.roots(p) %求多项式的根,其中p是多项式向量。

例求x3-x2+x-1=0的根

解:>>roots([1,-1,1,-1])

注: [1,-1,1,-1]在matlab中表示多项式 x3-x2+x-1

2.solve(fun) %求方程fun=0的符号解,如果不能求得精确的符号解,可以计算可变精度的数值解

例:用solve求方程x9+x8+1=0的根

解:>>solve(‘x^9+x^8+1’)

给出了方程的数值解(32位有效数字的符号量)

3.solve(fun,var) %对指定变量var求代数方程fun=0的符号解。

例:解方程 ax2+bx2+c=0

解:>>syms a b c x;

>>f=a*x^2+b*x+c;

>>solve(f)

如果不指明变量,系统默认为x,也可指定自变量,比如指定b为自变量

>>symsa b c x;

>> f=a*x^2+b*x+c;

>>solve(f,b)

4.fsolve(fun,x0) %求非线性方程fun=0在估计值x0附近的近似解。

例:用fsolve求方程x=e-x在0附近的根

解:>>fsolve(‘x-exp(-x)’,0)

5.fzero(fun,x0) %求函数fun在x0附近的零点

例:求方程x-10x+2=0在x0=0.5附近的根

解:>>fzero(‘x-10^x+2’,0.5)

6楼:匿名用户

举个简单例子,解方程组

x+a*y=10

x-b*y=1

其中x,y为变量,a,b为字母系数。

只要在matlab中输入

syms x,y,a,b

[x y]=solve('x+a*y=10','x-b*y=1','x','y')

即可求出解

x =(a + 10*b)/(a + b)y =9/(a + b)

对于函数solve的具体用法,可以通过输入help solve来学习。

希望我的回答能够解决您的疑问,谢谢。

7楼:匿名用户

例:解方程组a*x+2*y=4,4*x+b*y=7matlab**:syms a b x y;

z=solve('a*x+2*y=4','4*x+b*y=7')即可。

C语言输入两个整数和运算符号,输出结果前面为什么会有

1楼 匿名用户 有的时候会有零这个字符出现的, 但是有的时候, 会没有这个零出现的, 要看输入的字符是什么? 什么情况, 还有是什么环境下, 每个环境下, 情况是不一样的。 编程实现输入两个整数,输出对应的两个整数 这个怎么做啊 5 2楼 云南新华电脑学校 在php里 php a 20 echo g...