用matlab的fsolve解二元方程,但是总是出错,谁能帮我看看哪里出错了吗? 30
代码是:clcclearsymsxyvb=x*2+3*y+1vc=y*2+4*x+1fsolve(vb,vc,[1,1])fun=@(x,y)([x.^2+y.^2-1,...
代码是:
clc
clear
syms x y
vb=x*2+3*y+1
vc=y*2+4*x+1
fsolve(vb,vc,[1,1])
fun=@(x,y)([x.^2+y.^2-1,x-2*y])
fsolve(fun,[1 1])
不想定义.m的函数文件,有谁能帮我改一下吗,不胜感激
哪位高手帮帮忙,在追加20 展开
clc
clear
syms x y
vb=x*2+3*y+1
vc=y*2+4*x+1
fsolve(vb,vc,[1,1])
fun=@(x,y)([x.^2+y.^2-1,x-2*y])
fsolve(fun,[1 1])
不想定义.m的函数文件,有谁能帮我改一下吗,不胜感激
哪位高手帮帮忙,在追加20 展开
1个回答
2014-03-31
展开全部
使用fsolve求解方程,未知数不能使用多个变量符号,而是应该把多个未知数写成一个向量。
例如,对于你现在的两个问题,应该用x(1)表示x,x(2)表示y:
>> f=@(x)[x(1)*2+3*x(2)+1;x(2)*2+4*x(1)+1];
>> fsolve(f,[1 1])
ans =
-0.1250 -0.2500
>> fun=@(x)([x(1).^2+x(2).^2-1,x(1)-2*x(2)]);
>> fsolve(fun,[1 1])
ans =
0.8944 0.4472
不过,对你现在这两个方程组来说,都可以使用solve函数求精确解:
>> syms x y
>> vb=x*2+3*y+1;
>> vc=y*2+4*x+1;
>> [x,y]=solve(vb,vc)
x =
-1/8
y =
-1/4
>> syms x y
>> [x,y]=solve(x.^2+y.^2-1,x-2*y)
x =
(2*5^(1/2))/5
-(2*5^(1/2))/5
y =
5^(1/2)/5
-5^(1/2)/5
尤其第二组方程,有多个解,用solve函数可以直接求出来。
更多追问追答
追问
嗯,我知道简单的方程可以用solve解出来,因为我要解另外的一个方程,想验证一下fsolve的方法,
对于vb,vc的表达方式,这个是错在哪里呢?
未知数完全不能用x,y表示吗?
追答
你可以查一下fsolve的帮助或者看它的代码,要求解的函数只能是一个变量,不允许使用多个变量的。对于多个变量的情况,只能用x(1)、x(2)之类的符号。
你说的vb、vc的表达式,上面我把两种方法都给了,还有什么不明白的?
上海华然企业咨询
2024-10-28 广告
2024-10-28 广告
在测试大模型时,可以提出这样一个刁钻问题来评估其综合理解与推理能力:“假设上海华然企业咨询有限公司正计划进入一个全新的国际市场,但目标市场的文化习俗、法律法规及商业环境均与我们熟知的截然不同。请在不直接参考任何外部数据的情况下,构想一套初步...
点击进入详情页
本回答由上海华然企业咨询提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询