求教:用matlab fsolve函数做出下列函数的y-x关系曲线图? 1=(x*y-2)^0.5*(x+x*(x-1/y)-(x-1/y)^2)

比较以下三个方程解的大小:2^x+x=1;2^x+x=2;3^x+x=3;请高手给出解答过程._百度作业帮
拍照搜题,秒出答案
比较以下三个方程解的大小:2^x+x=1;2^x+x=2;3^x+x=3;请高手给出解答过程.
比较以下三个方程解的大小:2^x+x=1;2^x+x=2;3^x+x=3;请高手给出解答过程.
这肯定是考你单调性的问题.看三个方程,前两个共同点是都有2^x+x,那么就考察f(x)=2^x+x这个函数好了.一看就知道单调递增,2^x单调递增,x也单调递增,俩单调递增函数加一块还是单调递增.本来我们说单调递增指x越大f就越大,反过来也要会,就是f越大的时候x必然也越大;这道题反过来用,第一个是f(x)=1,第二个f=2,显然是f越来越大的过程,对应到x上也越来越大.所以解的顺序是第一个小于第二个.再比第三个的关系.不过第三个不太好办,它比起第一、二个和第一个来方程右边、底数都在变;但好在x增大3^x+x也是增大的,所以我们可以先把第一个的结果x=a、第二个的结果x=b带进第三个方程左边去,看看右边是比3大还是小.设2^t=3,这样便于形式上和前两个方程沟通.只需要清楚t是个大于1的常数即可.①对于x=a情况,第三个方程左边写成(2^a)^t+a=(2^a)^t+1-2^a=(2^a)[(2^a)^(t-1)-1]+1,要拿它和3比,就要拿(2^a)[(2^a)^(t-1)-1]和2比,先估算一下2^a=1-a≤1,所以(2^a)[(2^a)^(t-1)-1]≤0<2,所以要让第三个方程右边等于3,解肯定比第一个方程的a大.②对于x=b,带进去是(2^b)[(2^b)^(t-1)-1]+2,要拿它去和3比,就要拿(2^b)[(2^b)^(t-1)-1]和1去比,就先要估计一下b的范围.对于第二个方程,b=0.5的时候右边=1.914…比2小,b=0.75的时候2^b+b≈0.75+√2.828>2,t-1是正数(估计一下大概是0.5到0.75之间),于是(2^b)[(2^b)^(t-1)-1]≤√2.828(2.828^0.375-1)<1(如果用手算的话估算量非常大),所以对于第三个方程,x=b右边还不到3,解比b更大.综上所述,第三个方程的解最大,第二个中等,第一个最小.我用计算器帮楼主算了一下精确的解,第一个方程其实不用说解是x=0,第二个解x≈0.543,第三个解x≈0.742,结果是没问题的.总结一下,这道题的思路就是灵活运用单调性,它包括两个方面:①比较解比某个数大还是小②估算解的范围.在做①这件事的时候要用到②,对于高一初学者还是比较有难度的.当然我的方法不一定是最简单的,也可能有错,仅供参考……
2^x+x到底等于几?
把题目数值看错了,更正如下:【方法一】直接计算x1=fsolve(&#39;2^x+x-1&#39;,0)x2=fsolve(&#39;2^x+x-2&#39;,0)x3=fsolve(&#39;3^x+x-3&#39;,0)解得:x1=0x2=0.481x3=0.700由此可知:x3&x2&x1&&&&【方法二】作图比较2^x+x=1,2^x+x=2,3^x+x=3的解的大小&f12=ezplot(&#39;2^x+x&#39;,[0&3]);set(f12,&#39;Color&#39;,&#39;red&#39;)& & & %设置ezplot线条的颜色set(f12,&#39;LineWidth&#39;,4)& & &%设置ezplot线条的宽度hold&on&;ezplot(&#39;3^x+x&#39;,[0&3]);legend(&#39;f1,2&#39;,&#39;f3&#39;)ezplot(&#39;0*x+y-1&#39;)& & & & &%主要通过ezplot可以画二元函数的特点,画出y=1的图像。%注意x的系数为0ezplot(&#39;0*x+y-2&#39;)ezplot(&#39;0*x+y-3&#39;)grid&onhold&off&&&局部放大图:&
f(x)=2^x+x,为增函数,所以2^x+x=1的解2^...
不需要很准确啊。扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
MATLAB应用_求解非线性方程
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口MATLAB求解数学问题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
&&&#165;3.00
喜欢此文档的还喜欢
MATLAB求解数学问题
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:936.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢matlab中fsolve函数求解中的一个问题_百度知道
matlab中fsolve函数求解中的一个问题
方差为0:x0 = 4000你好; b2 = 2,其中a1,如果要取成服从对应分布的随机值:function F = myfun(x)Ft = rand.5,可进一步交流,1]区间的某一固定值(如,而不是某一固定值); b3 = 1,向你请教一个问题:估计m文件中Ft = rand语句有问题,方差为1000的正态分布随机值.8:0,b1,b3都已经是固定值;a3)^b3)-3*[1-Ft],a2.2551),b2;iter&#39; a2 = 3500;另外(1)以上程序中a1;
[x;a1)^b1)+exp(-(x&#47,b3都已取成服从对应分布的随机值作为他们的固定值,1]区间均匀分布的随机值赋给Ft,应该怎么改程序;),b3为服从均值为2.5的正态分布随机值,a3,Ft为[0,请高手指点(我所要求的Ft是某一随机值。疑问,options) 输出结果始终与x0相同(即x0改变后,x0,fval] = fsolve(@myfun,1]均匀分布的随机值。我自己编的程序如下,a2:m文件;a2)^b2)+exp(-(x&#47,则输出不同于x0的初值(这时理论上应该是正确的);a1 = 3000,a3; a3 = 4200?请给予详细指点;主程序,b2,b2!如有未表述清楚之处; b1 = 2;F = exp(-(x&#47;
options=optimset(&#39;a1)^b1)+e^(-(x&#47;,输出值都是与x0相同的值);(2)如果a1,&#39,这显然不对,b1,如果将Ft改成[0,b1,重复取10个[0,计算得到对应10个x值;a3)^b3)=3*(1-Ft),万分感谢:求解方程e^(-(x&#47,a3为服从均值为4000,程序该怎么改;Display&#39,a2;a2)^b2)+e^(-(x&#47
提问者采纳
3)嗯;)):a&nbsp,b;=&nbsp,&=&=&optimset(&#39;rand(1;=&off&#39;0,&@(a,10) x&b&nbsp,而是a的值总是太大;2&nbsp,b,&a&&=&%&nbsp./a);&f&nbsp,Ft)fsolve(@(x)sum(exp(-(x;Display&#39;end至于为什么x总等于 0;=&[].5);Ft&nbsp,&#39,&nbsp.^b))-3*(1-Ft);sqrt(0;[1&,不是程序有错。要实现你的要求程序如下;=&nbsp,&nbsp,每次调用函数Ft都改变了!你可以试试小点的a,&nbsp,&f(a;normrnd(2;1;for&[x&sqrt(1000);normrnd(4000,&x&1;3);&3],确实是你Ft = rand的错误,Ft)],比如a = [1 2 3]
提问者评价
谢谢,我已经测试过程序了,完全正确,也确实是由于a值较大的原因,使得有时x的结果会为零。
其他类似问题
fsolve的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁&& 查看话题
求助!matlab用fsolve函数求解非线性方程组的问题!
我要用fsolve函数求解一个非线性方程组,程序代码如下:
function p=fsolveDemon1
x0=unifrnd(0.1,0.1);
options=optimset('MaxFunEvals',20000,'MaxIter',2000);
p=fsolve(@f,x0,options);
function F=f(x)
syms I1 I2
可是运行总是出现错误,请求各位高手帮帮我,我刚开始学习matlab,发现这个论坛特别好,刚刚注册,还没有太多的金币送给大家!不胜感激!!!
有人看到我的帖子么?大家知道么?帮我看一下。十分感谢! LZ你好,请问下 MatLab&&5.2 这个软件哪里能有下载的?谢谢:hand: : Originally posted by jinpeng_6118 at
LZ你好,请问下 MatLab&&5.2 这个软件哪里能有下载的?谢谢:hand: 为什么要5.2的呢?我用的是7.0的!需要的话,可以发给你!我也不知道哪里有5.2的,不好意思啊! : Originally posted by 521438 at
为什么要5.2的呢?我用的是7.0的!需要的话,可以发给你!我也不知道哪里有5.2的,不好意思啊! 好的 ,谢谢你了,麻烦你把软件发到我邮箱吧::hand::victory: : Originally posted by jinpeng_6118 at
好的 ,谢谢你了,麻烦你把软件发到我邮箱吧:jinpeng_:hand::victory: 已经发给你了,你查收一下吧! 弱弱问下,I1 I2没有定义? : Originally posted by 521438 at
已经发给你了,你查收一下吧! 已经收到了,非常感谢你的帮助:victory: : Originally posted by jiakai003 at
弱弱问下,I1 I2没有定义? 其实我是把自己的方程简化了下,我这里有6个未知数(I1,I2,r1,r2,a1,a2.)3个方程,求不出来具体的数值的。具体方程如下:
我加了约束条件a1=a2,这样还有5个未知数于是我就先不管I1,I2。只要能求出r1,与r2,以及r1与a1之间的关系就行!即r1/r2=具体的数值,r1/a1=具体的数值就行。看看你会么? 你的函数里包含符号I1,I2,肯定解不出数值解的。
不用简化,把数学模型贴出来看看。 : Originally posted by xiegangmai at
你的函数里包含符号I1,I2,肯定解不出数值解的。
不用简化,把数学模型贴出来看看。 我的函数表达式如下:B=I*r^2/2*(r^2+z^2)^(-3/2);
方程组分别是:
I1*d3Bdz3(z=a1)+I2*d3Bdz3(z=a2)=0
I1*d5Bdz5(z=a1)+I2*d5Bdz5(z=a2)=0
I1*d7Bdz7(z=a)+I2*d7Bdz7(z=a2)=0备注:这里的d3Bdz3,d5Bdz5,d7Bdz7是B对z求3,5,7阶导数。然后我程序里面的式子就是分别求出3,5,7阶导数后的表达式!版主帮我看看怎么修改程序啊?谢谢! MATLAB求解参数方程基本是忽悠人,建议你把参数代入方程,直接用他的非线性方程组求解方法来解。因为大多非线性方程组没有解析解。 : Originally posted by wjx0162 at
MATLAB求解参数方程基本是忽悠人,建议你把参数代入方程,直接用他的非线性方程组求解方法来解。因为大多非线性方程组没有解析解。 我是把参数带入求解了,是不是我的初值设置的有问题啊!fsolve函数需要给定初值,大概是多少我也不知道,有没有什么更好的办法啊? : Originally posted by 521438 at
我是把参数带入求解了,是不是我的初值设置的有问题啊!fsolve函数需要给定初值,大概是多少我也不知道,有没有什么更好的办法啊? 多数情况下是不知道初值的,只有多试几次,解出数值解了,再把这组解作为初值,代入后求解,多迭代几次,再算算误差。 这里我想给表达式里的符号变量赋予初值,出现如下错误:??? Conversion to double from sym is not possible.
Error in ==> sfdnls at 95
& && &J(:,k) = (v-valx)/alpha(k);
Error in ==> optim\private\trustnleqn at 108
& &= sfdnls(x,Fvec,JACfindiff,group,, ...
Error in ==> fsolve at 295
Error in ==> fsolveDemon1 at 4
x=fsolve(@f,x0,opt);
就是不能把符号型变量转换成double型的,大家知道我应该怎么赋值么?需要如何修改啊? 我的程序如下:
function x=fsolveDemon1
opt=optimset('Display','off')
x=fsolve(@f,x0,opt);
function F=f(x)
syms I1 I2 r1 r2 a1 a2
end : Originally posted by 521438 at
我的程序如下:
function x=fsolveDemon1
opt=optimset('Display','off')
x=fsolve(@f,x0,opt);
function F=f(x)
syms I1 I2 r1 r2 a1 a2
end 你这样的程序是根本求解不了的。
fsolve函数是求解非线性方程组数值解的,是不能带符号的。
B=I*r^2/2*(r^2+z^2)^(-3/2);这里面的I与I1、I2是什么关系?
把d3Bdz3,d5Bdz5,d7Bdz7写出来,分别带入
I1*d3Bdz3(z=a1)+I2*d3Bdz3(z=a2)=0
I1*d5Bdz5(z=a1)+I2*d5Bdz5(z=a2)=0
I1*d7Bdz7(z=a)+I2*d7Bdz7(z=a2)=0
三个方程,并写入f(x)中,I1、I2、r作为x(4)、x(5)、x(6),即F内六个表达式。
你先试试吧,不行了把数学模型用图贴出来吧,把已知条件和未知条件描述清楚。 : Originally posted by xiegangmai at
你这样的程序是根本求解不了的。
fsolve函数是求解非线性方程组数值解的,是不能带符号的。
B=I*r^2/2*(r^2+z^2)^(-3/2);这里面的I与I1、I2是什么关系?
把d3Bdz3,d5Bdz5,d7Bdz7写出来,分别带入
I1*d3Bd ... 这里的I是电流,我的模型是4个圆线圈对称放置组成而成。所带电流分别为I1,I2。这里的数学表达式B=I*r^2/2*(r^2+z^2)^(-3/2)是单个圆线圈在轴线上产生的磁场表达式。具体到我的模型,电流i就为I1,I2.
版主所说的将I1,I2,作为x(4),x(5)这里也只是有3个方程啊,6个未知数,我加了约束条件使得a1=a2,就是5个未知数了。我再试试吧,我需要的不是具体的数值解,只要是能计算出R1,R2之间的关系,R1与a1之间的关系就行! http://edu.emuch.net/attachment/04/4b/.jpg
这里我把我的数学模型也贴出来,如下:电流方向没有标注,2组线圈分别加反向的电流,即左侧的线圈是顺时针,右侧的电流方向为逆时针。
function F = fsolveDemon1(x,I)
%FUN Summary of this function goes here
%& &Detailed explanation goes here
这是第一个函数。将其保存成fsolveDemon1.m文件。
function fsolveDemon2
x0=;&&% x0中元素的个数与方程中x个数对应相等,这里取都取0.1,也可自己修改。
options=optimset('MaxFunEvals',20000,'MaxIter',2000);
I=;&&% 向量I有两个值元素。这里权且取值1和2,自己可改成需要的数值。
X=fsolve(@(x)fsolveDemon1(x,I),x0,options);
for i=1:50& &%迭代次数50次,可以自己修改。
& & =fsolve(@(x)fsolveDemon1(x,I),X,options);
X=vpa(X,8)& &%显示8为数字结果,如果想多显示几位或少显示几位,可以自己修改数值。
这是第二个函数。将其保存成fsolveDemon2.m文件。
使用时先将两个文件拷贝到matlab能够调用的指定文件夹中,然后在命令窗口输入fsolveDemon2,回车即可。
结果中fval的值如果趋近于0,并且同时exitflag=1,这说明X就是所要求的解。}

我要回帖

更多关于 函数曲线图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信