在 MATLAB 中使用分段和切换

问题描述

我对 MATLAB 完全陌生。我正在尝试定义一个有助于高斯积分的函数。该函数应接受 n(点数)作为输入并返回点的值 pG 和相关的权重 w。我正在尝试将 piecewiseswitch 结合使用,但它不起作用。我的代码如下

function gaussValues1D n = piecewise(n)

switch (n)
    case 1
       w=2; pG=0;
    case 2
       w=[1,1]; pG=[-1/sqrt(3),1/sqrt(3)];
    case 3
       w=[5/9,8/9,5/9]; pG=[-sqrt(3/5),sqrt(3/5)];
    case 4
       w=[(18+sqrt(30))/36,(18+sqrt(30))/36,(18-sqrt(30))/36,(18-sqrt(30))/36]; pG=[sqrt((3/7)-((2/7)*sqrt(6/5))),-sqrt((3/7)-((2/7)*sqrt(6/5))),sqrt((3/7)+((2/7)*sqrt(6/5))),-sqrt((3/7)+((2/7)*sqrt(6/5)))];
    case 5
       w=[128/225,(322+13*sqrt(70))/900,(322-13*sqrt(70))/900,(322-13*sqrt(70))/900]; pG=[0,(1/3)*sqrt(5-2*sqrt(10/7)),-(1/3)*sqrt(5-2*sqrt(10/7)),(1/3)*sqrt(5+2*sqrt(10/7)),-(1/3)*sqrt(5+2*sqrt(10/7))];
    otherwise
        error('No data are defined for this value');
end

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)