声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4056|回复: 19

[应用数学] 带求和式的指数方程怎么解?

[复制链接]
发表于 2009-3-13 21:51 | 显示全部楼层 |阅读模式

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

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

x
请问附件图片中的方程怎么解?
式中D为未知待求量,其它均已知,这里给定
a=[1/3,1/3,1/3];
d=[0.12,0.03,0.45];
n=3


solve(sum(abs(d(1:3))*a(1:3)^(D-1))=1);%这个不对呀
d.JPG
回复
分享到:

使用道具 举报

发表于 2009-3-14 16:46 | 显示全部楼层
fsolve, 或者直接画图可以近似作出来
 楼主| 发表于 2009-3-14 17:42 | 显示全部楼层
function F=fun(D)
a=[1/3,1/3,1/3];
d=[0.12,0.03,0.45];
n=3;
F=[sum(abs(d(1:3))*a(1:3)^(D-1))-1];


命令行输入
clear all; D0=0; fsolve(@F, D0);

错误提示
??? Error using ==> mpower
Matrix must be square.
Error in ==> F at 5
F=[sum(abs(d(1:3))*a(1:3)^(D-1))-1];

请问是不是求和处不能这样写?
发表于 2009-3-14 20:29 | 显示全部楼层

回复 板凳 zhly 的帖子

目前无matlab试
试试F=abs(d)*a'.^(D-1)-1;

[ 本帖最后由 ChaChing 于 2009-3-14 20:30 编辑 ]
发表于 2009-3-14 21:51 | 显示全部楼层
你的意思是(d_1+d_2+d_3)*(1/3)^(D-1)=1;即
0.6*(1/3)^(D-1)=1;
D=1+(ln0.6/ln3);
可以这样理解么。
 楼主| 发表于 2009-3-14 22:16 | 显示全部楼层


不是你理解的这个意思,应该是
|d(1)|*a(1)^(D-1)+|d(2)|*a(2)^(D-1)+|d(3)|*a(3)^(D-1)=1
这里我只是取n=3,实际中n比较大
 楼主| 发表于 2009-3-14 22:20 | 显示全部楼层
原帖由 ChaChing 于 2009-3-14 20:29 发表
目前无matlab试
试试F=abs(d)*a'.^(D-1)-1;



我试了
把F=[sum(abs(d(1:3))*a(1:3)^(D-1))-1];改为F=[abs(d)*a'.^(D-1)-1];
还是出错,出错信息:
Optimization terminated: first-order optimality is less than options.TolFun.

而且我不太理解你这个式子的含义F=abs(d)*a'.^(D-1)-1,能解释一下a为什么用a'吗?谢谢
发表于 2009-3-14 22:21 | 显示全部楼层
function F=fun(D,a,d)
F=abs(d)*a'.^(D-1)-1;

命令行输入
a=[1/3,1/3,1/3]; d=[0.12,0.03,0.45];
D0=0; fsolve(@F, D0,a,b);

[ 本帖最后由 ChaChing 于 2009-3-15 05:41 编辑 ]
 楼主| 发表于 2009-3-14 22:32 | 显示全部楼层
这里的b是不是改为d呀?

function F=fun(D,a,d)
F=abs(d)*a'.^(D-1)-1;

a=[1/3,1/3,1/3]; d=[0.12,0.03,0.45];
D0=0; fsolve(@F, D0,a,d);

??? Input argument "d" is undefined.

Error in ==> F at 8
F=abs(d)*a'.^(D-1)-1;

Error in ==> fsolve at 180
        fuser = feval(funfcn{3},x,varargin{:});
发表于 2009-3-14 22:33 | 显示全部楼层

回复 6楼 zhly 的帖子

但是楼主给的a(1)=a(2)=a(3),
 楼主| 发表于 2009-3-14 22:49 | 显示全部楼层

回复10楼side

我这里给出的a(1)=a(2)=a(3)了,这样的话可以这样解了a^(D-1)=1/sum(d),进而得到
D=1-lg(sum(d))/lga
你说的方法可行,谢谢你

当a(1)、a(2)、a(3)不相等时,需要一个通用的解法
 楼主| 发表于 2009-3-14 22:56 | 显示全部楼层

谢谢side,ChaChing两位帮忙

要锁门了,不得不回去了,多谢side,ChaChing两位帮忙,明天再继续改程序了。
发表于 2009-3-15 06:13 | 显示全部楼层
1.矩阵的次方是使用mpower, 如a^3意义是a*a*a, 所以一定要是方阵square matrix (for 3F)
2.首先'Optimization terminated: first-order optimality is less than options.TolFun.'并非报错, 而是告诉你收敛了 (for 7F)
3.为什么使用转置a', 两个row vector可以相乘吗?当然是row vector乘column vector才是连加的意义

水平有限, 不知是否解释清楚
 楼主| 发表于 2009-3-15 10:53 | 显示全部楼层
function F=fun(D)
a=[1/3,1/3,1/3];
d=[0.12,0.03,0.45];
n=3;
F=[abs(d)*a'.^(D-1)-1];
命令行输入
clear all; D0=1; fsolve(@F, D0);
Optimization terminated: first-order optimality is less than options.TolFun.

ans=0.53503
 楼主| 发表于 2009-3-15 11:25 | 显示全部楼层
原帖由 ChaChing 于 2009-3-15 06:13 发表
1.矩阵的次方是使用mpower, 如a^3意义是a*a*a, 所以一定要是方阵square matrix (for 3F)
2.首先'Optimization terminated: first-order optimality is less than options.TolFun.'并非报错, 而是告诉你收敛了 (fo ...


谢谢你详细解释,还有些疑问
1.方程里,a不是方阵,a'=[1/3;1/3;1/3],1<D<2,因此a'^(D-1)是一个非方阵的非整数次幂,程序也能运行得通了,最终结果是D=D0+ans=1+0.53503吗?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-9 09:13 , Processed in 0.077379 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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