24小时热门版块排行榜    

查看: 2277  |  回复: 13
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

wenzimu

新虫 (初入文坛)

[求助] 1stopt或matlab如何求解以下的非线性方程并拟合出相应曲线?

有一非线性方程为:
               -5022.5+1.3535*S-8.985*10E(-5)*S^2+0.1257*T-5.574*10E(-5)*S*T+5.106*S^2*T+4P/S+0.0028P-23.079*P*S=0

      想令1.  P=20时,T在(0,30)连续变化的前提下求出对应S的值,并拟合出相应的曲线;
            2.  P=50时,T在(0,30)连续变化的前提下求出对应S的值,并拟合出相应的曲线;
     请问这种情况在1stopt或matlab可以实现吗,请高手帮忙,谢谢!(类似以下的图形)

拟合图
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

感谢参与,应助指数 +1
我怎么算出来S没那么大值,比如P=20,T=2时,有
S=
     54.147511926504082426692461168811
0.015906120687527972318210073677971 - 5.1427877848475078473632223503473e-39*i
- 9.0957857707756256775368611954232 + 5.1427877848475078473632223503473e-39*i
showmethemoney
4楼2012-05-31 09:48:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★
wenzimu: 金币+1 2012-05-31 14:39:33
dbb627: 金币+2, 感谢应助 2012-05-31 22:51:05
wenzimu: 回帖置顶 2012-06-01 12:30:24
clc
clear
syms P T S
f=-5022.5+1.3535*S-8.985*10^(-5)*S.^2+0.1257*T-5.574*10^(-5)*S*T+5.106*S.^2*T+4*P./S+0.0028*P-23.079*P.*S;
P=20;
g1=solve(subs(f),S)
P=50;
g2=solve(subs(f),S);
T=1:.1:30;
S1=subs(g1);
S2=subs(g2);
y1=S1(1,;
y2=S2(1,;
plot(T,y1,T,y2)

有三个解,好像第一个比较符合你的
showmethemoney
7楼2012-05-31 13:37:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

引用回帖:
8楼: Originally posted by wenzimu at 2012-05-31 19:12:44
真的不好意思,还要麻烦您一下~由于第一次接触matlab,所以很多看不大懂,比如代码中的y1和y2的范围您是如何确定的呢?...

你这是个三次方程,有三个解,y1取得是S1的第一行,也就是第一个解,而S1是通过将T代入g1得到的,g1是通过解方程得到的S关于T的函数。
showmethemoney
9楼2012-06-01 09:22:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

不是啊
CODE:
y1=S1(1,:);
y2=S2(1,:);
plot(T,y1,T,y2)

我只不过把它突出一下,用y1,y2表示出来,不用也可以,就是取S1和S2中的3行的第1行
CODE:
plot(T,S1(1,:),T,S2(1,:))

当然你要的可能不是第一行,也可能是第2、3行,把1改成2或者3就行了
showmethemoney
11楼2012-06-01 10:59:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

S1,S2就是解
showmethemoney
13楼2012-06-01 11:13:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wenzimu 的主题更新
信息提示
请填处理意见