声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1501|回复: 2

非线性方程求解!论文急用,大家救命!

[复制链接]
发表于 2006-1-4 17:19 | 显示全部楼层 |阅读模式

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

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

x
上个月小弟在这里请教过一次,感谢大家给予的指导。现在又遇到一个问题,我用matlab写了个割线法迭代求解非线性方程,但是结果却不令人满意,经常会出来复数解,请问高手如何解决?是方程本身的问题还是算法的问题?或者是初值给的不好,小弟最近就要交论文,而这个问题还没有解决,很着急,请大家不吝赐教!我在这里先行谢过!!!<BR><BR>非线性方程:y2./D-dp./(2*D)-(b*(1-2*a)*(8-12*y2./(a.^2*D)).^(1/3))./((1-a.^2*(8-12*y2./(a.^2*D)).^(2/3)).^(1/2))=0,未知数为y2。其他已知,对于这个方程,我想变化D,对于不同的D求出不同的y2,再得出D与y2的关系。<BR><BR>我编了一个函数:<BR>function y=fun2(y2,D,dp,b,a)<BR>y=y2./D-dp./(2*D)-(b*(1-2*a)*(8-12*y2./(a.^2*D)).^(1/3))./((1-a.^2*(8-12*y2./(a.^2*D)).^(2/3)).^(1/2));<BR><BR>割线法程序:<BR>y20=0;<BR>y21=0.0001;<BR>y22=y21-(fun2(y21,D,dp,b,a))*(y21-y20)./((fun2(y21,D,dp,b,a))-(fun2(y20,D,dp,b,a)));<BR>n=1;<BR>while(abs(y21-y20)&gt;=1e-12)&amp;(n&lt;=10000)<BR>    y20=y21;y21=y22;<BR>    y22=y21-(fun2(y21,D,dp,b,a))*(y21-y20)./((fun2(y21,D,dp,b,a))-(fun2(y20,D,dp,b,a)));<BR>    n=n+1;<BR>end<BR>
回复
分享到:

使用道具 举报

发表于 2006-1-5 10:33 | 显示全部楼层

回复:(herotears)非线性方程求解!论文急用,大家救...

x0=input('input the initial value: x0=')<BR>%x0=10;<BR>%x1=2;<BR>x1=x0-f(x0)/g(x0);<BR>ge=1;<BR>flag=0;<BR>S=10^3;<BR>gmax=100;<BR>EPS=0.00001;<BR><BR>while 1<BR>y0=f(x0); y1=f(x1);<BR>k=1;<BR>while y0==y1;<BR>x0=x0+k*EPS;<BR>y0=f(x0);<BR>k=5*k;<BR>if k&gt;s<BR>flag=1;<BR>break;<BR>end<BR>end<BR><BR>if flag==1<BR>disp('can not find the needed initial value x0');<BR>break;<BR>end<BR><BR>x=x1-(x1-x0)*f(x1)/(f(x1)-f(x0));<BR><BR>if abs(x-x1)<EPS<BR>x1=x;<BR>break;<BR>end<BR><BR>x0=x1; <BR>x1=x;<BR>ge=ge+1;<BR><BR>if ge&gt;gmax<BR>disp('发散或在给定次数内无法求解')<BR>break;<BR>end<BR><BR>end<BR>ge<BR>x1<BR><BR><BR>试一下这个割线法程序
 楼主| 发表于 2006-1-5 17:43 | 显示全部楼层
多谢拉,好像很复杂啊,偶是采鸟,回头我好好研究研究,现在没有时间搞这个了,我找到一个曲线救国的方法,不解它了先!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-26 05:24 , Processed in 0.064749 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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