Matlab 求数值解我想求 x-mod(x,100)=49/0.15 的解,结果发现没有解析解.可是我不知道怎么写matlab命令或者函数让它求出数值解,可以限定一个范围,例如 300
来源:学生作业帮助网 编辑:六六作业网 时间:2025/02/02 19:07:10
Matlab 求数值解我想求 x-mod(x,100)=49/0.15 的解,结果发现没有解析解.可是我不知道怎么写matlab命令或者函数让它求出数值解,可以限定一个范围,例如 300
Matlab 求数值解
我想求 x-mod(x,100)=49/0.15 的解,结果发现没有解析解.可是我不知道怎么写matlab命令或者函数让它求出数值解,
可以限定一个范围,例如 300
Matlab 求数值解我想求 x-mod(x,100)=49/0.15 的解,结果发现没有解析解.可是我不知道怎么写matlab命令或者函数让它求出数值解,可以限定一个范围,例如 300
ezplot('x-mod(x,100)-49/0.15',[0 1000])
这是函数f(x)=x-mod(x,100)-49/0.15
在0~1000范围里的图像
可见,如果有数有解,解会出现在x=400附近
这是函数值最接近0附件的图像
ezplot('x-mod(x,100)-49/0.15',[350 450])
可见,函数是不连续的正好在x=400前后出现跳变
如果x<400得到的值是-26.66667
如果x>=400得到的值是73.33333
所以函数的确是没有解的,因为不可能有一个x取值使得f(x)=0
退而求其次,你可以用fzero函数平时用来数值解方程的函数,来求得这个跳变点
fun=@(x) x-mod(x,100)-49/0.15;
fzero(fun,0)
ans =
400.0000
一般如果是连续的函数,fzero(fun,x0)可以找出函数在x0点附近的数值近似解
fzero的原理是找出函数前后符号相反的点,不断缩小区间知道满足精度
用于你这个函数,fzero找到一个点400,之前f(x)<0,之后f(x)>0
但实际上,f(x)取不到0