解不等式:
-34.07*log10(abs(x+12))-10*log10((x+24)^(-3.407)+(6-x)^(-3.407))+19>0
要求得到一个实数区间.
在下是新手,谁能帮我一下,谢谢
记不等号左边表达式为f,即求解f>0;
1、首先作出f的图像,以确定零点的大致位置。(图形太大,就没上传)
>> ezplot('-34.07*log10(abs(x+12))-10*log10((x+24)^(-3.407)+(6-x)^(-3.407))+19',[-30,20])
>> hold on
>> ezplot('0',[-30,20])
得到零点在[-25,-20],[0,5]间。
2、再用fzero求解
[x,fv,ef]=fzero(inline('-34.07*log10(abs(x+12))-10*log10((x+24)^(-3.407)+(6-x)^(-3.407))+19'),-20)
得:
x =
-21.3976
[x,fv,ef]=fzero(inline('-34.07*log10(abs(x+12))-10*log10((x+24)^(-3.407)+(6-x)^(-3.407))+19'),0)
得:
x =
2.0952
故f>0的解为:(-21.3976,2.0952)
~ ~
因为我求这个不等式的解是for循环中的一步,请问一下可不可以不通过观察图像而直接得到方程的零解?
那样的话,可以考虑用solve函数求零解;
或者直接用无约束优化求不等式。
你可以试试~ ~
但是solve解出来的是解析解,而且它也解不了复杂方程.
laosam280
2009-04-27, 12:21
没有办法,只能先用试探法得到解存在的区间
可以考虑用导数的零点来划分
vBulletin® v3.8.3,版权所有 ©2000-2025,Jelsoft Enterprises Ltd.