Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-03-16, 05:57   #1
evaline.duan
初级会员
 
注册日期: 2009-02-25
年龄: 37
帖子: 5
声望力: 0
evaline.duan 正向着好的方向发展
问题 [求助]怎样求和含有未知数的表达式?

请高人指点:
现在有一个表达式:(x-m)/(x-0.5), 其中x为未知数,m按1步长递增(m=m+1)现在已知的是这个表达式一定数量求和的值,怎么用循环把这个表达式的求和表示出来并求x呢?

比如m从m=1开始,m=1:1:5, 已知求和的值为1
则S=(x-1)/(x-0.5)+(x-2)/(x-0.5)+(x-3)/(x-0.5)+(x-4)/(x-0.5)+(x-5)/(x-0.5)=1

自己run了一下,一直显示Undefined function or method 'lt' for input arguments of type 'sym'.不知为何???
project 马上deadline了,还请哪位高手指点迷津:lovely:
evaline.duan 当前离线   回复时引用此帖
旧 2009-03-16, 13:09   #2
zhyanchao
初级会员
 
注册日期: 2008-11-30
年龄: 24
帖子: 27
声望力: 17
zhyanchao 正向着好的方向发展
默认 回复: [求助]怎样求和含有未知数的表达式?

以m=1:5,求和的值为1为例:
syms x;
m=1:5;
s=sum((x-m)/(x-0.5))
solve(f-1)
结果
s=(x-1)/(x-1/2)+(x-2)/(x-1/2)+(x-3)/(x-1/2)+(x-4)/(x-1/2)+(x-5)/(x-1/2)
ans =

29/8
zhyanchao 当前离线   回复时引用此帖
旧 2009-03-16, 21:34   #3
evaline.duan
初级会员
 
注册日期: 2009-02-25
年龄: 37
帖子: 5
声望力: 0
evaline.duan 正向着好的方向发展
问题 回复: [求助]怎样求和含有未知数的表达式?

Thanks a lot. 自己试着编写了类似程序:
syms x;
y=0;
p=0;
syms x;
while (p<10)
p=p+1;
y=y+trimf1(x,[p p+1])
end;
solve(y-0.25),显示出每一步y的表达式为:
y =

(x-2)/(x-1)

y =

(x-2)/(x-1)+(x-3)/(x-2)

y =

(x-2)/(x-1)+(x-3)/(x-2)+(x-4)/(x-3)

y =

(x-2)/(x-1)+(x-3)/(x-2)+(x-4)/(x-3)+(x-5)/(x-4)

y =

(x-2)/(x-1)+(x-3)/(x-2)+(x-4)/(x-3)+(x-5)/(x-4)+(x-6)/(x-5)

y =

(x-2)/(x-1)+(x-3)/(x-2)+(x-4)/(x-3)+(x-5)/(x-4)+(x-6)/(x-5)+(x-7)/(x-6)

y =

(x-2)/(x-1)+(x-3)/(x-2)+(x-4)/(x-3)+(x-5)/(x-4)+(x-6)/(x-5)+(x-7)/(x-6)+(x-8)/(x-7)

y =

(x-2)/(x-1)+(x-3)/(x-2)+(x-4)/(x-3)+(x-5)/(x-4)+(x-6)/(x-5)+(x-7)/(x-6)+(x-8)/(x-7)+(x-9)/(x-8)

y =

(x-2)/(x-1)+(x-3)/(x-2)+(x-4)/(x-3)+(x-5)/(x-4)+(x-6)/(x-5)+(x-7)/(x-6)+(x-8)/(x-7)+(x-9)/(x-8)+(x-10)/(x-9)

y =

(x-2)/(x-1)+(x-3)/(x-2)+(x-4)/(x-3)+(x-5)/(x-4)+(x-6)/(x-5)+(x-7)/(x-6)+(x-8)/(x-7)+(x-9)/(x-8)+(x-10)/(x-9)+(x-11)/(x-10)
输入solve命令:solve(y-0.25)后,结果却显示:
x =

1.0786898967617613085887798657648
2.0855661586263124742606885245834
3.0901392962871015446663250353338
4.0940124115549277509671954064637
5.0977113712866084211968191987618
6.1015696954689081199203797592360
7.1059563518414547306012042485634
8.1115164312857313681455235886801
9.1199593222558947264347081304284
10.140520090272325196244017267826
明显和方程式x的求解值不符么,按计算,y的求解值x不会这么多的吧,应该只有一个的么,怎么会有这么多呢?不知matlab是怎么计算的,为什么计算出来不是我想要的答案呢?
恳请高手指点!:lovely:
evaline.duan 当前离线   回复时引用此帖
旧 2009-03-16, 21:38   #4
evaline.duan
初级会员
 
注册日期: 2009-02-25
年龄: 37
帖子: 5
声望力: 0
evaline.duan 正向着好的方向发展
灯泡 回复: [求助]怎样求和含有未知数的表达式?

忘记说明了,trimf1(x,[a b])=(x-b)./(x-a)
谢谢!
evaline.duan 当前离线   回复时引用此帖
旧 2009-03-17, 09:50   #5
zhyanchao
初级会员
 
注册日期: 2008-11-30
年龄: 24
帖子: 27
声望力: 17
zhyanchao 正向着好的方向发展
默认 回复: [求助]怎样求和含有未知数的表达式?

上面的求解结果是正确的。你把y的表达式通分以后,分子就是一个十次方程,所以它的解是应该有十个的。
zhyanchao 当前离线   回复时引用此帖
旧 2009-03-20, 05:46   #6
evaline.duan
初级会员
 
注册日期: 2009-02-25
年龄: 37
帖子: 5
声望力: 0
evaline.duan 正向着好的方向发展
默认 回复: [求助]怎样求和含有未知数的表达式?

Make sense! Thanks a lot!
evaline.duan 当前离线   回复时引用此帖
旧 2009-03-20, 09:35   #7
xiezhh
普通会员
 
注册日期: 2007-08-07
帖子: 64
声望力: 20
xiezhh 是一个将要出名的人
默认 回复: [求助]怎样求和含有未知数的表达式?

我认为没有必要用循环,还可以这样
syms x m
f=symsum((x-m)/(x-0.5),m,1,5);
x=solve(f-1,x)

结果:
x = 29/8
xiezhh 当前离线   回复时引用此帖
旧 2009-03-23, 04:57   #8
evaline.duan
初级会员
 
注册日期: 2009-02-25
年龄: 37
帖子: 5
声望力: 0
evaline.duan 正向着好的方向发展
默认 回复: [求助]怎样求和含有未知数的表达式?

果然是高手,谢谢提示!
evaline.duan 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 22:25


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.