24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2193  |  回复: 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的回帖
回帖置顶 ( 共有1个 )

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的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

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的回帖
普通回帖

wenzimu

新虫 (初入文坛)

谢谢  ~~~我看看哈!
2楼2012-05-31 08:30:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wenzimu

新虫 (初入文坛)

谢谢   我看看哈
3楼2012-05-31 08:31:36
已阅   回复此楼   关注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的回帖

wenzimu

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by csgt0 at 2012-05-31 09:48:44
我怎么算出来S没那么大值,比如P=20,T=2时,有
S=
     54.147511926504082426692461168811
0.015906120687527972318210073677971 - 5.1427877848475078473632223503473e-39*i
- 9.09578577077562567753686 ...

上面的图只是相似的,并不是该方程的值,我想通过这个方程得到跟那个图一样的结果,而不是上面图中的值是这个方程的值,给您造成误解,真不好意思!
5楼2012-05-31 12:15:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wenzimu

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by csgt0 at 2012-05-31 09:48:44
我怎么算出来S没那么大值,比如P=20,T=2时,有
S=
     54.147511926504082426692461168811
0.015906120687527972318210073677971 - 5.1427877848475078473632223503473e-39*i
- 9.09578577077562567753686 ...

可以请教一下,您是通过什么软件计算的吗?还有,可以在P=20时,T在[0,30]的前提下计算出所有的S值吗?谢谢!
6楼2012-05-31 12:18:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wenzimu

新虫 (初入文坛)

引用回帖:
7楼: Originally posted by csgt0 at 2012-05-31 13:37:49
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; ...

真的不好意思,还要麻烦您一下~由于第一次接触matlab,所以很多看不大懂,比如代码中的y1和y2的范围您是如何确定的呢?
8楼2012-05-31 19:12:44
已阅   回复此楼   关注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的回帖

wenzimu

新虫 (初入文坛)

引用回帖:
9楼: Originally posted by csgt0 at 2012-06-01 09:22:31
你这是个三次方程,有三个解,y1取得是S1的第一行,也就是第一个解,而S1是通过将T代入g1得到的,g1是通过解方程得到的S关于T的函数。...

谢谢您的回复,那就是说y1和y2的语句写成:
y1=S1(1,subs(g1));
y2=S2(1,sub(g2));   
是这样吗?麻烦您再看一下,谢谢!
10楼2012-06-01 10:49:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wenzimu 的主题更新
信息提示
请填处理意见