24小时热门版块排行榜    

查看: 2050  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

poko宝贝

木虫 (正式写手)

[求助] 求助!!!使用 Numerical recipes in C++求解非线性方程组 已有1人参与

Golbally Convergent  for Nonlinear Equation
调用的newt函数。没有学过指针函数什么的,照葫芦画瓢写的很烂。编译提示错误是:
newt.cpp(22): warning #159: declaration is incompatible with previous "fmin" (declared at line 342 of "/usr/include/bits/mathcalls.h"
float fmin(float x[]);
newt.cpp(38): internal error: assertion failed at: "shared/edgcpfe/lower_c99.c", line 2870
f=fmin(x);
^
code如下,其中void *vecfunc(int n,float x[],float fvec[])是很复杂的非线性方程组,这里为了简洁易见,简单列了几个方程,可能解不出来。
Numerical recipes in C++书里格式是 void (*vecfunc)(int n,float x[],float fvec[]),但是调用的时候老出错,就把括号去了。
整个调用的函数包已经打包在附件,急用,请大神帮忙。
//////////////////////////////////////////////////

#include <math.h>
#define NRANSI
#include "nrutil.h"
#include "nrutil.cpp"

#include "newt.cpp"
#include "fdjac.cpp"
#include "fmin.cpp"
#include "lnsrch.cpp"
#include "lubksb.cpp"
#include "ludcmp.cpp"

void *vecfunc(int n, float x[], float fvec[]);
int main()
{
int n;
n=5;
float x[n];
float *fvec;
int *check;

check=ivector(1,n);
fvec=vector(1,n);

newt(x, n, check,&nbsp;&nbsp;vecfunc);

free_ivector(check,1,n);
free_vector(fvec,1,n);
return 1;
}

void *vecfunc(int n,float x[],float fvec[])
{
//float x[5];
//float fvec[5];

fvec[1]=x[1]*x[2]+x[5]-1.0;
fvec[2]=x[1]+x[2]-x[3];
fvec[3]=x[1]*x[4]+x[2]+x[3]-10.0;&nbsp; &nbsp; &nbsp; &nbsp;
fvec[4]=x[1]+x[2]+x[3]-1.0;
fvec[5]=x[4]+x[5]-1.0;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
}
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : Golbally_Convergent__for_Nonlinear_Equation.zip
  • 2017-02-09 13:21:52, 12.55 K

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cob

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
c不是很熟,就用matlab吧,fsolve函数可以解方程组.很方便.
3楼2017-02-10 08:50:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

lijf517

木虫 (小有名气)

这些代码虽然文件后缀是cpp, 但是和C++一毛钱关系都没有,是彻头彻尾的C语言写的,连C++里最基本的STL模板库都不用。如果你是新手刚开始学习数值计算,还是建议使用C++语言,无论是前期编程还是后期维护都比C语言方便的多。关于你的代码, 看起来像是用牛顿迭代法求解非线性方程组的。x应该是位置向量,在迭代前应该赋予初值的。你的代码定义了数组x后没初始化就直接用了。可能有的编译器会自动把x初始化为0, 但这不是个好的变成习惯。还有,在C/C++语言里,数组的索引是从0开始的,你定义的数组大小为5,所以在fvec里只能使用0~4的下标,所以x[5]这种写法是错误的,内存越界了。
2楼2017-02-09 22:04:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

poko宝贝

木虫 (正式写手)

引用回帖:
2楼: Originally posted by lijf517 at 2017-02-09 22:04:55
这些代码虽然文件后缀是cpp, 但是和C++一毛钱关系都没有,是彻头彻尾的C语言写的,连C++里最基本的STL模板库都不用。如果你是新手刚开始学习数值计算,还是建议使用C++语言,无论是前期编程还是后期维护都比C语言方 ...

谢谢。已经改了但是还是有问题。非常感谢。要好好学习一下编程了。
4楼2017-02-13 10:28:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 j5mmowWXNWxv 2026-09-05 3/150 2026-09-06 13:09 by eObJPa4gWmp6
[考博] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 j5mmowWXNWxv 2026-09-05 4/200 2026-09-06 12:49 by eObJPa4gWmp6
[考博] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 j5mmowWXNWxv 2026-09-05 4/200 2026-09-06 12:29 by eObJPa4gWmp6
[找工作] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 jPDp0sc2B7zQ 2026-09-05 7/350 2026-09-06 11:40 by eObJPa4gWmp6
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 jPDp0sc2B7zQ 2026-09-05 7/350 2026-09-06 11:20 by eObJPa4gWmp6
[基金申请] 科研人应该花精力去思考如何解决问题,而不是去凝练问题 +10 瞬息宇宙 2026-09-01 19/950 2026-09-06 11:15 by jiangxuan2004
[教师之家] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 jPDp0sc2B7zQ 2026-09-05 8/400 2026-09-06 11:00 by eObJPa4gWmp6
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 jPDp0sc2B7zQ 2026-09-04 7/350 2026-09-06 11:00 by eObJPa4gWmp6
[论文投稿] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 jPDp0sc2B7zQ 2026-09-04 8/400 2026-09-06 11:00 by eObJPa4gWmp6
[考研] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 jPDp0sc2B7zQ 2026-09-05 4/200 2026-09-06 07:20 by E1iiBLMU2XnD
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +6 7ZYIEW2YWn72 2026-09-04 9/450 2026-09-06 06:00 by E1iiBLMU2XnD
[教师之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +8 CRJ0Aq2FtVH0 2026-09-03 15/750 2026-09-06 05:48 by E1iiBLMU2XnD
[论文投稿] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 jPDp0sc2B7zQ 2026-09-05 5/250 2026-09-06 02:19 by E1iiBLMU2XnD
[基金申请] 面上没中,邀请各位路过的虫友分析一下分数 +12 jackleilei 2026-09-03 13/650 2026-09-05 18:10 by fireguard
[文学芳草园] 两块石头 +6 阿美_Lml888 2026-09-03 8/400 2026-09-05 13:52 by 阿美_Lml888
[文学芳草园] 初秋的晨风 +4 阿美_Lml888 2026-09-04 6/300 2026-09-05 13:51 by 阿美_Lml888
[基金申请] 学科评审组评审是指会评吗? +6 瞬息宇宙 2026-08-31 9/450 2026-09-05 13:11 by haizai99
[博后之家] 广西大学-广州大学招聘博士后 欢迎广大优秀人才!!! +4 SCSIOyxguo 2026-09-03 7/350 2026-09-05 10:39 by Honglianlian
[硕博家园] Ei源刊怎么投 +4 Fengshun9711 2026-09-04 4/200 2026-09-04 19:30 by 研途知予
[硕博家园] 哈尔滨工业大学韩晓军教授课题组招收2027年硕士推免生及博士研究生 +3 灯灯灯灯DDDD 2026-09-03 3/150 2026-09-03 21:22 by 科研皮皮猪
信息提示
请填处理意见