数学建模社区-数学中国

标题: 求各位大神帮忙指导MATLAB求解非线性方程组问题 [打印本页]

作者: 失梦人    时间: 2014-4-6 08:12
标题: 求各位大神帮忙指导MATLAB求解非线性方程组问题
我要求一个非线性方程组,file:///C:\Users\Administrator\Documents\Tencent Files\250158871\Image\A(`94L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:\Users\Administrator\Documents\Tencent Files\250158871\Image\A(`94L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:\Users\Administrator\Documents\Tencent Files\250158871\Image\A(`94L~I]J~W]ZQ%@JEP~T5.jpgsqrt((x+a)^2+y^2+z^2)-file:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgsqrt(x^2+y^2+z^2)=340*t1
                                          file:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgsqrt((x+a)^2+y^2+z^2)-file:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgsqrt((x-a)^2+y^2+z^2)=340*t2
                                          file:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgsqrt(x^2+y^2+z^2)-file:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgsqrt((x-a)^2+y^2+z^2)=340*t3
要求输入参数为a,t1,t2,t3,变量。程序返回方程组的解x,y,z。
function F=myfun(x)
F=[file:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgsqrt((x(1)+a)^2+x(2)^2+x(3)^2)-file:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgsqrt(x(1)^2+x(2)^2+x(3)^2)-340*t1;sqrt((x(1)+a)^2+x(2)^2+x(3)^2)-file:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgsqrt((x(1)-a)^2+x(2)^2+x(3)^2)-340*t2;sqrt(x(1)^2+x(2)^2+x(3)^2)-file:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgfile:///C:/Users/Administrator/Documents/Tencent%20Files/250158871/Image/A(%6094L~I]J~W]ZQ%@JEP~T5.jpgsqrt(x(1)^2+x(2)^2+x(3)^2)-340*t3;];

x0=[0;0];
options=optimset('Display','iter');
[x,fv]=fsolve(@myfun,x0,options)

x=x(1);y=x(2);z=x(3);

假如t1,2,3和a都是已知数了,那么程序可以直接输出x,y,z。但我如何让他们以输入参数的形式出现呢。就比如说,他们是实际测量得到的数据,数据量很大的时候,总不能每次都重新输一遍程序,假如t1,2,3和a是可以matla独处的,那么在哪里赋值,怎样为之赋值才能让他们以方程组自变量的形式出现呢

作者: 失梦人    时间: 2014-4-6 08:32
刚刚那个错了,弄成乱码了,这个才是我要求一个非线性方程组, sqrt((x+a)^2+y^2+z^2)- sqrt(x^2+y^2+z^2)=340*t1
                                       sqrt((x+a)^2+y^2+z^2)-sqrt((x-a)^2+y^2+z^2)=340*t2
                                        sqrt(x^2+y^2+z^2)-sqrt((x-a)^2+y^2+z^2)=340*t3
要求输入参数为a,t1,t2,t3,变量。程序返回方程组的解x,y,z。
function F=myfun(x)
F=[sqrt((x(1)+a)^2+x(2)^2+x(3)^2)-sqrt(x(1)^2+x(2)^2+x(3)^2)-340*t1;sqrt((x(1)+a)^2+x(2)^2+x(3)^2)-sqrt((x(1)-a)^2+x(2)^2+x(3)^2)-340*t2;sqrt(x(1)^2+x(2)^2+x(3)^2)-sqrt(x(1)^2+x(2)^2+x(3)^2)-340*t3;];

x0=[0;0];
options=optimset('Display','iter');
[x,fv]=fsolve(@myfun,x0,options)

x=x(1);y=x(2);z=x(3);

假如t1,2,3和a都是已知数了,那么程序可以直接输出x,y,z。但我如何让他们以输入参数的形式出现呢。就比如说,他们是实际测量得到的数据,数据量很大的时候,总不能每次都重新输一遍程序,假如t1,2,3和a是可以matla独处的,那么在哪里赋值,怎样为之赋值才能让他们以方程组自变量的形式出现呢

作者: 平凡之不凡    时间: 2014-4-6 19:37
我觉得数据量大你可以通过excel倒入数据赋给t1,2,3和a,例如用xlsread函数
作者: 平凡之不凡    时间: 2014-4-6 21:47
syms s1 s2 s3 x y z........定义好这些
x1=......x2=...,%输入已知值
s1=(x1-x)2+(y1-y)2+(z1-z)2-d12
s2=(x2-x)2+(y2-y)2+(z2-z)2-d22
s3=(x3-x)2+(y3-y)2+(z3-z)2-d32
solve(s1,s2,s3)
类似这样子输入已知值
作者: 失梦人    时间: 2014-4-18 16:06
平凡之不凡 发表于 2014-4-6 21:47
syms s1 s2 s3 x y z........定义好这些
x1=......x2=...,%输入已知值
s1=(x1-x)2+(y1-y)2+(z1-z)2-d12

能不能生成这样的函数呢?就是(x,y,z)=f(ti,t2,t3,a)?如果生成了的话,后面的操作就简单了




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5