用matlab solve解方程的 solve 解方程要得到解析解,为什么只返回了一个数值解

小木虫 --- 600万学术达人喜爱的学术科研平台
热门搜索:
&&MATLAB求解方程,数值解或解析解问题
MATLAB求解方程,数值解或解析解问题
最近想用malab求解一个方程,已经困扰了我很长一段时间。我对matlab软件不熟悉,还请大家给出指点,求出解析解或数值解都可以...
具体求解的方程如下:
p=p0+D^2*pp0*(1-ppo/pp3)/((sin(psaiI))*sin(psaiI))
p=(a*PP3+b*pp3^2)*E+c*pp3^3
E=E0+(p+p0)*(1/pp0-1/pp3)/2
其中,pp0=1.65;D=0.7655;a=0.35;b=0.1243;c=0.01279;E0=0.05866
现在需要求出随着psaiI的变化(0-pi/2),pp3的变化值!
我自己编写的程序如下:
pp0=1.65;&&
v0=1/pp0;&&
E0=0.05866;
B=0.1243;&&
C=0.01279;
syms psaiI pp3 p3
for psaiI=0:pi/40:pi/2
& &&&syms pp3
& & xp3=fsolve(@(pp3)(A*pp3+B*pp3^2)*(E0+(2*p0+Dcj^2*pp0*(1-pp0/pp3)/(2*sin(psaiI)*sin(psaiI))))+C*pp3^3-p0-Dcj^2*pp0*(1-pp0/pp3)/(2*sin(psaiI)*sin(psaiI)),1.6);
& &plot(xx,xp3);
上面程序可以运行,但是计算出来的pp3应该是全部大于pp0的,然而上面程序计算结果却不是这样!怀疑上面方程用fsolve求解是否合适啊?
程序如何修改,请大家指点...
上面程序运行如下图所示
截图00.png
能帮忙修改修改吗?刚刚学习matlab,不是很懂埃
学术必备与600万学术达人在线互动!
扫描下载送金币matlab 用solve解方程组如何只保留全部未知数都大于0的一组解_matlab吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:172,312贴子:
matlab 用solve解方程组如何只保留全部未知数都大于0的一组解收藏
比如 [V1,V2,V3,Vges]=solve('4=0.36+0.083932*Vges^2+0.^2 ','4=0.66+0.083932*Vges^2+0.016782*(Vges-V1)^2+0.^2 ','
4=0.96+0.083932*Vges^2+0.016782*(Vges-V1)^2+0.^2 ','Vges=V1+V2+V3','Real',true) 解出来这样的,但是只有第二组解才是符合要求全部大于0的,怎样才能使它只显示这一组解呢??还有怎样保留4位小数呢?急求V1 =
-2.9181214
3.7274971 -2.7836328 -3.2889327 -3.7274971V2 =
-1.0599859
1.0599859 -2.5221083
2.2311552 -2.2892777 -2.2311552
2.2892777V3 =
-1.4836024
-2.221335 -2.3329928
2.221335 -2.6913728
2.3329928Vges =
-5.4617096
3.793453 -1.8947734
-3.793453 -2.4581971
去魅蓝吧盖楼,一键赢取价值十万的周边壕礼!
您好,您最后是怎么解决的呢?
楼主,还有代码吗?可以给我发一份吗
楼主,还有代码吗?可以给我发一份吗
登录百度帐号推荐应用扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
关于matlab中solve解方程的问题!比如,f=x+2,然后用solve(‘f+x=2’,‘x’),结果只会显示x=-f+2;但是我想先把f=x+2代入f+x=2中再求解x的表达式,如何能做到?实际上我要解得方程要比上面这个例子复杂,而且我要解的是二元一次方程组.
茭欪軋の67
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
试一试subsf1 = subs(a+b, a, 4) 返回 4+b
其中a+b为表达式,a为原变量,4为新变量附注,你试一试,[xold] = solve('f+x=2', 'x' );f1 = x + 2;xnew = subs(xold, f, f1)
为您推荐:
其他类似问题
扫描下载二维码用 Matlab 的 solve 解方程要得到解析解,为什么只返回了一个数值解? - 知乎28被浏览4602分享邀请回答97 条评论分享收藏感谢收起x = fsolve(@(x) sqrt(1/x+1)+sqrt(1/(x-1))-sqrt(1/(x^2-2))-sqrt(x^2-1),[-2],optimoptions('fsolve'))
一般情况下不论赋多大的初值,算出始终是同样的解。不过这个方程有若干个间断点,赋某个初值可能只能够求到一段上的解,因为当计算机运行到断点上时会自动停止运算。所以要找出其间断点,然后分开来求。在这个式子上可以看到其断点分别是在时。所以只需在小于,到,大于,到这几个范围内各取几个有理数作为初值来算就行了。另外到之间解可能比较密集,函数对初值比较敏感,所以要多取几次,最好写一个循环。41 条评论分享收藏感谢收起查看更多回答1 个回答被折叠()查看: 5495|回复: 10|关注: 0
解方程为什么得到的不是结果而是表达式
<h1 style="color:# 麦片财富积分
新手, 积分 10, 距离下一级还需 40 积分
f =[ 6& & 11;
& &&&8& & 12]
&&&&[k,b]=solve('f(1,2)=f(1,1)*k+b','f(2,2)=f(2,1)*k+b')
k =-(-f(1,2)*f(2,1)+f(1,1)*f(2,2))/(f(2,1)-f(1,1))
b =(f(2,2)-f(1,2))/(f(2,1)-f(1,1))这种情况下解方程为什么得到的不是结果而是表达式,哪位大侠知道
论坛优秀回答者
<h1 style="color:#6 麦片财富积分
关注者: 353
你需要把solve里面的f(1,1)、f(1,2)、f(2,1)、f(2,2)都换成具体的值。要不结果就是这种表达式。
论坛优秀回答者
关注者: 261
尽量不要用字符串做符号运算,因为字符串是被作为一个整体处理的,他不会检测里边有没有别的意思
f = [ 6& & 11;
& & 8& & 12];
s = solve(f(1,2)-(f(1,1)*k+b),f(2,2)-(f(2,1)*k+b));
另外不推荐[k,b] = solve(....这种写法,除非你很清楚matlab输出他们的顺序,否则可能会让你很意外
[k,b] = solve(k-1,b-2)
你以为matlab理解你的意思,知道算出来的k赋值给变量k,b赋值给变量b,但是其实不然,结果如下
可以看出不会帮你对应的到变量名上的,matlab只是按照一定顺序输出
论坛优秀回答者
<h1 style="color:#6 麦片财富积分
关注者: 353
kaaaf123 发表于
尽量不要用字符串做符号运算,因为字符串是被作为一个整体处理的,他不会检测里边有没有别的意思
clear,clc ...
不错,学习了~
<h1 style="color:# 麦片财富积分
kaaaf123 发表于
尽量不要用字符串做符号运算,因为字符串是被作为一个整体处理的,他不会检测里边有没有别的意思
clear,clc ...
谢谢,学习了
<h1 style="color:# 麦片财富积分
尽量不要用字符串做符号运算,因为字符串是被作为一个整体处理的,他不会检测里边有没有别的意思
clear,clc ...
感谢&&学习了
<h1 style="color:# 麦片财富积分
尽量不要用字符串做符号运算,因为字符串是被作为一个整体处理的,他不会检测里边有没有别的意思
clear,clc ...
你好,对于后半部分我大致明白了,前半部分还不是很清楚,你能再解释下吗?谢谢
论坛优秀回答者
关注者: 261
你好,对于后半部分我大致明白了,前半部分还不是很清楚,你能再解释下吗?谢谢 ...
前半部分是哪一部分
<h1 style="color:# 麦片财富积分
前半部分是哪一部分
另外不推荐[k,b]之前的那个例子,貌似不是很理解。matlab新手,还望多指点,谢谢。
<h1 style="color:# 麦片财富积分
前半部分是哪一部分
s.k和s.b是什么意思啊?
站长推荐 /2
快速搭建新能源汽车整车模型及其性能优化
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区}

我要回帖

更多关于 solve解方程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信