声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1115|回复: 4

[编程技巧] 关于fsolve一个很火急的问题.谢谢啊.

[复制链接]
发表于 2008-6-3 22:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
最近被这个问题捆了好多天了.还是看代码吧.
a=cf_1.a;
b=cf_1.b;
c=cf_1.c;
aa=cf_2.a;
bb=cf_2.b;
cc=cf_2.c;
dd=cf_2.d;
fun='0.5*a*(1-exp(b*x))./(1+exp(c*x))-aa*(1-exp(bb*x))./(1+dd*exp(cc*x))';
[x,y]=fsolve(fun,0)

cf_1,cf_2是前面程序得到的结构体,相当于a,b,c,aa,bb,cc,dd是已知的阿,为什么在fsolve这个方程的时候老是报错,说是不认识fun里的a,b,c,aa,bb,cc,dd呢,请问我怎么样才能解出这个方程阿。只要能解出就行了,多谢各位好心人了,本人在等啊。
回复
分享到:

使用道具 举报

发表于 2008-6-3 22:27 | 显示全部楼层
fun定义有问题哦,价格引号就成字符串了不是表达式:@L
      看看fsolve的帮助,或者看看一些帖子里的用法

评分

1

查看全部评分

 楼主| 发表于 2008-6-4 11:17 | 显示全部楼层

回复 2楼 的帖子

引号去掉了又不认识x了,到底我该怎么写啊,才能解出这个方程,只要能解出就行了。多谢了。
发表于 2008-6-4 11:51 | 显示全部楼层
[x,y]=fsolve(@fun,0);
function F = fun(x)
F = 0.5*a*(1-exp(b*x))./(1+exp(c*x))-aa*(1-exp(bb*x))./(1+dd*exp(cc*x));
这样应该可以了,还有可以把第一行的x,y换成别的字母代替试一下

评分

1

查看全部评分

发表于 2008-6-4 11:58 | 显示全部楼层

fun=inline('0.5*a*(1-exp(b*x))./(1+exp(c*x))-aa*(1-exp(bb*x))./(1+dd*exp(cc*x))','x');

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-23 07:21 , Processed in 0.068452 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表