声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1386|回复: 4

[编程技巧] fzero()问题

[复制链接]
发表于 2008-12-8 15:59 | 显示全部楼层 |阅读模式

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

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

x
本人由于课题需要,你求解一超越方程,如下:
2*(1-x^2)*K-[2-x^2-F*x^2]*L=0;
其中K和L分别是第一类和第二类完全椭圆积分。F已知。其中x的取值范围在[0,1]之间。
编写程序如下:
function y=f1(x)
syms x;
syms F;
double z;
F=0.855;
[K,L]=ellipke(x);
y=2*(1-x^2)*K-[2-x^2-F*x^2]*L;
另在命令窗口输入以下指令:
z=fzero(@f1,[0.01,0.99])
总是出错,不知为何原因,得不到x的值。请各位大侠帮忙指导一下。急呀!
回复
分享到:

使用道具 举报

发表于 2008-12-8 16:30 | 显示全部楼层
贴出错提示
 楼主| 发表于 2008-12-8 21:39 | 显示全部楼层

fzero()问题

出错提示为
Error using ==> ellipke
Input arguments must be real.
如果给出一个x的初值,就没问题。但是现在x是未知量,需要求解。
在给出x的初值为0.1后,执行指令z=fzero(@f1,[0.01,0.99]),就会出现下列错误提示:
Error using ==> fzero
The function values at the interval endpoints must differ in sign.
 楼主| 发表于 2008-12-8 21:43 | 显示全部楼层

fzero()问题

我看说fzero的x0如果是个区间[a,b],则要求使得f(a)与f(b)符号相反。可是我如何知道f(a)与f(b)符号相反呢。本人属于初学者,请大侠给与指导,多谢!
发表于 2008-12-8 21:47 | 显示全部楼层

回复 楼主 sdjnxxr 的帖子

LZ在版面搜索:超越方程
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-29 19:52 , Processed in 0.082153 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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