Matlabmatlab 求解方程组问题

查看: 7012|回复: 5|关注: 0
matlab关于方程解得问题 solve的结果如何化简
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
p=[2 1 -3 -6];
r1=roots(p)
r2=solve('2*x^3+x^2-3*x-6')
求解结果:
& &1.6031& && && &
&&-1.0515 + 0.8750i
&&-1.0515 - 0.8750i
& && && && && && && && && && && && && && && && && && && && && && && && && && && && && && & 19/(36*(997^(1/2)/24 + 37/27)^(1/3)) + (997^(1/2)/24 + 37/27)^(1/3) - 1/6
- 19/(72*(997^(1/2)/24 + 37/27)^(1/3)) - (997^(1/2)/24 + 37/27)^(1/3)/2 + (3^(1/2)*(19/(36*(997^(1/2)/24 + 37/27)^(1/3)) - (997^(1/2)/24 + 37/27)^(1/3))*i)/2 - 1/6
- 19/(72*(997^(1/2)/24 + 37/27)^(1/3)) - (997^(1/2)/24 + 37/27)^(1/3)/2 - (3^(1/2)*(19/(36*(997^(1/2)/24 + 37/27)^(1/3)) - (997^(1/2)/24 + 37/27)^(1/3))*i)/2 - 1/6
两种方法的结果本来应该一样的,可是第二个结果却这么复杂,用什么命令能把把第二个结果化简一下,化简的和r1的结果一样。谢谢
<h1 style="color:# 麦片财富积分
关注者: 14
clear
p=[2 1 -3 -6];
r1=roots(p)
r2=solve('2*x^3+x^2-3*x-6')
r3=vpa(r2,5)
复制代码r1 =
-1.0515 + 0.8750i
-1.0515 - 0.8750i
1/6*(296+9*997^(1/2))^(1/3)+19/6/(296+9*997^(1/2))^(1/3)-1/6
-1/12*(296+9*997^(1/2))^(1/3)-19/12/(296+9*997^(1/2))^(1/3)-1/6+1/2*i*3^(1/2)*(1/6*(296+9*997^(1/2))^(1/3)-19/6/(296+9*997^(1/2))^(1/3))
-1/12*(296+9*997^(1/2))^(1/3)-19/12/(296+9*997^(1/2))^(1/3)-1/6-1/2*i*3^(1/2)*(1/6*(296+9*997^(1/2))^(1/3)-19/6/(296+9*997^(1/2))^(1/3))
1.6031
-1.*i
-1.*i复制代码r2=solve('2*x^3+x^2-3*x-6'),这里解得相当是一个符号方程,所以其解释绝对精确的,也可以理解为“没有化简”
这里用vpa函数指定其位数即可~
<h1 style="color:# 麦片财富积分
雕小虫 发表于
r2=solve('2*x^3+x^2-3*x-6'),这里解得相当是一个符号方程,所以其解释绝对精确的,也可以理解为“没有化 ...
哦哦,谢啦谢啦!!化简这个根为啥不能用simple?
<h1 style="color:# 麦片财富积分
关注者: 14
我的理解是simple一般是用来对多项式进行化简的,比如合并同类项,并不涉及数值计算的吧
<h1 style="color:# 麦片财富积分
雕小虫 发表于
我的理解是simple一般是用来对多项式进行化简的,比如合并同类项,并不涉及数值计算的吧 ...
哦哦 知道了知道了,谢啦谢啦
<h1 style="color:# 麦片财富积分
我也遇到了同样的问题,非常感谢2楼的回答,关于运算精度的问题,也可以参考digits和vpa函数。
站长推荐 /2
快速搭建新能源汽车整车模型及其性能优化
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区查看: 7725|回复: 8|关注: 0
解一元一次方程的问题
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
&&A=[1,2,3];B=[x,x,x];c=A*B.'
如何让matlab帮忙计算0.9*c-x=0这条一元一次方程呢?
论坛优秀回答者
<h1 style="color:#36 麦片财富积分
关注者: 274
x=solve(0.9*c-x,'x')
<h1 style="color:# 麦片财富积分
&&A=[1,2,3];B=[x,x,x];c=A*B.';x=solve('0.9*c-x=0',x)
但是按理说得出的结果应该是x=0才对啊
<h1 style="color:# 麦片财富积分
谁来帮帮忙!万分感谢
<h1 style="color:# 麦片财富积分
A=[1,2,3];B=[x,x,x];c=A*B.'
y=sym('0.9*6*x-x')
solve(y,'x')复制代码ans =
MATLAB 数学、统计与优化版块优秀回答者
<h1 style="color:#7 麦片财富积分
关注者: 21
wh6585306 发表于
这跟没弄一样。。楼主是要求把c带进去。。你倒是直接把c用6x代替了
<h1 style="color:# 麦片财富积分
zhanglu 发表于
这跟没弄一样。。楼主是要求把c带进去。。你倒是直接把c用6x代替了
既然已知c是x的函数,c怎么就不能直接代替了~
如果有其他能直接将c带进去的方法那更好了~
这是我的理解,并没有跟没弄一样好吧~
<h1 style="color:# 麦片财富积分
感谢各位的回答,其实我的主要问题就是c为什么不能直接代替6x的问题
<h1 style="color:# 麦片财富积分
wh6585306 发表于
既然已知c是x的函数,c怎么就不能直接代替了~
如果有其他能直接将c带进去的方法那更好了~
这是我的理解, ...
求高手指点,求解方程y=0.07t,t每隔10取一个值,程序怎么写呢???本人新手,不太会用matlab,谢谢!!!
站长推荐 /2
快速搭建新能源汽车整车模型及其性能优化
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区20:03 提问
如何用matlab求解带约束方程的微分方程组?
类似于如下,x1(0)=1,x2(0)=x3(0)=x4(0)=0
x1'=-3*x1*x2;
x2'=8*x3+x4;
x4'=-4*x1*x3
x1+x2+x3+x4=1,求程序应该如何编写?
按赞数排序
这就是用matlab做数学题,你查有本书好象是matlab在高等数学中的应用,里面有例题
其他相关推荐
其他相似问题用Matlab求解差分方程问题_中华文本库
第1页/共36页
第1页/共36页
寻找更多 ""查看: 5120|回复: 5|关注: 0
MATLAB求解方程的最小二乘解问题
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
本帖最后由 yuleself 于
16:07 编辑
&&小弟只学过MATLAB的一些基本用法,现在做的这个项目需要用到MATLAB来处理一点数据,搞了一个多月了还没什么进展,希望各位大大能帮助一下,提前谢过了!
&&先描述一下问题吧。现在我有一个如下的方程(x和θ用分别用kk和tk替代):
QQ截图01.png (55.92 KB, 下载次数: 5)
15:57 上传
kk=(-1j*(z0^2-zxy^2+zxx*zyy)+sqrt(-(z0^2-zxy^2+zxx*zyy)^2+4*z0^2*(zyy*(cos(tk))^2-zxy*sin(2*tk)+zxx*(sin(tk))^2)*(zxx*(cos(tk))^2+zxy*sin(2*tk)+zyy*(sin(tk))^2)))/(2*z0*(zyy*(cos(tk))^2-zxy*sin(2*tk)+zxx*(sin(tk))^2))复制代码方程里面只有zxx,Zxy,zyy是未知数,有5个不同的θ和与之对应的x是已知的。现在就是要利用这5组值求解三个未知数zxx,Zxy,zyy(不能只用三组数据求解符号方程,因为数据的偶然性太大,三组数据求出来可信度不高)。
我的五组数据分别是:x=[0.477 0.720 0.987 0.936 0.647]
θ=[0 pi/6 pi/3 pi/2 2*pi/3]复制代码事先已经通过其它途径知道对应的三个未知数正确的解[Zxx Zxy Zyy]应该是:(j是虚数单位)Z=[1j*184.1 1j*67.6 1j*361.4]复制代码我自己找了一些关于最小二乘法的例子,然后用的下面的代码求解:function main()
clc
z_ini=[1j*184.1 1j*67.6 1j*161.4];%初值
options=optimoptions(@lsqnonlin,'Algorithm','levenberg-marquardt');
[z,resnorm]=lsqnonlin(@eq17, z_ini,[],[],options);
fprintf('zxx=%gj& &zxy=%fj& &zyy=%fj& &Resnorm=%g\n\n',imag(z(1)),imag(z(2)),imag(z(3)),resnorm)
F=eq17(z_ini)
function F=eq17(z0)
kk=[0.477 0.720 0.987 0.936 0.647];%kk就是原方程的x,tk是原方程的θ
tk=[0 pi/6 pi/3 pi/2 2*pi/3];
zxx=z0(1);zxy=z0(2);zyy=z0(3);
F(1)=(-1i*(377^2-zxy^2+zxx*zyy)+(-(377^2-zxy^2+zxx*zyy)^2+4*377^2*(zyy*(cos(tk(1)))^2-zxy*sin(2*tk(1))+zxx*(sin(tk(1)))^2)*(zxx*(cos(tk(1)))^2+zxy*sin(2*tk(1))+zyy*(sin(tk(1)))^2))^(1/2))*(2*377*(zyy*(cos(tk(1)))^2-zxy*sin(2*tk(1))+zxx*(sin(tk(1)))^2))^(-1)-kk(1);
F(2)=(-1i*(377^2-zxy^2+zxx*zyy)+(-(377^2-zxy^2+zxx*zyy)^2+4*377^2*(zyy*(cos(tk(2)))^2-zxy*sin(2*tk(2))+zxx*(sin(tk(2)))^2)*(zxx*(cos(tk(2)))^2+zxy*sin(2*tk(2))+zyy*(sin(tk(2)))^2))^(1/2))*(2*377*(zyy*(cos(tk(2)))^2-zxy*sin(2*tk(2))+zxx*(sin(tk(2)))^2))^(-1)-kk(2);
F(3)=(-1i*(377^2-zxy^2+zxx*zyy)+(-(377^2-zxy^2+zxx*zyy)^2+4*377^2*(zyy*(cos(tk(3)))^2-zxy*sin(2*tk(3))+zxx*(sin(tk(3)))^2)*(zxx*(cos(tk(3)))^2+zxy*sin(2*tk(3))+zyy*(sin(tk(3)))^2))^(1/2))*(2*377*(zyy*(cos(tk(3)))^2-zxy*sin(2*tk(3))+zxx*(sin(tk(3)))^2))^(-1)-kk(3);
F(4)=(-1i*(377^2-zxy^2+zxx*zyy)+(-(377^2-zxy^2+zxx*zyy)^2+4*377^2*(zyy*(cos(tk(4)))^2-zxy*sin(2*tk(4))+zxx*(sin(tk(4)))^2)*(zxx*(cos(tk(4)))^2+zxy*sin(2*tk(4))+zyy*(sin(tk(4)))^2))^(1/2))*(2*377*(zyy*(cos(tk(4)))^2-zxy*sin(2*tk(4))+zxx*(sin(tk(4)))^2))^(-1)-kk(4);
F(5)=(-1i*(377^2-zxy^2+zxx*zyy)+(-(377^2-zxy^2+zxx*zyy)^2+4*377^2*(zyy*(cos(tk(5)))^2-zxy*sin(2*tk(5))+zxx*(sin(tk(5)))^2)*(zxx*(cos(tk(5)))^2+zxy*sin(2*tk(5))+zyy*(sin(tk(5)))^2))^(1/2))*(2*377*(zyy*(cos(tk(5)))^2-zxy*sin(2*tk(5))+zxx*(sin(tk(5)))^2))^(-1)-kk(5);复制代码但是运行的时候出现:Local minimum possible.
lsqnonlin stopped because the relative size of the current step is less than
the default value of the step size tolerance.
&stopping criteria details&
zxx=184.1j& &zxy=67.600000j& &zyy=161.400000j& &Resnorm=0.564009
F =
& &-0.0014& &-0.0936& &-0.3952& &-0.5190& &-0.3601
&& 复制代码这样的解相当于没有解,根本没法用。而且我有很多个这样的方程组需要求解,也不知道它们的真实解是多少,所以初值的设置只能在一个大致的范围,不可能很精确。尝试过改那个step size tolerance似乎没有效果(如果我没有改错的话),不知道是不是选择的这个算法不适合这个例子。
有没有大牛能够帮助小弟一下,不胜感激啊!
<h1 style="color:# 麦片财富积分
没人回答么:Q
<h1 style="color:# 麦片财富积分
我也遇到类似的问题,同求。。。
<h1 style="color:# 麦片财富积分
同求,楼主解决了吗?分享一下啦
论坛优秀回答者
<h1 style="color:#6 麦片财富积分
关注者: 76
1stOpt求解,结果似乎不错:
Constant kk=[0.477 0.720 0.987 0.936 0.647],
& && && &tk=[0 pi/6 pi/3 pi/2 2*pi/3];
ComplexPar zxy,zxx,zyy,
ComplexStr =
Function
(-i*(377^2-zxy^2+zxx*zyy)+(-(377^2-zxy^2+zxx*zyy)^2+4*377^2*(zyy*(cos(tk1))^2-zxy*sin(2*tk1)+zxx*(sin(tk1))^2)*(zxx*(cos(tk1))^2+zxy*sin(2*tk1)+zyy*(sin(tk1))^2))^(1/2))*(2*377*(zyy*(cos(tk1))^2-zxy*sin(2*tk1)+zxx*(sin(tk1))^2))^(-1)-kk1;
(-i*(377^2-zxy^2+zxx*zyy)+(-(377^2-zxy^2+zxx*zyy)^2+4*377^2*(zyy*(cos(tk2))^2-zxy*sin(2*tk2)+zxx*(sin(tk2))^2)*(zxx*(cos(tk2))^2+zxy*sin(2*tk2)+zyy*(sin(tk2))^2))^(1/2))*(2*377*(zyy*(cos(tk2))^2-zxy*sin(2*tk2)+zxx*(sin(tk2))^2))^(-1)-kk2;
(-i*(377^2-zxy^2+zxx*zyy)+(-(377^2-zxy^2+zxx*zyy)^2+4*377^2*(zyy*(cos(tk3))^2-zxy*sin(2*tk3)+zxx*(sin(tk3))^2)*(zxx*(cos(tk3))^2+zxy*sin(2*tk3)+zyy*(sin(tk3))^2))^(1/2))*(2*377*(zyy*(cos(tk3))^2-zxy*sin(2*tk3)+zxx*(sin(tk3))^2))^(-1)-kk3;
(-i*(377^2-zxy^2+zxx*zyy)+(-(377^2-zxy^2+zxx*zyy)^2+4*377^2*(zyy*(cos(tk4))^2-zxy*sin(2*tk4)+zxx*(sin(tk4))^2)*(zxx*(cos(tk4))^2+zxy*sin(2*tk4)+zyy*(sin(tk4))^2))^(1/2))*(2*377*(zyy*(cos(tk4))^2-zxy*sin(2*tk4)+zxx*(sin(tk4))^2))^(-1)-kk4;
(-i*(377^2-zxy^2+zxx*zyy)+(-(377^2-zxy^2+zxx*zyy)^2+4*377^2*(zyy*(cos(tk5))^2-zxy*sin(2*tk5)+zxx*(sin(tk5))^2)*(zxx*(cos(tk5))^2+zxy*sin(2*tk5)+zyy*(sin(tk5))^2))^(1/2))*(2*377*(zyy*(cos(tk5))^2-zxy*sin(2*tk5)+zxx*(sin(tk5))^2))^(-1)-kk5;
复制代码zxy.实部: 2.03E-8
zxy.虚部: 67.8
zxx.实部: 6.4E-8
zxx.虚部: 183.
zyy.实部: 3.47E-8
zyy.虚部: 360.
<h1 style="color:# 麦片财富积分
1stOpt求解,结果似乎不错:zxy.实部: 2.03E-8
zxy.虚部: 67.8
zxx.实部: 6.41789 ...
灰常灰常感谢!终于有人回复了,我等两天试试。这段时间再忙别的东西:Q
好人一生平安啊,大哥
站长推荐 /2
快速搭建新能源汽车整车模型及其性能优化
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区

我要回帖

更多关于 matlab求解微分方程 的文章

 

随机推荐