我做第二个题目
function pdemodel
[pde_fig,ax]=pdeinit;
pdetool('appl_cb',1);
set(ax,'DataAspectRatio',[1 65 1]);
set(ax,'PlotBoxAspectRatio',[15 10 1]);
set(ax,'XLim',[-15 15]);
set(ax,'YLim',[-10 120]);
set(ax,'XTickMode','auto');
set(ax,'YTickMode','auto');
% Geometry description:
pderect([0 1 100 0],'R1');
set(findobj(get(pde_fig,'Children'),'Tag','PDEEval'),'String','R1')
% Boundary conditions:
pdetool('changemode',0)
pdesetbd(4,'neu',1,'0','0')
pdesetbd(3,'dir',1,'1','0')
pdesetbd(2,'neu',1,'0','0')
pdesetbd(1,'dir',1,'1','100')
% Mesh generation:
setuprop(pde_fig,'Hgrad',13);
setuprop(pde_fig,'refinemethod','regular');
pdetool('initmesh')
pdetool('refine')
pdetool('refine')
pdetool('refine')
pdetool('refine')
% PDE coefficients:
pdeseteq(1,'10','00','0','10','0:10','00','00','[0 100]')
setuprop(pde_fig,'currparam',['10';'00';'0 ';'10'])
% Solve parameters:
setuprop(pde_fig,'solveparam',
str2mat('0','18432','10','pdeadworst',
'05','longest','0','1E-4','','fixed','Inf'))
% Plotflags and user data strings:
setuprop(pde_fig,'plotflags',[1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1]);
setuprop(pde_fig,'colstring','');
setuprop(pde_fig,'arrowstring','');
setuprop(pde_fig,'deformstring','');
setuprop(pde_fig,'heightstring','');
% Solve PDE:
pdetool('solve')
你这个问题似乎没说太清楚。
目标函数是(x-10)^2+(y-7)^2,这句应该是指“终点是(10,7)”吧?目标函数和终点应该并不是一个意思。
约束条件是-((x-5)^2+(y-5)^2)小于等于-4,这句应该是指“避开圆心在(5,5),半径为2的圆”吧?
步长02,精度0001,这个是指每一步移动的长度是固定的02(±0001)?
现在最大的问题是,怎样评价路径是不是最佳——按最短吗?你的题中并没有说明。
这个语句可能是你上传的有问题吧。
因为i=1;5(分号)没什么意义。
分号就像c里面一样分割了语句。
就是相当于赋值i=1然后输入一个值5,当然会有ans=5出现。
你可以每一步自己运行一下,不加分号可以产生一些结果。
while里面的就是最简单的c循环,也没有什么特别的作用。
有点意义的话可能是,
如
x=1:5(冒号)
x= 1 2 3 4 5
x=1:2:5
x=1 3 5
x=1:3:5
x= 1 4
Q=2;
f=0;
for i=1:255
f=f+r(i)/(Q-r(i));
end
PS:matlab的矩阵编号是从1开始的。如果不对,你可以稍微修改一下
1修改了一下,变动不大。
function x=Gauss_(A,b)
A=[10,-7,0;5,-1,5;-3,2,6];
b=[7;6;4]; %%%%%应该是列矩阵啊
n=length(b);
for k=1:n-1 %……消去过程……
if A(k,k)==0
disp('错误信息')
break;
end
index = [k+1:n];%用向量比用循环好
m = -A(index,k)/A(k,k); %提前定义一个较短的变量,相当于你的A(i,k)=A(i,k)/A(k,k);
A(index,index) = A(index,index) + mA(k,index);%矩阵A消元
b(index) = b(index) + mb(k);%矩阵b消元
end
x = zeros(n,1);%提前预置一个变量的位置,以提高运算速度
x(n) = b(n)/A(n,n);%……回代过程……
for i = n-1:-1:1
x(i) = ( b(i) - A(i,[i+1:n])x([i+1:n]) )/A(i,i);%还是写在一起吧,比较简捷
end
x
%%%%%%%%%结束啦
运行结果:
x =
00000
-10000
10000
2验证
>> A=[10,-7,0;5,-1,5;-3,2,6];
>> b=[7;6;4];
>> X=A\b
X =
0
-1
1
3验证
>> Gauss_(A,b)
x =
00000
-10000
10000
以上就是关于救助关于matlab小程序的设计,请给位给出,本人将感激不尽!!!全部的内容,包括:救助关于matlab小程序的设计,请给位给出,本人将感激不尽!!!、matlab编个小程序、matlab小程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)