声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2236|回复: 10

[近似分析] 求助:以下方程组怎么解

[复制链接]
发表于 2007-1-16 10:49 | 显示全部楼层 |阅读模式

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

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

x
急需帮忙
以下方程组怎么解
x*(1-Exp[-8z])=1.05;
2x*(1-Exp[-13z])=2.07;
3x*(1-Exp[-21z])=3.22;
4x*(1-Exp[-29z])=5.14;
5x*(1-Exp[-38z])=6.77;
6x*(1-Exp[-49z])=7.36;
其中x,y,z是未知数 请问是否有实数解

[ 本帖最后由 xinyuxf 于 2007-1-17 09:37 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-1-16 22:33 | 显示全部楼层
这个方程组是超静定的,只能得到最小二乘解!
 楼主| 发表于 2007-1-17 17:33 | 显示全部楼层
请问最小二乘解怎么解啊!谢谢你的帮助啊!
发表于 2007-1-17 22:33 | 显示全部楼层
看看《计算方法》或者《数值分析》
发表于 2007-1-18 07:43 | 显示全部楼层
  1. function F = myfun(x)
  2. F = [x(1)*(1-exp(-8*x(2)))-1.05;
  3.     2*x(1)*(1-exp(-13*x(2)))-2.07;
  4.     3*x(1)*(1-exp(-21*x(2)))-3.22;
  5.     4*x(1)*(1-exp(-29*x(2)))-5.14;
  6.     5*x(1)*(1-exp(-38*x(2)))-6.77;
  7.     6*x(1)*(1-exp(-49*x(2)))-7.36];
复制代码



  1. x0 = [1; 1];           % Make a starting guess at the solution
  2. options=optimset('Display','iter');   % Option to display output
  3. [x,fval] = fsolve(@myfun,x0,options)  % Call optimizer
复制代码
 楼主| 发表于 2007-1-18 09:19 | 显示全部楼层
谢谢大家的帮忙!上面的步骤是用matlab运行的吗? 不好意思,由于一时疏忽,方程组漏写了一个未知量 正确如下
x*(1-y*Exp[-8z])=1.05;
2x*(1-y*Exp[-13z])=2.07;
3x*(1-y*Exp[-21z])=3.22;
4x*(1-y*Exp[-29z])=5.14;
5x*(1-y*Exp[-38z])=6.77;
6x*(1-y*Exp[-49z])=7.36;
发表于 2007-1-19 09:20 | 显示全部楼层
原帖由 lzsmydear2000 于 2007-1-18 09:19 发表
谢谢大家的帮忙!上面的步骤是用matlab运行的吗? 不好意思,由于一时疏忽,方程组漏写了一个未知量 正确如下
x*(1-y*Exp)=1.05;
2x*(1-y*Exp)=2.07;
3x*(1-y*Exp)=3.22;
4x*(1-y*Exp)=5.14;
5x*(1-y*Exp) ...


修改一下gghhjj提供的代码中的function F = myfun(x)就行了

gghhjj给的是matlab程序
 楼主| 发表于 2007-1-20 10:12 | 显示全部楼层
参照上面的步骤我怎么调试不成功呀,中间老是提示错误。
提示“ Strings passed to EVAL cannot contain function declarations.”
谁能把具体步骤教给我一下,谢谢了!
发表于 2007-1-20 10:43 | 显示全部楼层
  1. function F = myfun(x)
  2. F = [x(1)*(1-x(2)*exp(-8*x(3)))-1.05;
  3.     2*x(1)*(1-x(2)*exp(-13*x(3)))-2.07;
  4.     3*x(1)*(1-x(2)*exp(-21*x(3)))-3.22;
  5.     4*x(1)*(1-x(2)*exp(-29*x(3)))-5.14;
  6.     5*x(1)*(1-x(2)*exp(-38*x(3)))-6.77;
  7.     6*x(1)*(1-x(2)*exp(-49*x(3)))-7.36];
复制代码



  1. x0 = [1; 1; 1];           % Make a starting guess at the solution
  2. options=optimset('Display','iter','NonlEqnAlgorithm','gn');   % Option to display output
  3. [x,fval] = fsolve(@myfun,x0,options)  % Call optimizer
复制代码



                                                     Directional
Iteration  Func-count    Residual     Step-size      derivative
     0           4         6.33793
     1          11         6.33793       1e-008           -11.5
     2          21         6.33496    2.87e-005       1.53e+003
     3          28         6.33462    2.87e-005           -11.6
     4          35        0.970351          1.1            1.98
Iteration matrix ill-conditioned - Switching to LM method.
     5          42        0.814203            1      -3.05e-009       0.247144
Optimizer appears to be converging to a minimum that is not a root:
Sum of squares of the function values is > sqrt(options.TolFun).
Try again with a new starting point.
x =
    1.2464
-109.1008
    4.6427

fval =
    0.1964
    0.4227
    0.5191
   -0.1545
   -0.5381
    0.1182

评分

1

查看全部评分

 楼主| 发表于 2007-1-20 21:09 | 显示全部楼层
非常感谢!
发表于 2007-1-31 20:44 | 显示全部楼层
这儿好人真多
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-25 14:19 , Processed in 0.195559 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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